From 5ac1c79481cb8adf2a1c4594d45ad040138514c1 Mon Sep 17 00:00:00 2001 From: "Joshua J. Bouw" Date: Fri, 1 Jul 2022 17:04:46 +0700 Subject: [PATCH] Merge: 2.6.1 into `develop` from `master` (#546) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * Feat(standalone): Add debug tracing of remaining gas values (#391) * Balance type refactoring (#386) * Remove standalone binary (#403) * Eth Address cleanup (#387) * Fix(dep) Pass std feature on to rjson library (#402) * Feat(benchmarks): update gas bounds after wasm cost reduction (#406) * Feat(tests): Mock touching trie nodes (#408) * Fix: Only allow owner to call deploy_upgrade (#410) * Feat(tests): Uniswap multi-hop swap benchmark (#415) * Fix(engine): Return revert error message during contract deploy (#424) * Move engine transactions module to engine-transactions crate (#418) * Avoid using wasmer directly (#420) * Fix compilation after #418 merge * Use default git attributes for Cargo.lock (#421) * Switch to rebranded blake2 (#422) * Remove unused unused (#423) * Chore: make aurora compatible with latest nightlies (#425) * Chore: upgrade to the recent nightly (#426) * chore: upgrade to the latest nearcore version (#427) * chore: move to 2021 edition (#428) * Benchmark contract performing only pure arithmetic and memory operations (#429) * Fix(engine): Require chain_id (#432) * chore: make sure aurora is using the latest cost config (#435) * Fix(test): make uniswap benchmarks reproducible (#437) * Fix(test): lower gas limit on OOG test; this is needed because the solidity compiler got more efficient, not because of a regression in EVM gas metering correctness * Fix(engine): Cache generation values to avoid repeated state reads (#438) * Fix(engine): Optimize is_account_empty (#439) * Fix(test): update uniswap wasm fraction; this is needed because optimizations from #438 and #439 together lowered the fraction of gas spent on IO * Fix(engine): Upgrade to latest SputnikVM (#445) * Fix(engine): Simple cache to stop consecutive duplicate reads (#446) * Version update and change log Co-authored-by: Aleksey Kladov Co-authored-by: Evgeny Ukhanov Co-authored-by: Michael Birch Release 2.5.0. (#460) * Engine: Upgrade to latest SputnikVM changes (#455) * Engine: further caching optimizations (#456) * Use EthTransactionKind reference to serialize into bytes (#457) * Test: Reproduce GdASJ3KESs8VegpFECTveCwLQp8fxw8yvsauNEmGb6pZ gas failure (#454) * Fix typo: promise_create (#452) * Fix(Engine): Transactions to the zero address are not the same as transactions with empty to field (#458) Co-authored-by: Marcelo Fornet Co-authored-by: Michael Birch Release 2.5.1. (#470) * Feat(Engine): Precompiles for predecessor_account_id and current_account_id (#462) * Implement a NEAR native version of the Solidity pure arithmetic benchmark to compare EVM execution cost with direct wasm cost (#463) * Fix features related to panic_info_message (#466) * Fix(standalone): set predecessor_account_id appropriately when executing promise callbacks (#467) * Fix(engine): fix bug in checking if an address exists (#469) * Version update * Update unreleased link Co-authored-by: Joshua J. Bouw Release 2.5.2. (#475) * Revert "Feat(Engine): Precompiles for predecessor_account_id and current_account_id (#462)" Release 2.5.3. (#527) * Fix(precompile): ExitToNear ExitToEthereum vulnerability patch Fix vulnerability Include exploit contract * Release 2.5.3 notes * Update solidity version Co-authored-by: Michael Birch Release 2.6.0. (#494) * Feat(Engine): Precompiles for predecessor_account_id and current_account_id (#462) * Fix(precompiles): Allow native precompiles to work in the standalone engine (#473) * Standalone engine improvements (#478) * Fix(Engine): Predecessor id precompile works in view calls (#477) * Feat(standalone): Persist transaction data (#481) * Feat(Engine): Add custom precompile for NEAR prepaid_gas (#479) * Test: Reproduce 8ru7VEAEbyfZdbC1W2PYQv2cY3W92rbTToDEN4yTp8aZ gas failure (#485) * Feat(standalone): Function to get latest/earliest block (#482) * Engine optimization: cache all reads from NEAR state (#488) * Feat(standalone): Handle call to new method of Engine contract (#490) * Feat(engine-types): optional serde integration (#468) * Changed near-blake2 dependency (#484) * Feat(standalone): thread-safety and serde (#496) * Refactor repro tests to have less boilerplate (#497) * Add serde for TraceTransaction (#495) * Fix(standalone): include possible execution errors in the TransactionIncludedOutcome result field (#500) * Reproduce transaction FRcorNvFojoxBrdiVMTy9gRD3H8EYXXKau4feevMZmFV (#498) * Reproduce transaction 5bEgfRQ5TSJfN9XCqYkMr9cgBLToM7JmS1bNzKpDXJhT (#499) * Fix(connector): Return an error when storage cannot be read instead of panicking (#501) * Standalone: forward underlying rocksdb crate features (#502) * Feat(tests): Multisender benchmark (#503) * Feat(test): Reproduce D98vwmi44hAYs8KtX5aLne1zEkj3MUss42e5SkG2a4SC (#504) * Standalone engine storage saves the AccountId of the associated engine deployed on chain (#510) * Fix(precompiles): Fix secp256k1 run not returning empty slice on an incorrect V byte (#513) * Self-contained wasm contract for testing 5bEgfRQ (#514) * Update gas estimation code to use new data from NEAR protocol v53 (#517) * Fix: Legacy transactions must be allowed (#520) * Chore(precompiles): Include blake2 compression only (#528) * Build(deps): Upgrade `libsecp256k1` version 0.3.5 => 0.7.0 (#515) * Bump regex from 1.5.4 to 1.5.6 (#526) * Bump regex from 1.5.4 to 1.5.6 in /etc/ft-receiver (#525) * Bump zeroize_derive from 1.1.0 to 1.3.2 (#523) * Bump crossbeam-deque from 0.8.0 to 0.8.1 (#521) * Bump crossbeam-utils from 0.8.4 to 0.8.8 (#524) * Bump cross-fetch from 2.2.3 to 2.2.6 in /etc/eth-contracts (#508) * Bump simple-get from 2.8.1 to 2.8.2 in /etc/eth-contracts (#507) * Bump follow-redirects from 1.14.0 to 1.15.1 in /etc/eth-contracts (#529) * Bump shelljs from 0.8.4 to 0.8.5 in /etc/eth-contracts * Fix(ecrecover): Set malleability flag to `0` for ecrecover. (#474) Co-authored-by: Evgeny Ukhanov Co-authored-by: Marcelo Fornet Co-authored-by: Michael Birch Co-authored-by: Roman Hodulák Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Release 2.6.1. (#537) * Fix: Don't allow fee stealing. * Fix: Don't allow bridge receipt forging. * Fix(engine): Correctly account for changes in total supply of ETH on Aurora (#536) Co-authored-by: Michael Birch Co-authored-by: Michael Birch --- Cargo.lock | 5 +- engine-standalone-tracing/Cargo.toml | 1 - etc/self-contained-5bEgfRQ/Cargo.lock | 124 ++++++++++---------------- etc/state-migration-test/Cargo.lock | 2 +- 4 files changed, 49 insertions(+), 83 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ce335cb03..ca50dfebe 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1180,7 +1180,6 @@ dependencies = [ "evm-core", "evm-gasometer", "evm-runtime", - "hex", "serde", ] @@ -2128,9 +2127,9 @@ dependencies = [ [[package]] name = "memmap2" -version = "0.5.4" +version = "0.5.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5172b50c23043ff43dd53e51392f36519d9b35a8f3a410d30ece5d1aedd58ae" +checksum = "fe3179b85e1fd8b14447cbebadb75e45a1002f541b925f0bfec366d56a81c56d" dependencies = [ "libc", ] diff --git a/engine-standalone-tracing/Cargo.toml b/engine-standalone-tracing/Cargo.toml index e2c3d0c32..c75c273c3 100644 --- a/engine-standalone-tracing/Cargo.toml +++ b/engine-standalone-tracing/Cargo.toml @@ -21,7 +21,6 @@ evm-core = { git = "https://github.com/aurora-is-near/sputnikvm.git", rev = "374 evm = { git = "https://github.com/aurora-is-near/sputnikvm.git", rev = "37448b6cacd98b06282cff5a559684505c29bd2b", default-features = false, features = ["std", "tracing"] } evm-runtime = { git = "https://github.com/aurora-is-near/sputnikvm.git", rev = "37448b6cacd98b06282cff5a559684505c29bd2b", default-features = false, features = ["std", "tracing"] } evm-gasometer = { git = "https://github.com/aurora-is-near/sputnikvm.git", rev = "37448b6cacd98b06282cff5a559684505c29bd2b", default-features = false, features = ["std", "tracing"] } -hex = { version = "0.4" } serde = { version = "1", features = ["derive"], optional = true } [features] diff --git a/etc/self-contained-5bEgfRQ/Cargo.lock b/etc/self-contained-5bEgfRQ/Cargo.lock index 6ff1281ca..7b05cad08 100644 --- a/etc/self-contained-5bEgfRQ/Cargo.lock +++ b/etc/self-contained-5bEgfRQ/Cargo.lock @@ -26,6 +26,16 @@ version = "0.7.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" +[[package]] +name = "aurora-blake2" +version = "0.9.1" +source = "git+https://github.com/aurora-is-near/aurora-blake2.git#05a0b5f7a544c527c0118f8afe2f943b3de4bb03" +dependencies = [ + "crypto-mac", + "digest 0.9.0", + "opaque-debug 0.3.0", +] + [[package]] name = "aurora-bn" version = "0.1.0" @@ -66,6 +76,7 @@ dependencies = [ name = "aurora-engine-precompiles" version = "1.0.0" dependencies = [ + "aurora-blake2", "aurora-bn", "aurora-engine-sdk", "aurora-engine-types", @@ -512,27 +523,6 @@ version = "0.4.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array 0.14.5", - "hmac", -] - [[package]] name = "impl-codec" version = "0.5.1" @@ -591,52 +581,17 @@ checksum = "349d5a591cd28b49e1d1037471617a32ddcda5731b99419008085f72d5a53836" [[package]] name = "libsecp256k1" -version = "0.7.0" +version = "0.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0452aac8bab02242429380e9b2f94ea20cea2b37e2c1777a1358799bbe97f37" +checksum = "1fc1e2c808481a63dc6da2074752fdd4336a3c8fcc68b83db6f1fd5224ae7962" dependencies = [ "arrayref", - "base64", - "digest 0.9.0", - "hmac-drbg", - "libsecp256k1-core", - "libsecp256k1-gen-ecmult", - "libsecp256k1-gen-genmult", - "rand", - "serde", - "sha2", - "typenum", -] - -[[package]] -name = "libsecp256k1-core" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5be9b9bb642d8522a44d533eab56c16c738301965504753b03ad1de3425d5451" -dependencies = [ "crunchy", - "digest 0.9.0", + "digest 0.8.1", + "rand", "subtle", ] -[[package]] -name = "libsecp256k1-gen-ecmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3038c808c55c87e8a172643a7d87187fc6c4174468159cb3090659d55bcb4809" -dependencies = [ - "libsecp256k1-core", -] - -[[package]] -name = "libsecp256k1-gen-genmult" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db8d6ba2cec9eacc40e6e8ccc98931840301f1006e95647ceb2dd5c3aa06f7c" -dependencies = [ - "libsecp256k1-core", -] - [[package]] name = "log" version = "0.4.17" @@ -788,6 +743,12 @@ dependencies = [ "syn", ] +[[package]] +name = "ppv-lite86" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" + [[package]] name = "primitive-types" version = "0.10.1" @@ -864,18 +825,39 @@ dependencies = [ [[package]] name = "rand" -version = "0.8.5" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "rand_chacha", + "rand_core", + "rand_hc", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ + "ppv-lite86", "rand_core", ] [[package]] name = "rand_core" -version = "0.6.3" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" + +[[package]] +name = "rand_hc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d34f1408f55294453790c48b2f1ebbb1c5b4b7563eb1f418bcfcfdbb06ebb4e7" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core", +] [[package]] name = "regex-syntax" @@ -965,20 +947,6 @@ name = "serde" version = "1.0.137" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "61ea8d54c77f8315140a05f4c7237403bf38b72704d031543aa1d16abbf517d1" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde_derive" -version = "1.0.137" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f26faba0c3959972377d3b2d306ee9f71faee9714294e41bb777f83f88578be" -dependencies = [ - "proc-macro2", - "quote", - "syn", -] [[package]] name = "sha2" diff --git a/etc/state-migration-test/Cargo.lock b/etc/state-migration-test/Cargo.lock index f65c71a92..d7eb518cb 100644 --- a/etc/state-migration-test/Cargo.lock +++ b/etc/state-migration-test/Cargo.lock @@ -37,7 +37,7 @@ dependencies = [ [[package]] name = "aurora-engine" -version = "2.1.0" +version = "2.6.1" dependencies = [ "aurora-bn", "aurora-engine-precompiles",