mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-13 21:01:05 +00:00
Switch from pwasm-utils to wasm-instrument (#10680)
* Switch executor to wasm-instrument * Switch pallet-contracts to wasm-instrument
This commit is contained in:
committed by
GitHub
parent
d174ff8a61
commit
2a122c44b1
@@ -26,9 +26,11 @@ use crate::{
|
||||
AccountIdOf, Config, Schedule,
|
||||
};
|
||||
use codec::{Encode, MaxEncodedLen};
|
||||
use pwasm_utils::parity_wasm::elements::{self, External, Internal, MemoryType, Type, ValueType};
|
||||
use sp_runtime::traits::Hash;
|
||||
use sp_std::prelude::*;
|
||||
use wasm_instrument::parity_wasm::elements::{
|
||||
self, External, Internal, MemoryType, Type, ValueType,
|
||||
};
|
||||
|
||||
/// Imported memory must be located inside this module. The reason for hardcoding is that current
|
||||
/// compiler toolchains might not support specifying other modules than "env" for memory imports.
|
||||
@@ -182,17 +184,16 @@ impl<'a, T: Config> ContractModule<'a, T> {
|
||||
|
||||
fn inject_gas_metering(self) -> Result<Self, &'static str> {
|
||||
let gas_rules = self.schedule.rules(&self.module);
|
||||
let contract_module = pwasm_utils::inject_gas_counter(self.module, &gas_rules, "seal0")
|
||||
.map_err(|_| "gas instrumentation failed")?;
|
||||
let contract_module =
|
||||
wasm_instrument::gas_metering::inject(self.module, &gas_rules, "seal0")
|
||||
.map_err(|_| "gas instrumentation failed")?;
|
||||
Ok(ContractModule { module: contract_module, schedule: self.schedule })
|
||||
}
|
||||
|
||||
fn inject_stack_height_metering(self) -> Result<Self, &'static str> {
|
||||
let contract_module = pwasm_utils::stack_height::inject_limiter(
|
||||
self.module,
|
||||
self.schedule.limits.stack_height,
|
||||
)
|
||||
.map_err(|_| "stack height instrumentation failed")?;
|
||||
let contract_module =
|
||||
wasm_instrument::inject_stack_limiter(self.module, self.schedule.limits.stack_height)
|
||||
.map_err(|_| "stack height instrumentation failed")?;
|
||||
Ok(ContractModule { module: contract_module, schedule: self.schedule })
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user