diff --git a/Cargo.lock b/Cargo.lock
index 328e3d562..8b5167512 100644
--- a/Cargo.lock
+++ b/Cargo.lock
@@ -8,6 +8,15 @@ version = "0.11.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3"
+[[package]]
+name = "addr2line"
+version = "0.14.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "a55f82cfe485775d02112886f4169bde0c5894d75e79ead7eafe7e40a25e45f7"
+dependencies = [
+ "gimli 0.23.0",
+]
+
[[package]]
name = "addr2line"
version = "0.15.1"
@@ -124,10 +133,10 @@ dependencies = [
"libsecp256k1",
"logos",
"near-crypto",
- "near-primitives-core 0.4.0",
+ "near-primitives-core",
"near-sdk",
"near-sdk-sim",
- "near-vm-logic 4.0.0-pre.1",
+ "near-vm-logic",
"near-vm-runner",
"num",
"primitive-types",
@@ -154,7 +163,7 @@ version = "0.3.59"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "4717cfcbfaa661a0fd48f8453951837ae7e8f81e481fbb136e3202d72805a744"
dependencies = [
- "addr2line",
+ "addr2line 0.15.1",
"cc",
"cfg-if 1.0.0",
"libc",
@@ -393,6 +402,12 @@ version = "1.0.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "b700ce4376041dcd0a327fd0097c41095743c4c8af8887265942faf1100bd040"
+[[package]]
+name = "bytesize"
+version = "1.0.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "81a18687293a1546b67c246452202bbbf143d239cb43494cc163da14979082da"
+
[[package]]
name = "c2-chacha"
version = "0.3.0"
@@ -543,21 +558,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e"
[[package]]
-name = "cpufeatures"
-version = "0.1.1"
+name = "cpp_demangle"
+version = "0.3.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "dec1028182c380cc45a2e2c5ec841134f2dfd0f8f5f0a5bcd68004f81b5efdf4"
+checksum = "8ea47428dc9d2237f3c6bc134472edfd63ebba0af932e783506dcfd66f10d18a"
dependencies = [
- "libc",
+ "cfg-if 1.0.0",
]
[[package]]
-name = "cranelift-bforest"
-version = "0.67.0"
+name = "cpufeatures"
+version = "0.1.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0f065f6889758f817f61a230220d1811ba99a9762af2fb69ae23048314f75ff2"
+checksum = "dec1028182c380cc45a2e2c5ec841134f2dfd0f8f5f0a5bcd68004f81b5efdf4"
dependencies = [
- "cranelift-entity 0.67.0",
+ "libc",
]
[[package]]
@@ -570,23 +585,12 @@ dependencies = [
]
[[package]]
-name = "cranelift-codegen"
-version = "0.67.0"
+name = "cranelift-bforest"
+version = "0.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "510aa2ab4307644100682b94e449940a0ea15c5887f1d4b9678b8dd5ef31e736"
+checksum = "841476ab6d3530136b5162b64a2c6969d68141843ad2fd59126e5ea84fd9b5fe"
dependencies = [
- "byteorder",
- "cranelift-bforest 0.67.0",
- "cranelift-codegen-meta 0.67.0",
- "cranelift-codegen-shared 0.67.0",
- "cranelift-entity 0.67.0",
- "gimli 0.21.0",
- "log",
- "regalloc 0.0.30",
- "serde",
- "smallvec",
- "target-lexicon 0.11.2",
- "thiserror",
+ "cranelift-entity 0.72.0",
]
[[package]]
@@ -602,20 +606,30 @@ dependencies = [
"cranelift-entity 0.68.0",
"gimli 0.22.0",
"log",
- "regalloc 0.0.31",
+ "regalloc",
"smallvec",
"target-lexicon 0.11.2",
"thiserror",
]
[[package]]
-name = "cranelift-codegen-meta"
-version = "0.67.0"
+name = "cranelift-codegen"
+version = "0.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b4cb0c7e87c60d63b35f9670c15479ee4a5e557dd127efab88b2f9b2ca83c9a0"
+checksum = "2b5619cef8d19530298301f91e9a0390d369260799a3d8dd01e28fc88e53637a"
dependencies = [
- "cranelift-codegen-shared 0.67.0",
- "cranelift-entity 0.67.0",
+ "byteorder",
+ "cranelift-bforest 0.72.0",
+ "cranelift-codegen-meta 0.72.0",
+ "cranelift-codegen-shared 0.72.0",
+ "cranelift-entity 0.72.0",
+ "gimli 0.23.0",
+ "log",
+ "regalloc",
+ "serde",
+ "smallvec",
+ "target-lexicon 0.11.2",
+ "thiserror",
]
[[package]]
@@ -629,10 +643,14 @@ dependencies = [
]
[[package]]
-name = "cranelift-codegen-shared"
-version = "0.67.0"
+name = "cranelift-codegen-meta"
+version = "0.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "60636227098693e06de8d6d88beea2a7d32ecf8a8030dacdb57c68e06f381826"
+checksum = "2a319709b8267939155924114ea83f2a5b5af65ece3ac6f703d4735f3c66bb0d"
+dependencies = [
+ "cranelift-codegen-shared 0.72.0",
+ "cranelift-entity 0.72.0",
+]
[[package]]
name = "cranelift-codegen-shared"
@@ -641,10 +659,10 @@ source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "6759012d6d19c4caec95793f052613e9d4113e925e7f14154defbac0f1d4c938"
[[package]]
-name = "cranelift-entity"
-version = "0.67.0"
+name = "cranelift-codegen-shared"
+version = "0.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "6156db73e0c9f65f80c512988d63ec736be0dee3dd66bf951e3e28aed9dc02d3"
+checksum = "15925b23cd3a448443f289d85a8f53f3cf7a80f0137aa53c8e3b01ae8aefaef7"
dependencies = [
"serde",
]
@@ -658,13 +676,22 @@ dependencies = [
"serde",
]
+[[package]]
+name = "cranelift-entity"
+version = "0.72.0"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "610cf464396c89af0f9f7c64b5aa90aa9e8812ac84084098f1565b40051bc415"
+dependencies = [
+ "serde",
+]
+
[[package]]
name = "cranelift-frontend"
-version = "0.67.0"
+version = "0.68.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e09cd158c9a820a4cc14a34076811da225cce1d31dc6d03c5ef85b91aef560b9"
+checksum = "b608bb7656c554d0a4cf8f50c7a10b857e80306f6ff829ad6d468a7e2323c8d8"
dependencies = [
- "cranelift-codegen 0.67.0",
+ "cranelift-codegen 0.68.0",
"log",
"smallvec",
"target-lexicon 0.11.2",
@@ -672,11 +699,11 @@ dependencies = [
[[package]]
name = "cranelift-frontend"
-version = "0.68.0"
+version = "0.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "b608bb7656c554d0a4cf8f50c7a10b857e80306f6ff829ad6d468a7e2323c8d8"
+checksum = "4d20c8bd4a1c41ded051734f0e33ad1d843a0adc98b9bd975ee6657e2c70cdc9"
dependencies = [
- "cranelift-codegen 0.68.0",
+ "cranelift-codegen 0.72.0",
"log",
"smallvec",
"target-lexicon 0.11.2",
@@ -684,28 +711,29 @@ dependencies = [
[[package]]
name = "cranelift-native"
-version = "0.67.0"
+version = "0.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7054533ae1fc2048c1a6110bdf8f4314b77c60329ec6a7df79d2cfb84e3dcc1c"
+checksum = "304e100df41f34a5a15291b37bfe0fd7abd0427a2c84195cc69578b4137f9099"
dependencies = [
- "cranelift-codegen 0.67.0",
- "raw-cpuid",
+ "cranelift-codegen 0.72.0",
"target-lexicon 0.11.2",
]
[[package]]
name = "cranelift-wasm"
-version = "0.67.0"
+version = "0.72.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "7aee0e0b68eba99f99a4923212d97aca9e44655ca8246f07fffe11236109b0d0"
+checksum = "4efd473b2917303957e0bfaea6ea9d08b8c93695bee015a611a2514ce5254abc"
dependencies = [
- "cranelift-codegen 0.67.0",
- "cranelift-entity 0.67.0",
- "cranelift-frontend 0.67.0",
+ "cranelift-codegen 0.72.0",
+ "cranelift-entity 0.72.0",
+ "cranelift-frontend 0.72.0",
+ "itertools 0.10.0",
"log",
"serde",
+ "smallvec",
"thiserror",
- "wasmparser 0.59.0",
+ "wasmparser 0.76.0",
]
[[package]]
@@ -783,7 +811,7 @@ dependencies = [
"cfg-if 1.0.0",
"crossbeam-utils",
"lazy_static",
- "memoffset 0.6.3",
+ "memoffset",
"scopeguard",
]
@@ -1238,6 +1266,16 @@ dependencies = [
"percent-encoding",
]
+[[package]]
+name = "fs2"
+version = "0.4.3"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "9564fc758e15025b46aa6643b1b77d047d1a56a1aea6e01002ac0c7026876213"
+dependencies = [
+ "libc",
+ "winapi",
+]
+
[[package]]
name = "fs_extra"
version = "1.2.0"
@@ -1395,9 +1433,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.21.0"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bcc8e0c9bce37868955864dbecd2b1ab2bdf967e6f28066d65aaac620444b65c"
+checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
dependencies = [
"fallible-iterator",
"indexmap",
@@ -1406,9 +1444,9 @@ dependencies = [
[[package]]
name = "gimli"
-version = "0.22.0"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "aaf91faf136cb47367fa430cd46e37a788775e7fa104f8b4bcb3861dc389b724"
+checksum = "f6503fe142514ca4799d4c26297c4248239fe8838d827db6bd6065c6ed29a6ce"
dependencies = [
"fallible-iterator",
"indexmap",
@@ -1885,15 +1923,6 @@ dependencies = [
"libc",
]
-[[package]]
-name = "memoffset"
-version = "0.5.6"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "043175f069eda7b85febe4a74abbaeff828d9f8b448515d3151a14a3542811aa"
-dependencies = [
- "autocfg",
-]
-
[[package]]
name = "memoffset"
version = "0.6.3"
@@ -1925,11 +1954,26 @@ version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "0debeb9fcf88823ea64d64e4a815ab1643f33127d995978e099942ce38f25238"
+[[package]]
+name = "near-chain-configs"
+version = "0.1.0"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
+dependencies = [
+ "chrono",
+ "derive_more",
+ "near-crypto",
+ "near-primitives",
+ "num-rational 0.3.2",
+ "serde",
+ "serde_json",
+ "sha2 0.9.5",
+ "smart-default",
+]
+
[[package]]
name = "near-crypto"
version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bb14bec070cfd808438712cda5d54703001b9cf1196c8afaeadc9514e06d00a3"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"arrayref",
"blake2 0.9.1 (registry+https://github.com/rust-lang/crates.io-index)",
@@ -1939,6 +1983,7 @@ dependencies = [
"curve25519-dalek",
"derive_more",
"ed25519-dalek",
+ "ethereum-types",
"lazy_static",
"libc",
"parity-secp256k1",
@@ -1953,8 +1998,7 @@ dependencies = [
[[package]]
name = "near-metrics"
version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7b9dcbc960db15fcec85bcb29a78b57e4005b7b1a0afc70a26a97453862528e"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"lazy_static",
"log",
@@ -1963,9 +2007,8 @@ dependencies = [
[[package]]
name = "near-pool"
-version = "0.1.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "bde79472f7cfc0675733b65f79f9e50c20bfbb9806298ab2872916869a45dccd"
+version = "0.1.0"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"borsh",
"near-crypto",
@@ -1975,9 +2018,8 @@ dependencies = [
[[package]]
name = "near-primitives"
-version = "0.1.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "75ed2263518ca67a3c158c144813832fd96f48ab239494bb9d7793d315f31417"
+version = "0.1.0"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"base64 0.13.0",
"borsh",
@@ -1988,11 +2030,10 @@ dependencies = [
"easy-ext",
"hex",
"jemallocator",
- "lazy_static",
"near-crypto",
- "near-primitives-core 0.4.0",
+ "near-primitives-core",
"near-rpc-error-macro",
- "near-vm-errors 4.0.0-pre.1",
+ "near-vm-errors",
"num-rational 0.3.2",
"primitive-types",
"rand 0.7.3",
@@ -2008,8 +2049,7 @@ dependencies = [
[[package]]
name = "near-primitives-core"
version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "92035b79bf9983502fe7b67b5a9fecea7604e979d439727827fd0d8f0d77720e"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"base64 0.11.0",
"borsh",
@@ -2023,42 +2063,21 @@ dependencies = [
"sha2 0.9.5",
]
-[[package]]
-name = "near-primitives-core"
-version = "0.4.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "c2b3fb5acf3a494aed4e848446ef2d6ebb47dbe91c681105d4d1786c2ee63e52"
-dependencies = [
- "base64 0.13.0",
- "borsh",
- "bs58",
- "derive_more",
- "hex",
- "lazy_static",
- "num-rational 0.3.2",
- "serde",
- "serde_json",
- "sha2 0.9.5",
-]
-
[[package]]
name = "near-rpc-error-core"
version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "ffa8dbf8437a28ac40fcb85859ab0d0b8385013935b000c7a51ae79631dd74d9"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"proc-macro2",
"quote",
"serde",
- "serde_json",
"syn",
]
[[package]]
name = "near-rpc-error-macro"
version = "0.1.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "0c6111d713e90c7c551dee937f4a06cb9ea2672243455a4454cc7566387ba2d9"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"near-rpc-error-core",
"proc-macro2",
@@ -2068,49 +2087,10 @@ dependencies = [
"syn",
]
-[[package]]
-name = "near-runtime"
-version = "4.0.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2e4c0a4cd2ee5ccbc1fd5d492180ebf33ac1159d721b2e0c58c11953131fb449"
-dependencies = [
- "borsh",
- "byteorder",
- "ethereum-types",
- "hex",
- "lazy_static",
- "log",
- "near-crypto",
- "near-metrics",
- "near-primitives",
- "near-runtime-utils 4.0.0-pre.1",
- "near-store",
- "near-vm-errors 4.0.0-pre.1",
- "near-vm-logic 4.0.0-pre.1",
- "near-vm-runner",
- "num-bigint 0.3.2",
- "num-rational 0.3.2",
- "num-traits",
- "rand 0.7.3",
- "serde",
- "serde_json",
-]
-
[[package]]
name = "near-runtime-utils"
version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "47f5c1891cec5a03e3dc99f985031408b19516305e2e59d64c4ce52b409e46a0"
-dependencies = [
- "lazy_static",
- "regex",
-]
-
-[[package]]
-name = "near-runtime-utils"
-version = "4.0.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a48d80c4ca1d4cf99bc16490e1e3d49826c150dfc4410ac498918e45c7d98e07"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"lazy_static",
"regex",
@@ -2118,15 +2098,15 @@ dependencies = [
[[package]]
name = "near-sdk"
-version = "3.0.0-pre.3"
-source = "git+https://github.com/near/near-sdk-rs?rev=9d99077c6acfde68c06845f2a1eb2b5ed7983401#9d99077c6acfde68c06845f2a1eb2b5ed7983401"
+version = "3.1.0"
+source = "git+https://github.com/aurora-is-near/near-sdk-rs?rev=1b9843fe5b652928582e33879fc92ba87a639450#1b9843fe5b652928582e33879fc92ba87a639450"
dependencies = [
"base64 0.13.0",
"borsh",
"bs58",
- "near-primitives-core 0.1.0",
+ "near-primitives-core",
"near-sdk-macros",
- "near-vm-logic 3.0.0",
+ "near-vm-logic",
"serde",
"serde_json",
"wee_alloc",
@@ -2134,8 +2114,8 @@ dependencies = [
[[package]]
name = "near-sdk-core"
-version = "3.0.0-pre.3"
-source = "git+https://github.com/near/near-sdk-rs?rev=9d99077c6acfde68c06845f2a1eb2b5ed7983401#9d99077c6acfde68c06845f2a1eb2b5ed7983401"
+version = "3.1.0"
+source = "git+https://github.com/aurora-is-near/near-sdk-rs?rev=1b9843fe5b652928582e33879fc92ba87a639450#1b9843fe5b652928582e33879fc92ba87a639450"
dependencies = [
"Inflector",
"proc-macro2",
@@ -2145,8 +2125,8 @@ dependencies = [
[[package]]
name = "near-sdk-macros"
-version = "3.0.0-pre.3"
-source = "git+https://github.com/near/near-sdk-rs?rev=9d99077c6acfde68c06845f2a1eb2b5ed7983401#9d99077c6acfde68c06845f2a1eb2b5ed7983401"
+version = "3.1.0"
+source = "git+https://github.com/aurora-is-near/near-sdk-rs?rev=1b9843fe5b652928582e33879fc92ba87a639450#1b9843fe5b652928582e33879fc92ba87a639450"
dependencies = [
"near-sdk-core",
"proc-macro2",
@@ -2156,31 +2136,34 @@ dependencies = [
[[package]]
name = "near-sdk-sim"
-version = "3.0.0-pre.3"
-source = "git+https://github.com/near/near-sdk-rs?rev=9d99077c6acfde68c06845f2a1eb2b5ed7983401#9d99077c6acfde68c06845f2a1eb2b5ed7983401"
+version = "3.2.0"
+source = "git+https://github.com/aurora-is-near/near-sdk-rs?rev=1b9843fe5b652928582e33879fc92ba87a639450#1b9843fe5b652928582e33879fc92ba87a639450"
dependencies = [
+ "chrono",
"funty",
"lazy-static-include",
+ "near-chain-configs",
"near-crypto",
"near-pool",
"near-primitives",
- "near-runtime",
"near-sdk",
"near-store",
- "near-vm-logic 4.0.0-pre.1",
+ "near-vm-logic",
+ "node-runtime",
]
[[package]]
name = "near-store"
-version = "0.1.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "07e880d1d9a4ca5a1ca1ea0366fd80e295465f90cd0c1209f45d6d0b7a443ed4"
+version = "2.2.0"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"borsh",
"byteorder",
+ "bytesize",
"cached",
"derive_more",
"elastic-array",
+ "fs2",
"lazy_static",
"near-crypto",
"near-primitives",
@@ -2190,25 +2173,14 @@ dependencies = [
"serde",
"serde_json",
"strum",
+ "thiserror",
+ "tracing",
]
[[package]]
name = "near-vm-errors"
version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "53a100dda565c5375ac061126167afc5c33cdba1f2e325cfae3ce08f4a5a432a"
-dependencies = [
- "borsh",
- "hex",
- "near-rpc-error-macro",
- "serde",
-]
-
-[[package]]
-name = "near-vm-errors"
-version = "4.0.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e281d8730ed8cb0e3e69fb689acee6b93cdb43824cd69a8ffd7e1bfcbd1177d7"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"borsh",
"hex",
@@ -2219,60 +2191,48 @@ dependencies = [
[[package]]
name = "near-vm-logic"
version = "3.0.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a12201244dd59ae79506767afe7a8f51b5eb7bd0aa237d355dfa635f7b777c4a"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"base64 0.13.0",
"borsh",
"bs58",
"byteorder",
- "near-primitives-core 0.1.0",
- "near-runtime-utils 3.0.0",
- "near-vm-errors 3.0.0",
- "serde",
- "sha2 0.9.5",
- "sha3 0.9.1",
-]
-
-[[package]]
-name = "near-vm-logic"
-version = "4.0.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "e11cb28a2d07f37680efdaf860f4c9802828c44fc50c08009e7884de75d982c5"
-dependencies = [
- "base64 0.13.0",
- "borsh",
- "bs58",
- "byteorder",
- "near-primitives-core 0.4.0",
- "near-runtime-utils 4.0.0-pre.1",
- "near-vm-errors 4.0.0-pre.1",
+ "near-crypto",
+ "near-primitives",
+ "near-primitives-core",
+ "near-runtime-utils",
+ "near-vm-errors",
+ "ripemd160",
"serde",
- "sha2 0.9.5",
- "sha3 0.9.1",
+ "sha2 0.8.2",
+ "sha3 0.8.2",
]
[[package]]
name = "near-vm-runner"
-version = "4.0.0-pre.1"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "93a66e94e12ec66a29674cc4efa975c280415aa0c944d7294cedbdb0c3858b48"
+version = "3.0.0"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
dependencies = [
"anyhow",
"borsh",
"cached",
- "log",
"near-primitives",
- "near-vm-errors 4.0.0-pre.1",
- "near-vm-logic 4.0.0-pre.1",
+ "near-vm-errors",
+ "near-vm-logic",
"parity-wasm",
"pwasm-utils",
+ "serde",
+ "threadpool",
"tracing",
"wasmer",
+ "wasmer-compiler-cranelift",
"wasmer-compiler-singlepass",
+ "wasmer-engine-native",
"wasmer-runtime-core-near",
"wasmer-runtime-near",
"wasmer-types",
+ "wasmer-vm",
+ "wasmparser 0.51.4",
"wasmtime",
]
@@ -2289,6 +2249,37 @@ dependencies = [
"void",
]
+[[package]]
+name = "node-runtime"
+version = "3.0.0"
+source = "git+https://github.com/near/nearcore.git?rev=8a37d39629885a41dde58b60642bcf1e99407d90#8a37d39629885a41dde58b60642bcf1e99407d90"
+dependencies = [
+ "borsh",
+ "byteorder",
+ "ethereum-types",
+ "hex",
+ "lazy_static",
+ "log",
+ "near-chain-configs",
+ "near-crypto",
+ "near-metrics",
+ "near-primitives",
+ "near-runtime-utils",
+ "near-store",
+ "near-vm-errors",
+ "near-vm-logic",
+ "near-vm-runner",
+ "num-bigint 0.3.2",
+ "num-rational 0.3.2",
+ "num-traits",
+ "rand 0.7.3",
+ "rayon",
+ "serde",
+ "serde_json",
+ "thiserror",
+ "tracing",
+]
+
[[package]]
name = "nom"
version = "5.1.2"
@@ -2411,20 +2402,19 @@ dependencies = [
[[package]]
name = "object"
-version = "0.21.1"
+version = "0.22.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "37fd5004feb2ce328a52b0b3d01dbf4ffff72583493900ed15f22d4111c51693"
+checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
dependencies = [
"crc32fast",
"indexmap",
- "wasmparser 0.57.0",
]
[[package]]
name = "object"
-version = "0.22.0"
+version = "0.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8d3b63360ec3cb337817c2dbd47ab4a0f170d285d8e5a2064600f3def1402397"
+checksum = "a9a7ab5d64814df0fe4a4b5ead45ed6c5f181ee3ff04ba344313a6c80446c5d4"
dependencies = [
"crc32fast",
"indexmap",
@@ -2581,6 +2571,12 @@ dependencies = [
"winapi",
]
+[[package]]
+name = "paste"
+version = "1.0.5"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "acbf547ad0c65e31259204bd90935776d1c693cec2f4ff7abb7a1bbbd40dfe58"
+
[[package]]
name = "peeking_take_while"
version = "0.1.2"
@@ -2733,6 +2729,15 @@ version = "2.23.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "45604fc7a88158e7d514d8e22e14ac746081e7a70d7690074dd0029ee37458d6"
+[[package]]
+name = "psm"
+version = "0.1.13"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "21ff0279b4a85e576b97e4a21d13e437ebcd56612706cde5d3f0d5c9399490c0"
+dependencies = [
+ "cc",
+]
+
[[package]]
name = "pwasm-utils"
version = "0.12.0"
@@ -2840,17 +2845,6 @@ dependencies = [
"rand_core 0.6.2",
]
-[[package]]
-name = "raw-cpuid"
-version = "7.0.4"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "beb71f708fe39b2c5e98076204c3cc094ee5a4c12c4cdb119a2b72dc34164f41"
-dependencies = [
- "bitflags",
- "cc",
- "rustc_version",
-]
-
[[package]]
name = "rayon"
version = "1.5.0"
@@ -2900,17 +2894,6 @@ dependencies = [
"smallvec",
]
-[[package]]
-name = "regalloc"
-version = "0.0.30"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2041c2d34f6ff346d6f428974f03d8bf12679b0c816bb640dc5eb1d48848d8d1"
-dependencies = [
- "log",
- "rustc-hash",
- "smallvec",
-]
-
[[package]]
name = "regalloc"
version = "0.0.31"
@@ -2919,6 +2902,7 @@ checksum = "571f7f397d61c4755285cd37853fe8e03271c243424a907415909379659381c5"
dependencies = [
"log",
"rustc-hash",
+ "serde",
"smallvec",
]
@@ -3009,9 +2993,9 @@ dependencies = [
[[package]]
name = "rocksdb"
-version = "0.15.0"
+version = "0.16.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "23d83c02c429044d58474eaf5ae31e062d0de894e21125b47437ec0edc1397e6"
+checksum = "c749134fda8bfc90d0de643d59bfc841dcb3ac8a1062e12b6754bd60235c48b3"
dependencies = [
"libc",
"librocksdb-sys",
@@ -3367,6 +3351,15 @@ dependencies = [
"syn",
]
+[[package]]
+name = "threadpool"
+version = "1.8.1"
+source = "registry+https://github.com/rust-lang/crates.io-index"
+checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa"
+dependencies = [
+ "num_cpus",
+]
+
[[package]]
name = "time"
version = "0.1.43"
@@ -3815,9 +3808,9 @@ dependencies = [
[[package]]
name = "wasmer-runtime-core-near"
-version = "0.17.1"
+version = "0.17.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "2390b0b8cf58615c2f8b454d9535e1aed1d14c510cc1ce1af806a1992ad53300"
+checksum = "08ff9059d479dbff357e1953edbde198453d5421274119230c50754e61e8ec9f"
dependencies = [
"bincode",
"blake3",
@@ -3897,7 +3890,7 @@ dependencies = [
"cfg-if 0.1.10",
"indexmap",
"libc",
- "memoffset 0.6.3",
+ "memoffset",
"more-asserts",
"region",
"serde",
@@ -3914,41 +3907,37 @@ checksum = "aeb1956b19469d1c5e63e459d29e7b5aa0f558d9f16fcef09736f8a265e6c10a"
[[package]]
name = "wasmparser"
-version = "0.57.0"
-source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "32fddd575d477c6e9702484139cf9f23dcd554b06d185ed0f56c857dd3a47aa6"
-
-[[package]]
-name = "wasmparser"
-version = "0.59.0"
+version = "0.65.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "a950e6a618f62147fd514ff445b2a0b53120d382751960797f85f058c7eda9b9"
+checksum = "87cc2fe6350834b4e528ba0901e7aa405d78b89dc1fa3145359eb4de0e323fcf"
[[package]]
name = "wasmparser"
-version = "0.65.0"
+version = "0.76.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "87cc2fe6350834b4e528ba0901e7aa405d78b89dc1fa3145359eb4de0e323fcf"
+checksum = "755a9a4afe3f6cccbbe6d7e965eef44cf260b001f93e547eba84255c1d0187d8"
[[package]]
name = "wasmtime"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "373b87ebd6721f4121e28eeaaa41943548c48bcca04ac9bb063004207e5e7d70"
+checksum = "26ea2ad49bb047e10ca292f55cd67040bef14b676d07e7b04ed65fd312d52ece"
dependencies = [
"anyhow",
"backtrace",
"bincode",
- "cfg-if 0.1.10",
- "lazy_static",
+ "cfg-if 1.0.0",
+ "cpp_demangle",
+ "indexmap",
"libc",
"log",
+ "paste",
"region",
"rustc-demangle",
"serde",
"smallvec",
"target-lexicon 0.11.2",
- "wasmparser 0.59.0",
+ "wasmparser 0.76.0",
"wasmtime-environ",
"wasmtime-jit",
"wasmtime-profiling",
@@ -3958,75 +3947,78 @@ dependencies = [
[[package]]
name = "wasmtime-cranelift"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "40c01df908e54d40bed80326ade122825d464888991beafd950d186f1be309c2"
+checksum = "5e769b80abbb89255926f69ba37085f7dd6608c980134838c3c89d7bf6e776bc"
dependencies = [
- "cranelift-codegen 0.67.0",
- "cranelift-entity 0.67.0",
- "cranelift-frontend 0.67.0",
+ "cranelift-codegen 0.72.0",
+ "cranelift-entity 0.72.0",
+ "cranelift-frontend 0.72.0",
"cranelift-wasm",
+ "wasmparser 0.76.0",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-debug"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "28962772f96fadb79dc7be5ade135ca55d2b0017a012f4869e2476a03abbe733"
+checksum = "38501788c936a4932b0ddf61135963a4b7d1f549f63a6908ae56a1c86d74fc7b"
dependencies = [
"anyhow",
- "gimli 0.21.0",
+ "gimli 0.23.0",
"more-asserts",
- "object 0.21.1",
+ "object 0.23.0",
"target-lexicon 0.11.2",
"thiserror",
- "wasmparser 0.59.0",
+ "wasmparser 0.76.0",
"wasmtime-environ",
]
[[package]]
name = "wasmtime-environ"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "9c0d7401bf253b7b1f426afd70d285bb23ea9a1c7605d6af788c95db5084edf5"
+checksum = "fae793ea1387b2fede277d209bb27285366df58f0a3ae9d59e58a7941dce60fa"
dependencies = [
"anyhow",
- "cfg-if 0.1.10",
- "cranelift-codegen 0.67.0",
- "cranelift-entity 0.67.0",
+ "cfg-if 1.0.0",
+ "cranelift-codegen 0.72.0",
+ "cranelift-entity 0.72.0",
"cranelift-wasm",
- "gimli 0.21.0",
+ "gimli 0.23.0",
"indexmap",
"log",
"more-asserts",
+ "region",
"serde",
"thiserror",
- "wasmparser 0.59.0",
+ "wasmparser 0.76.0",
]
[[package]]
name = "wasmtime-jit"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "8c838a108318e7c5a2201addb3d3b27a6ef3d142f0eb0addc815b9c2541e5db5"
+checksum = "9b3bd0fae8396473a68a1491559d61776127bb9bea75c9a6a6c038ae4a656eb2"
dependencies = [
+ "addr2line 0.14.1",
"anyhow",
- "cfg-if 0.1.10",
- "cranelift-codegen 0.67.0",
- "cranelift-entity 0.67.0",
- "cranelift-frontend 0.67.0",
+ "cfg-if 1.0.0",
+ "cranelift-codegen 0.72.0",
+ "cranelift-entity 0.72.0",
+ "cranelift-frontend 0.72.0",
"cranelift-native",
"cranelift-wasm",
- "gimli 0.21.0",
+ "gimli 0.23.0",
"log",
"more-asserts",
- "object 0.21.1",
+ "object 0.23.0",
"region",
"serde",
"target-lexicon 0.11.2",
"thiserror",
- "wasmparser 0.59.0",
+ "wasmparser 0.76.0",
"wasmtime-cranelift",
"wasmtime-debug",
"wasmtime-environ",
@@ -4038,13 +4030,13 @@ dependencies = [
[[package]]
name = "wasmtime-obj"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "cc8422b0acce519b74c3ae5db59167c611ea92220e5c334ad406e977277e0f23"
+checksum = "a79fa098a3be8fabc50f5be60f8e47694d569afdc255de37850fc80295485012"
dependencies = [
"anyhow",
"more-asserts",
- "object 0.21.1",
+ "object 0.23.0",
"target-lexicon 0.11.2",
"wasmtime-debug",
"wasmtime-environ",
@@ -4052,12 +4044,12 @@ dependencies = [
[[package]]
name = "wasmtime-profiling"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "33f2689bf523f843555e57e24d59abf0c5013007366b866081d73a15e510b4b2"
+checksum = "d81e2106efeef4c01917fd16956a91d39bb78c07cf97027abdba9ca98da3f258"
dependencies = [
"anyhow",
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"lazy_static",
"libc",
"serde",
@@ -4068,19 +4060,22 @@ dependencies = [
[[package]]
name = "wasmtime-runtime"
-version = "0.20.0"
+version = "0.25.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
-checksum = "d7353f5e79390048128e44b5ceda7255723b2066de4026df9a168b0b2593df71"
+checksum = "f747c656ca4680cad7846ae91c57d03f2dd4f4170da77a700df4e21f0d805378"
dependencies = [
+ "anyhow",
"backtrace",
"cc",
- "cfg-if 0.1.10",
+ "cfg-if 1.0.0",
"indexmap",
"lazy_static",
"libc",
"log",
- "memoffset 0.5.6",
+ "memoffset",
"more-asserts",
+ "psm",
+ "rand 0.7.3",
"region",
"thiserror",
"wasmtime-environ",
diff --git a/Cargo.toml b/Cargo.toml
index e97cc3a48..3d1829921 100644
--- a/Cargo.toml
+++ b/Cargo.toml
@@ -62,12 +62,12 @@ bstr = "0.2"
serde = { version = "1", features = ["derive"] }
serde_json = "1"
hex = { version = "0.4.3", default-features = false }
-near-sdk = { git = "https://github.com/near/near-sdk-rs", rev = "9d99077c6acfde68c06845f2a1eb2b5ed7983401" }
-near-sdk-sim = { git = "https://github.com/near/near-sdk-rs", rev = "9d99077c6acfde68c06845f2a1eb2b5ed7983401" }
-near-crypto = "0.1.0"
-near-vm-runner = "4.0.0-pre.1"
-near-vm-logic = "4.0.0-pre.1"
-near-primitives-core = "0.4.0"
+near-sdk = { git = "https://github.com/aurora-is-near/near-sdk-rs", rev = "1b9843fe5b652928582e33879fc92ba87a639450" }
+near-sdk-sim = { git = "https://github.com/aurora-is-near/near-sdk-rs", rev = "1b9843fe5b652928582e33879fc92ba87a639450" }
+near-crypto = { git = "https://github.com/near/nearcore.git", rev = "8a37d39629885a41dde58b60642bcf1e99407d90"}
+near-vm-runner = { git = "https://github.com/near/nearcore.git", rev = "8a37d39629885a41dde58b60642bcf1e99407d90"}
+near-vm-logic = { git = "https://github.com/near/nearcore.git", rev = "8a37d39629885a41dde58b60642bcf1e99407d90"}
+near-primitives-core = { git = "https://github.com/near/nearcore.git", rev = "8a37d39629885a41dde58b60642bcf1e99407d90"}
libsecp256k1 = "0.3.5"
rand = "0.7.3"
criterion = "0.3.4"
diff --git a/src/precompiles/hash.rs b/src/precompiles/hash.rs
index d4f5ee788..87e99256a 100644
--- a/src/precompiles/hash.rs
+++ b/src/precompiles/hash.rs
@@ -86,6 +86,15 @@ pub struct RIPEMD160;
impl RIPEMD160 {
pub(super) const ADDRESS: Address = super::make_address(0, 3);
+
+ #[cfg(not(feature = "testnet"))]
+ fn internal_impl(input: &[u8]) -> [u8; 20] {
+ use ripemd160::Digest;
+ let hash = ripemd160::Ripemd160::digest(input);
+ let mut output = [0u8; 20];
+ output.copy_from_slice(&hash);
+ output
+ }
}
impl Precompile for RIPEMD160 {
@@ -106,13 +115,14 @@ impl Precompile for RIPEMD160 {
_context: &Context,
_is_static: bool,
) -> PrecompileResult {
- use ripemd160::Digest;
-
let cost = Self::required_gas(input)?;
if cost > target_gas {
Err(ExitError::OutOfGas)
} else {
- let hash = ripemd160::Ripemd160::digest(input);
+ #[cfg(not(feature = "testnet"))]
+ let hash = Self::internal_impl(input);
+ #[cfg(feature = "testnet")]
+ let hash = crate::sdk::ripemd160(input);
// The result needs to be padded with leading zeros because it is only 20 bytes, but
// the evm works with 32-byte words.
let mut output = vec![0u8; 32];
diff --git a/src/precompiles/secp256k1.rs b/src/precompiles/secp256k1.rs
index b4e678e4b..849d4fd28 100644
--- a/src/precompiles/secp256k1.rs
+++ b/src/precompiles/secp256k1.rs
@@ -16,10 +16,21 @@ mod consts {
/// See: https://etherscan.io/address/0000000000000000000000000000000000000001
// Quite a few library methods rely on this and that should be changed. This
// should only be for precompiles.
-pub fn ecrecover(hash: H256, signature: &[u8]) -> Result
{
- use sha3::Digest;
+pub(crate) fn ecrecover(hash: H256, signature: &[u8]) -> Result {
assert_eq!(signature.len(), 65);
+ #[cfg(feature = "testnet")]
+ return crate::sdk::ecrecover(hash, signature)
+ .map_err(|e| ExitError::Other(Borrowed(e.as_str())));
+
+ #[cfg(not(feature = "testnet"))]
+ internal_impl(hash, signature)
+}
+
+#[cfg(not(feature = "testnet"))]
+fn internal_impl(hash: H256, signature: &[u8]) -> Result {
+ use sha3::Digest;
+
let hash = secp256k1::Message::parse_slice(hash.as_bytes()).unwrap();
let v = signature[64];
let signature = secp256k1::Signature::parse_slice(&signature[0..64]).unwrap();
@@ -36,7 +47,9 @@ pub fn ecrecover(hash: H256, signature: &[u8]) -> Result {
}
}
- Err(ExitError::Other(Borrowed("invalid ECDSA signature")))
+ Err(ExitError::Other(Borrowed(
+ crate::sdk::ECRecoverErr.as_str(),
+ )))
}
pub(super) struct ECRecover;
diff --git a/src/sdk.rs b/src/sdk.rs
index 8a78c3124..10c476a8c 100644
--- a/src/sdk.rs
+++ b/src/sdk.rs
@@ -5,6 +5,12 @@ use borsh::{BorshDeserialize, BorshSerialize};
const READ_STORAGE_REGISTER_ID: u64 = 0;
const INPUT_REGISTER_ID: u64 = 0;
+#[cfg(feature = "testnet")]
+const ECRECOVER_MESSAGE_SIZE: u64 = 32;
+#[cfg(feature = "testnet")]
+const ECRECOVER_SIGNATURE_LENGTH: u64 = 64;
+#[cfg(feature = "testnet")]
+const ECRECOVER_MALLEABILITY_FLAG: u64 = 1;
/// Register used to record evicted values from the storage.
const EVICTED_REGISTER: u64 = 0;
@@ -45,6 +51,16 @@ mod exports {
fn random_seed(register_id: u64);
pub(crate) fn sha256(value_len: u64, value_ptr: u64, register_id: u64);
pub(crate) fn keccak256(value_len: u64, value_ptr: u64, register_id: u64);
+ pub(crate) fn ripemd160(value_len: u64, value_ptr: u64, register_id: u64);
+ pub(crate) fn ecrecover(
+ hash_len: u64,
+ hash_ptr: u64,
+ sig_len: u64,
+ sig_ptr: u64,
+ v: u64,
+ malleability_flag: u64,
+ register_id: u64,
+ ) -> u64;
// #####################
// # Miscellaneous API #
// #####################
@@ -372,6 +388,51 @@ pub fn keccak(input: &[u8]) -> H256 {
}
}
+/// Calls environment ripemd160 on given input.
+#[cfg(feature = "testnet")]
+pub fn ripemd160(input: &[u8]) -> [u8; 20] {
+ unsafe {
+ const REGISTER_ID: u64 = 1;
+ exports::ripemd160(input.len() as u64, input.as_ptr() as u64, REGISTER_ID);
+ let bytes = [0u8; 20];
+ exports::read_register(REGISTER_ID, bytes.as_ptr() as u64);
+ bytes
+ }
+}
+
+/// Recover address from message hash and signature.
+#[cfg(feature = "testnet")]
+pub fn ecrecover(hash: H256, signature: &[u8]) -> Result {
+ unsafe {
+ let hash_ptr = hash.as_ptr() as u64;
+ let sig_ptr = signature.as_ptr() as u64;
+ const RECOVER_REGISTER_ID: u64 = 1;
+ const KECCACK_REGISTER_ID: u64 = 2;
+ let result = exports::ecrecover(
+ ECRECOVER_MESSAGE_SIZE,
+ hash_ptr,
+ ECRECOVER_SIGNATURE_LENGTH,
+ sig_ptr,
+ signature[64] as u64,
+ ECRECOVER_MALLEABILITY_FLAG,
+ RECOVER_REGISTER_ID,
+ );
+ if result == (true as u64) {
+ // The result from the ecrecover call is in a register; we can use this
+ // register directly for the input to keccak256. This is why the length is
+ // set to `u64::MAX`.
+ exports::keccak256(u64::MAX, RECOVER_REGISTER_ID, KECCACK_REGISTER_ID);
+ let keccak_hash_bytes = [0u8; 32];
+ exports::read_register(KECCACK_REGISTER_ID, keccak_hash_bytes.as_ptr() as u64);
+ Ok(crate::prelude::Address::from_slice(
+ &keccak_hash_bytes[12..],
+ ))
+ } else {
+ Err(ECRecoverErr)
+ }
+ }
+}
+
/// Returns account id of the current account.
pub fn current_account_id() -> Vec {
unsafe {
@@ -578,3 +639,15 @@ impl AsRef<[u8]> for ReadU64Error {
}
}
}
+
+pub struct ECRecoverErr;
+impl ECRecoverErr {
+ pub fn as_str(&self) -> &'static str {
+ "ERR_ECRECOVER"
+ }
+}
+impl AsRef<[u8]> for ECRecoverErr {
+ fn as_ref(&self) -> &[u8] {
+ self.as_str().as_bytes()
+ }
+}
diff --git a/src/test_utils/mod.rs b/src/test_utils/mod.rs
index 677812406..b49f89485 100644
--- a/src/test_utils/mod.rs
+++ b/src/test_utils/mod.rs
@@ -103,8 +103,7 @@ impl<'a> OneShotAuroraRunner<'a> {
);
near_vm_runner::run(
- self.base.code.hash.as_ref().to_vec(),
- &self.base.code.code.as_slice(),
+ &self.base.code,
method_name,
&mut self.ext,
self.context.clone(),
@@ -169,8 +168,7 @@ impl AuroraRunner {
);
let (maybe_outcome, maybe_error) = near_vm_runner::run(
- self.code.hash.as_ref().to_vec(),
- &self.code.code.as_slice(),
+ &self.code,
method_name,
&mut self.ext,
self.context.clone(),
@@ -277,8 +275,7 @@ impl AuroraRunner {
address.as_bytes().to_vec(),
);
let (outcome, maybe_error) = near_vm_runner::run(
- self.code.hash.as_ref().to_vec(),
- &self.code.code.as_slice(),
+ &self.code,
method_name,
&mut self.ext.clone(),
context,
diff --git a/src/tests/eth_connector.rs b/src/tests/eth_connector.rs
index ca802856f..1f8994d60 100644
--- a/src/tests/eth_connector.rs
+++ b/src/tests/eth_connector.rs
@@ -45,16 +45,16 @@ fn init_contract(
) -> UserAccount {
let contract_account = master_account.deploy(
&crate::test_utils::AuroraRunner::default().code.code,
- contract_name.to_string(),
+ contract_name.parse().unwrap(),
to_yocto("1000000"),
);
contract_account
.call(
- contract_name.to_string(),
+ contract_name.parse().unwrap(),
"new",
&NewCallArgs {
chain_id: [0u8; 32],
- owner_id: master_account.account_id.clone(),
+ owner_id: master_account.account_id.clone().into(),
bridge_prover_id: accounts(0).to_string(),
upgrade_delay_blocks: 1,
}
@@ -66,7 +66,7 @@ fn init_contract(
.assert_success();
contract_account
.call(
- contract_name.to_string(),
+ contract_name.parse().unwrap(),
"new_eth_connector",
&InitCallArgs {
prover_account: PROVER_ACCOUNT.into(),
@@ -95,7 +95,7 @@ fn call_deposit_eth_to_near(
) -> Vec