mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-07-02 15:17:23 +00:00
contracts: Get rid of #[pallet::without_storage_info] (#11414)
* Implement `MaxEncodeLen` for pallet-contracts storage * Remove redundant debug println * Move code len check to PrefabWasmModule::from_code
This commit is contained in:
committed by
GitHub
parent
fe4acb7924
commit
ef46d84aed
@@ -163,7 +163,8 @@ pub fn load<T: Config>(
|
||||
where
|
||||
T::AccountId: UncheckedFrom<T::Hash> + AsRef<[u8]>,
|
||||
{
|
||||
let charged = gas_meter.charge(CodeToken::Load(schedule.limits.code_len))?;
|
||||
let max_code_len = T::MaxCodeLen::get();
|
||||
let charged = gas_meter.charge(CodeToken::Load(max_code_len))?;
|
||||
|
||||
let mut prefab_module = <CodeStorage<T>>::get(code_hash).ok_or(Error::<T>::CodeNotFound)?;
|
||||
gas_meter.adjust_gas(charged, CodeToken::Load(prefab_module.code.len() as u32));
|
||||
@@ -172,7 +173,7 @@ where
|
||||
if prefab_module.instruction_weights_version < schedule.instruction_weights.version {
|
||||
// The instruction weights have changed.
|
||||
// We need to re-instrument the code with the new instruction weights.
|
||||
let charged = gas_meter.charge(CodeToken::Reinstrument(schedule.limits.code_len))?;
|
||||
let charged = gas_meter.charge(CodeToken::Reinstrument(max_code_len))?;
|
||||
let code_size = reinstrument(&mut prefab_module, schedule)?;
|
||||
gas_meter.adjust_gas(charged, CodeToken::Reinstrument(code_size));
|
||||
}
|
||||
@@ -190,7 +191,10 @@ pub fn reinstrument<T: Config>(
|
||||
let original_code =
|
||||
<PristineCode<T>>::get(&prefab_module.code_hash).ok_or(Error::<T>::CodeNotFound)?;
|
||||
let original_code_len = original_code.len();
|
||||
prefab_module.code = prepare::reinstrument_contract::<T>(original_code, schedule)?;
|
||||
prefab_module.code = prepare::reinstrument_contract::<T>(&original_code, schedule)
|
||||
.map_err(|_| <Error<T>>::CodeRejected)?
|
||||
.try_into()
|
||||
.map_err(|_| <Error<T>>::CodeTooLarge)?;
|
||||
prefab_module.instruction_weights_version = schedule.instruction_weights.version;
|
||||
<CodeStorage<T>>::insert(&prefab_module.code_hash, &*prefab_module);
|
||||
Ok(original_code_len as u32)
|
||||
|
||||
Reference in New Issue
Block a user