mirror of
https://github.com/pezkuwichain/pezkuwi-subxt.git
synced 2026-06-11 22:21:07 +00:00
Upgrade wasm crate dependencies (#12173)
* Upgrade wasm crate dependencies * New wasmi version changed error output a bit * ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts * ".git/.scripts/bench-bot.sh" pallet dev pallet_contracts Co-authored-by: command-bot <>
This commit is contained in:
committed by
GitHub
parent
6c5d4668d0
commit
5afe00d89c
@@ -18,7 +18,7 @@ lazy_static = "1.4.0"
|
||||
lru = "0.7.5"
|
||||
parking_lot = "0.12.1"
|
||||
tracing = "0.1.29"
|
||||
wasmi = "0.9.1"
|
||||
wasmi = "0.13"
|
||||
|
||||
codec = { package = "parity-scale-codec", version = "3.0.0" }
|
||||
sc-executor-common = { version = "0.10.0-dev", path = "common" }
|
||||
@@ -63,5 +63,4 @@ default = ["std"]
|
||||
std = []
|
||||
wasm-extern-trace = []
|
||||
wasmtime = ["sc-executor-wasmtime"]
|
||||
wasmi-errno = ["wasmi/errno"]
|
||||
wasmer-sandbox = ["sc-executor-common/wasmer-sandbox"]
|
||||
|
||||
@@ -17,9 +17,9 @@ targets = ["x86_64-unknown-linux-gnu"]
|
||||
codec = { package = "parity-scale-codec", version = "3.0.0" }
|
||||
environmental = "1.1.3"
|
||||
thiserror = "1.0.30"
|
||||
wasm-instrument = "0.1"
|
||||
wasm-instrument = "0.2"
|
||||
wasmer = { version = "2.2", features = ["singlepass"], optional = true }
|
||||
wasmi = "0.9.1"
|
||||
wasmi = "0.13"
|
||||
sc-allocator = { version = "4.1.0-dev", path = "../../allocator" }
|
||||
sp-maybe-compressed-blob = { version = "4.1.0-dev", path = "../../../primitives/maybe-compressed-blob" }
|
||||
sp-sandbox = { version = "0.10.0-dev", path = "../../../primitives/sandbox" }
|
||||
|
||||
@@ -18,14 +18,14 @@
|
||||
|
||||
//! Wasmi specific impls for sandbox
|
||||
|
||||
use std::rc::Rc;
|
||||
use std::{fmt, rc::Rc};
|
||||
|
||||
use codec::{Decode, Encode};
|
||||
use sp_sandbox::HostError;
|
||||
use sp_wasm_interface::{FunctionContext, Pointer, ReturnValue, Value, WordSize};
|
||||
use wasmi::{
|
||||
memory_units::Pages, ImportResolver, MemoryInstance, Module, ModuleInstance, RuntimeArgs,
|
||||
RuntimeValue, Trap, TrapKind,
|
||||
RuntimeValue, Trap,
|
||||
};
|
||||
|
||||
use crate::{
|
||||
@@ -39,9 +39,20 @@ use crate::{
|
||||
|
||||
environmental::environmental!(SandboxContextStore: trait SandboxContext);
|
||||
|
||||
#[derive(Debug)]
|
||||
struct CustomHostError(String);
|
||||
|
||||
impl fmt::Display for CustomHostError {
|
||||
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
|
||||
write!(f, "HostError: {}", self.0)
|
||||
}
|
||||
}
|
||||
|
||||
impl wasmi::HostError for CustomHostError {}
|
||||
|
||||
/// Construct trap error from specified message
|
||||
fn trap(msg: &'static str) -> Trap {
|
||||
TrapKind::Host(Box::new(Error::Other(msg.into()))).into()
|
||||
Trap::host(CustomHostError(msg.into()))
|
||||
}
|
||||
|
||||
impl ImportResolver for Imports {
|
||||
|
||||
@@ -253,7 +253,7 @@ fn call_not_existing_function(wasm_method: WasmExecutionMethod) {
|
||||
match call_in_wasm("test_calling_missing_external", &[], wasm_method, &mut ext).unwrap_err() {
|
||||
Error::AbortedDueToTrap(error) => {
|
||||
let expected = match wasm_method {
|
||||
WasmExecutionMethod::Interpreted => "Trap: Host(Other(\"Function `missing_external` is only a stub. Calling a stub is not allowed.\"))",
|
||||
WasmExecutionMethod::Interpreted => "Other: Function `missing_external` is only a stub. Calling a stub is not allowed.",
|
||||
#[cfg(feature = "wasmtime")]
|
||||
WasmExecutionMethod::Compiled { .. } => "call to a missing function env:missing_external"
|
||||
};
|
||||
@@ -273,7 +273,7 @@ fn call_yet_another_not_existing_function(wasm_method: WasmExecutionMethod) {
|
||||
{
|
||||
Error::AbortedDueToTrap(error) => {
|
||||
let expected = match wasm_method {
|
||||
WasmExecutionMethod::Interpreted => "Trap: Host(Other(\"Function `yet_another_missing_external` is only a stub. Calling a stub is not allowed.\"))",
|
||||
WasmExecutionMethod::Interpreted => "Other: Function `yet_another_missing_external` is only a stub. Calling a stub is not allowed.",
|
||||
#[cfg(feature = "wasmtime")]
|
||||
WasmExecutionMethod::Compiled { .. } => "call to a missing function env:yet_another_missing_external"
|
||||
};
|
||||
@@ -909,7 +909,7 @@ fn unreachable_intrinsic(wasm_method: WasmExecutionMethod) {
|
||||
match call_in_wasm("test_unreachable_intrinsic", &[], wasm_method, &mut ext).unwrap_err() {
|
||||
Error::AbortedDueToTrap(error) => {
|
||||
let expected = match wasm_method {
|
||||
WasmExecutionMethod::Interpreted => "Trap: Unreachable",
|
||||
WasmExecutionMethod::Interpreted => "unreachable",
|
||||
#[cfg(feature = "wasmtime")]
|
||||
WasmExecutionMethod::Compiled { .. } => "wasm trap: wasm `unreachable` instruction executed",
|
||||
};
|
||||
|
||||
@@ -16,7 +16,7 @@ targets = ["x86_64-unknown-linux-gnu"]
|
||||
[dependencies]
|
||||
codec = { package = "parity-scale-codec", version = "3.0.0" }
|
||||
log = "0.4.17"
|
||||
wasmi = "0.9.1"
|
||||
wasmi = "0.13"
|
||||
sc-allocator = { version = "4.1.0-dev", path = "../../allocator" }
|
||||
sc-executor-common = { version = "0.10.0-dev", path = "../common" }
|
||||
sp-runtime-interface = { version = "6.0.0", path = "../../../primitives/runtime-interface" }
|
||||
|
||||
@@ -181,6 +181,7 @@ impl Sandbox for FunctionExecutor {
|
||||
|
||||
let len = val_len as usize;
|
||||
|
||||
#[allow(deprecated)]
|
||||
let buffer = match self.memory.get(val_ptr.into(), len) {
|
||||
Err(_) => return Ok(sandbox_env::ERR_OUT_OF_BOUNDS),
|
||||
Ok(buffer) => buffer,
|
||||
@@ -568,6 +569,7 @@ fn call_in_wasm_module(
|
||||
match result {
|
||||
Ok(Some(I64(r))) => {
|
||||
let (ptr, length) = unpack_ptr_and_len(r as u64);
|
||||
#[allow(deprecated)]
|
||||
memory.get(ptr, length as usize).map_err(|_| Error::Runtime)
|
||||
},
|
||||
Err(e) => {
|
||||
|
||||
@@ -17,7 +17,7 @@ cfg-if = "1.0"
|
||||
codec = { package = "parity-scale-codec", version = "3.0.0" }
|
||||
libc = "0.2.121"
|
||||
log = "0.4.17"
|
||||
parity-wasm = "0.42.0"
|
||||
parity-wasm = "0.45"
|
||||
|
||||
# When bumping wasmtime do not forget to also bump rustix
|
||||
# to exactly the same version as used by wasmtime!
|
||||
|
||||
Reference in New Issue
Block a user