diff --git a/Cargo.lock b/Cargo.lock index 8a433e2fb51..32864e27810 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -364,6 +364,12 @@ version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee2a4ec343196209d6594e19543ae87a39f96d5534d7174822a3ad825dd6ed7e" +[[package]] +name = "ahash" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "739f4a8db6605981345c5654f3a85b056ce52f37a39d34da03f25bf2151ea16e" + [[package]] name = "aho-corasick" version = "0.7.15" @@ -669,25 +675,57 @@ version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "30f3fd65922359a7c6e791bc9b2bba1b977ea0c0b96a528ac48007f535fb4184" dependencies = [ - "borsh-derive", + "borsh-derive 0.7.2", +] + +[[package]] +name = "borsh" +version = "0.8.1" +source = "git+https://github.com/near/borsh-rs?rev=c62cdfbd10d4a17fc877809eba4ccb65e866d5f8#c62cdfbd10d4a17fc877809eba4ccb65e866d5f8" +dependencies = [ + "borsh-derive 0.8.1", + "hashbrown 0.9.1", ] [[package]] name = "borsh-derive" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2d74755d937d261d5e9bdef87e0addfbc1ace0214f7776f21532d6e97325356" +checksum = "e6aaa45f8eec26e4bf71e7e5492cf53a91591af8f871f422d550e7cc43f6b927" +dependencies = [ + "borsh-derive-internal 0.7.2", + "borsh-schema-derive-internal 0.7.2", + "proc-macro2 1.0.24", + "syn 1.0.57", +] + +[[package]] +name = "borsh-derive" +version = "0.8.1" +source = "git+https://github.com/near/borsh-rs?rev=c62cdfbd10d4a17fc877809eba4ccb65e866d5f8#c62cdfbd10d4a17fc877809eba4ccb65e866d5f8" dependencies = [ - "borsh-derive-internal", - "borsh-schema-derive-internal", + "borsh-derive-internal 0.8.1", + "borsh-schema-derive-internal 0.8.1", + "proc-macro-crate", + "proc-macro2 1.0.24", "syn 1.0.57", ] [[package]] name = "borsh-derive-internal" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c9f966cb7a42c8ed83546ef481bc1d1dec888fe5f84a4737d5c2094a483e41e" +checksum = "61621b9d3cca65cc54e2583db84ef912d59ae60d2f04ba61bc0d7fc57556bda2" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.57", +] + +[[package]] +name = "borsh-derive-internal" +version = "0.8.1" +source = "git+https://github.com/near/borsh-rs?rev=c62cdfbd10d4a17fc877809eba4ccb65e866d5f8#c62cdfbd10d4a17fc877809eba4ccb65e866d5f8" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", @@ -696,9 +734,19 @@ dependencies = [ [[package]] name = "borsh-schema-derive-internal" -version = "0.7.1" +version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5df2543b56ebc2b4493e70d024ebde2cbb48d97bf7b1a16318eff30bd02669b8" +checksum = "85b38abfda570837b0949c2c7ebd31417e15607861c23eacb2f668c69f6f3bf7" +dependencies = [ + "proc-macro2 1.0.24", + "quote 1.0.7", + "syn 1.0.57", +] + +[[package]] +name = "borsh-schema-derive-internal" +version = "0.8.1" +source = "git+https://github.com/near/borsh-rs?rev=c62cdfbd10d4a17fc877809eba4ccb65e866d5f8#c62cdfbd10d4a17fc877809eba4ccb65e866d5f8" dependencies = [ "proc-macro2 1.0.24", "quote 1.0.7", @@ -1953,7 +2001,7 @@ dependencies = [ name = "genesis-populate" version = "0.1.0" dependencies = [ - "borsh", + "borsh 0.7.1", "byteorder", "clap 2.33.3", "indicatif 0.13.0", @@ -2089,6 +2137,9 @@ name = "hashbrown" version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "d7afe4a420e3fe79967a00898cc1f4db7c8a49a9333a29f8a4bd76a253d5cd04" +dependencies = [ + "ahash", +] [[package]] name = "heapsize" @@ -2672,7 +2723,7 @@ checksum = "8dd5a6d5999d9907cda8ed67bbd137d3af8085216c2ac62de5be860bd41f304a" name = "loadtester" version = "0.1.0" dependencies = [ - "borsh", + "borsh 0.7.1", "byteorder", "clap 2.33.3", "env_logger", @@ -2989,7 +3040,7 @@ dependencies = [ name = "near-chain" version = "0.1.0" dependencies = [ - "borsh", + "borsh 0.7.1", "cached", "chrono", "delay-detector", @@ -3036,7 +3087,7 @@ name = "near-chunks" version = "0.1.0" dependencies = [ "actix", - "borsh", + "borsh 0.7.1", "cached", "chrono", "futures", @@ -3059,7 +3110,7 @@ version = "0.1.0" dependencies = [ "actix", "ansi_term 0.11.0", - "borsh", + "borsh 0.7.1", "cached", "chrono", "delay-detector", @@ -3098,7 +3149,7 @@ version = "0.1.0" dependencies = [ "arrayref", "blake2", - "borsh", + "borsh 0.7.1", "bs58", "c2-chacha", "curve25519-dalek", @@ -3121,7 +3172,7 @@ dependencies = [ name = "near-epoch-manager" version = "0.0.1" dependencies = [ - "borsh", + "borsh 0.7.1", "cached", "chrono", "log", @@ -3143,7 +3194,7 @@ name = "near-evm-runner" version = "2.3.0" dependencies = [ "bn", - "borsh", + "borsh 0.7.1", "byteorder", "criterion", "derivative", @@ -3200,7 +3251,7 @@ dependencies = [ "actix", "actix-cors", "actix-web", - "borsh", + "borsh 0.7.1", "futures", "lazy_static", "near-chain-configs", @@ -3269,7 +3320,7 @@ version = "0.1.0" dependencies = [ "actix", "bencher", - "borsh", + "borsh 0.7.1", "byteorder", "bytes", "cached", @@ -3323,7 +3374,7 @@ dependencies = [ name = "near-pool" version = "0.1.0" dependencies = [ - "borsh", + "borsh 0.7.1", "near-crypto", "near-primitives", "rand 0.7.3", @@ -3335,7 +3386,7 @@ version = "0.1.0" dependencies = [ "base64 0.11.0", "bencher", - "borsh", + "borsh 0.7.1", "bs58", "byteorder", "chrono", @@ -3440,7 +3491,7 @@ name = "near-store" version = "2.2.0" dependencies = [ "bencher", - "borsh", + "borsh 0.7.1", "byteorder", "cached", "derive_more", @@ -3477,7 +3528,7 @@ dependencies = [ name = "near-vm-errors" version = "2.3.0" dependencies = [ - "borsh", + "borsh 0.7.1", "ethereum-types", "hex", "near-rpc-error-macro", @@ -3489,7 +3540,7 @@ name = "near-vm-logic" version = "2.3.0" dependencies = [ "base64 0.11.0", - "borsh", + "borsh 0.7.1", "bs58", "byteorder", "near-runtime-fees", @@ -3509,7 +3560,8 @@ dependencies = [ "anyhow", "assert_matches", "bencher", - "borsh", + "borsh 0.7.1", + "delay-detector", "log", "near-evm-runner", "near-primitives", @@ -3519,8 +3571,8 @@ dependencies = [ "parity-wasm", "pwasm-utils", "wabt", - "wasmer-runtime-core-near", - "wasmer-runtime-near", + "wasmer-runtime", + "wasmer-runtime-core", "wasmtime", ] @@ -3572,7 +3624,7 @@ version = "1.2.0" dependencies = [ "actix", "actix-web", - "borsh", + "borsh 0.7.1", "byteorder", "chrono", "clap 2.33.3", @@ -3644,7 +3696,7 @@ version = "2.3.0" dependencies = [ "assert_matches", "base64 0.11.0", - "borsh", + "borsh 0.7.1", "byteorder", "ethereum-types", "hex", @@ -4230,6 +4282,15 @@ dependencies = [ "uint", ] +[[package]] +name = "proc-macro-crate" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6ea3c4595b96363c13943497db34af4460fb474a95c43f4446ad341b8c9785" +dependencies = [ + "toml", +] + [[package]] name = "proc-macro-error" version = "1.0.4" @@ -4745,7 +4806,7 @@ dependencies = [ name = "runtime-params-estimator" version = "2.3.0" dependencies = [ - "borsh", + "borsh 0.7.1", "clap 2.33.3", "csv", "ethabi", @@ -5176,7 +5237,7 @@ name = "state-viewer" version = "0.1.0" dependencies = [ "ansi_term 0.11.0", - "borsh", + "borsh 0.7.1", "clap 2.33.3", "near-chain", "near-chain-configs", @@ -5382,7 +5443,7 @@ version = "0.1.0" dependencies = [ "actix", "assert_matches", - "borsh", + "borsh 0.7.1", "byteorder", "clap 2.33.3", "ethabi", @@ -5610,6 +5671,15 @@ dependencies = [ "tokio", ] +[[package]] +name = "toml" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a31142970826733df8241ef35dc040ef98c679ab14d7c3e54d827099b3acecaa" +dependencies = [ + "serde", +] + [[package]] name = "toolshed" version = "0.6.3" @@ -6148,13 +6218,26 @@ dependencies = [ ] [[package]] -name = "wasmer-runtime-core-near" +name = "wasmer-runtime" version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2390b0b8cf58615c2f8b454d9535e1aed1d14c510cc1ce1af806a1992ad53300" +source = "git+https://github.com/near/wasmer.git?rev=25d52e0ab20e21f7b2f78643e8d5b111f02f56c5#25d52e0ab20e21f7b2f78643e8d5b111f02f56c5" +dependencies = [ + "lazy_static", + "memmap", + "serde", + "serde_derive", + "wasmer-runtime-core", + "wasmer-singlepass-backend", +] + +[[package]] +name = "wasmer-runtime-core" +version = "0.17.1" +source = "git+https://github.com/near/wasmer.git?rev=25d52e0ab20e21f7b2f78643e8d5b111f02f56c5#25d52e0ab20e21f7b2f78643e8d5b111f02f56c5" dependencies = [ "bincode", "blake3", + "borsh 0.8.1", "cc", "digest 0.8.1", "errno", @@ -6177,26 +6260,12 @@ dependencies = [ ] [[package]] -name = "wasmer-runtime-near" +name = "wasmer-singlepass-backend" version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6660e86bc7697fa29bab902214d5b33d394a990826c401b10816bcd285f938f" -dependencies = [ - "lazy_static", - "memmap", - "serde", - "serde_derive", - "wasmer-runtime-core-near", - "wasmer-singlepass-backend-near", -] - -[[package]] -name = "wasmer-singlepass-backend-near" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3f23543ef8f59667be4945c22eb4b1a50a79ff340555f6f23354223d2695541" +source = "git+https://github.com/near/wasmer.git?rev=25d52e0ab20e21f7b2f78643e8d5b111f02f56c5#25d52e0ab20e21f7b2f78643e8d5b111f02f56c5" dependencies = [ "bincode", + "borsh 0.8.1", "byteorder", "dynasm 1.0.0", "dynasmrt 1.0.0", @@ -6206,7 +6275,7 @@ dependencies = [ "serde", "serde_derive", "smallvec 1.5.1", - "wasmer-runtime-core-near", + "wasmer-runtime-core", ] [[package]] diff --git a/runtime/near-vm-runner/Cargo.toml b/runtime/near-vm-runner/Cargo.toml index eb65c7aaa0d..8bff606a518 100644 --- a/runtime/near-vm-runner/Cargo.toml +++ b/runtime/near-vm-runner/Cargo.toml @@ -14,8 +14,8 @@ This crate implements the specification of the interface that Near blockchain ex [dependencies] borsh = "0.7.1" -wasmer-runtime = { version="0.17.1", features = ["default-backend-singlepass"], default-features = false, package = "wasmer-runtime-near" } -wasmer-runtime-core = {version = "0.17.1", package = "wasmer-runtime-core-near" } +wasmer-runtime = { git="https://github.com/near/wasmer.git", rev = "25d52e0ab20e21f7b2f78643e8d5b111f02f56c5", features = ["default-backend-singlepass"], default-features = false } +wasmer-runtime-core = {git = "https://github.com/near/wasmer.git", rev = "25d52e0ab20e21f7b2f78643e8d5b111f02f56c5" } pwasm-utils = "0.12" parity-wasm = "0.41" wasmtime = { version = "0.20.0", default-features = false, optional = true } @@ -26,6 +26,7 @@ near-vm-errors = { path = "../near-vm-errors", version = "2.3.0" } near-primitives = { path = "../../core/primitives" } log = "0.4" near-evm-runner = { path = "../near-evm-runner", version = "2.3.0", optional = true} +delay-detector = { path = "../../tools/delay_detector"} [dev-dependencies] assert_matches = "1.3" diff --git a/runtime/near-vm-runner/src/wasmer_runner.rs b/runtime/near-vm-runner/src/wasmer_runner.rs index b17a1ad4d99..a4c6e84af7f 100644 --- a/runtime/near-vm-runner/src/wasmer_runner.rs +++ b/runtime/near-vm-runner/src/wasmer_runner.rs @@ -12,7 +12,7 @@ use wasmer_runtime::Module; fn check_method(module: &Module, method_name: &str) -> Result<(), VMError> { let info = module.info(); use wasmer_runtime_core::module::ExportIndex::Func; - if let Some(Func(index)) = info.exports.get(method_name) { + if let Some(Func(index)) = info.exports.map.get(method_name) { let func = info.func_assoc.get(index.clone()).unwrap(); let sig = info.signatures.get(func.clone()).unwrap(); if sig.params().is_empty() && sig.returns().is_empty() {