diff --git a/Cargo.lock b/Cargo.lock index 3f5c46648..5fa06c675 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -3720,6 +3720,7 @@ dependencies = [ "chrono", "futures", "once_cell", + "pretty_assertions", "primitives", "reqwest", "sentry", @@ -3727,6 +3728,7 @@ dependencies = [ "slog", "subprocess", "tokio", + "validator_worker", "web3", ] diff --git a/adapter/Cargo.toml b/adapter/Cargo.toml index ec4e035a5..26f7e6350 100644 --- a/adapter/Cargo.toml +++ b/adapter/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" [features] -test-util = [] +test-util = ["primitives/test-util"] [dependencies] primitives = { path = "../primitives" } diff --git a/adapter/src/ethereum.rs b/adapter/src/ethereum.rs index 840248338..57d498063 100644 --- a/adapter/src/ethereum.rs +++ b/adapter/src/ethereum.rs @@ -501,7 +501,10 @@ mod test { use super::test_util::*; use super::*; use chrono::Utc; - use primitives::{config::DEVELOPMENT_CONFIG, util::tests::prep_db::IDS}; + use primitives::{ + config::DEVELOPMENT_CONFIG, + test_util::{CREATOR, IDS, LEADER}, + }; use web3::{transports::Http, Web3}; use wiremock::{ matchers::{method, path}, @@ -636,7 +639,7 @@ mod test { async fn get_deposit_and_count_create2_when_min_tokens_received() { let web3 = Web3::new(Http::new(GANACHE_URL).expect("failed to init transport")); - let leader_account = GANACHE_ADDRESSES["leader"]; + let leader_account = *LEADER; // deploy contracts let token = deploy_token_contract(&web3, 1_000) @@ -652,7 +655,7 @@ mod test { .await .expect("Correct parameters are passed to the OUTPACE constructor."); - let spender = GANACHE_ADDRESSES["creator"]; + let spender = *CREATOR; let channel = get_test_channel(token_address); @@ -693,7 +696,7 @@ mod test { { mock_set_balance( &token.2, - *GANACHE_ADDRESSES["leader"].as_bytes(), + *LEADER.as_bytes(), *spender.as_bytes(), &BigNum::from(10_000), ) diff --git a/adapter/src/ethereum/test_util.rs b/adapter/src/ethereum/test_util.rs index 1901c86e2..e95021076 100644 --- a/adapter/src/ethereum/test_util.rs +++ b/adapter/src/ethereum/test_util.rs @@ -12,6 +12,7 @@ use primitives::{ adapter::KeystoreOptions, channel::{Channel, Nonce}, config::TokenInfo, + test_util::{ADVERTISER, CREATOR, FOLLOWER, GUARDIAN, GUARDIAN_2, LEADER, PUBLISHER}, Address, BigNum, Config, ValidatorId, }; @@ -48,129 +49,41 @@ pub static KEYSTORE_IDENTITY: Lazy<(Address, KeystoreOptions)> = Lazy::new(|| { (address, keystore_options("keystore.json", "adexvalidator")) }); -pub static GANACHE_KEYSTORES: Lazy> = Lazy::new(|| { +pub static KEYSTORES: Lazy> = Lazy::new(|| { vec![ ( - "guardian".to_string(), - ( - "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39" - .parse() - .expect("Valid Address"), - keystore_options( - "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39_keystore.json", - "address0", - ), - ), - ), - ( - "leader".to_string(), - ( - "0x5a04A8fB90242fB7E1db7d1F51e268A03b7f93A5" - .parse() - .expect("Valid Address"), - keystore_options( - "0x5a04A8fB90242fB7E1db7d1F51e268A03b7f93A5_keystore.json", - "address1", - ), - ), - ), - ( - "follower".to_string(), - ( - "0xe3896ebd3F32092AFC7D27e9ef7b67E26C49fB02" - .parse() - .expect("Valid Address"), - keystore_options( - "0xe3896ebd3F32092AFC7D27e9ef7b67E26C49fB02_keystore.json", - "address2", - ), - ), - ), - ( - "creator".to_string(), - ( - "0x0E45891a570Af9e5A962F181C219468A6C9EB4e1" - .parse() - .expect("Valid Address"), - keystore_options( - "0x0E45891a570Af9e5A962F181C219468A6C9EB4e1_keystore.json", - "address3", - ), - ), - ), - ( - "advertiser".to_string(), - ( - "0x8c4B95383a46D30F056aCe085D8f453fCF4Ed66d" - .parse() - .expect("Valid Address"), - keystore_options( - "0x8c4B95383a46D30F056aCe085D8f453fCF4Ed66d_keystore.json", - "address4", - ), - ), - ), - ( - "guardian2".to_string(), - ( - "0x1059B025E3F8b8f76A8120D6D6Fd9fBa172c80b8" - .parse() - .expect("Valid Address"), - keystore_options( - "0x1059B025E3F8b8f76A8120D6D6Fd9fBa172c80b8_keystore.json", - "address5", - ), - ), + *LEADER, + keystore_options(&format!("{}_keystore.json", *LEADER), "ganache0"), ), - ] - .into_iter() - .collect() -}); - -/// Addresses generated on local running `ganache` for testing purposes. -/// see the `ganache-cli.sh` script in the repository -pub static GANACHE_ADDRESSES: Lazy> = Lazy::new(|| { - vec![ ( - "guardian".to_string(), - "0xDf08F82De32B8d460adbE8D72043E3a7e25A3B39" - .parse() - .expect("Valid Address"), + *FOLLOWER, + keystore_options(&format!("{}_keystore.json", *FOLLOWER), "ganache1"), ), ( - "leader".to_string(), - "0x5a04A8fB90242fB7E1db7d1F51e268A03b7f93A5" - .parse() - .expect("Valid Address"), + *GUARDIAN, + keystore_options(&format!("{}_keystore.json", *GUARDIAN), "ganache2"), ), ( - "follower".to_string(), - "0xe3896ebd3F32092AFC7D27e9ef7b67E26C49fB02" - .parse() - .expect("Valid Address"), + *CREATOR, + keystore_options(&format!("{}_keystore.json", *CREATOR), "ganache3"), ), ( - "creator".to_string(), - "0x0E45891a570Af9e5A962F181C219468A6C9EB4e1" - .parse() - .expect("Valid Address"), + *ADVERTISER, + keystore_options(&format!("{}_keystore.json", *ADVERTISER), "ganache4"), ), ( - "advertiser".to_string(), - "0x8c4B95383a46D30F056aCe085D8f453fCF4Ed66d" - .parse() - .expect("Valid Address"), + *PUBLISHER, + keystore_options(&format!("{}_keystore.json", *PUBLISHER), "ganache5"), ), ( - "guardian2".to_string(), - "0x1059B025E3F8b8f76A8120D6D6Fd9fBa172c80b8" - .parse() - .expect("Valid Address"), + *GUARDIAN_2, + keystore_options(&format!("{}_keystore.json", *GUARDIAN_2), "ganache6"), ), ] .into_iter() .collect() }); + /// Local `ganache` is running at: pub const GANACHE_URL: &str = "http://localhost:8545"; @@ -193,9 +106,9 @@ fn keystore_options(file_name: &str, password: &str) -> KeystoreOptions { pub fn get_test_channel(token_address: Address) -> Channel { Channel { - leader: ValidatorId::from(&GANACHE_ADDRESSES["leader"]), - follower: ValidatorId::from(&GANACHE_ADDRESSES["follower"]), - guardian: GANACHE_ADDRESSES["advertiser"], + leader: ValidatorId::from(&LEADER), + follower: ValidatorId::from(&FOLLOWER), + guardian: *GUARDIAN, token: token_address, nonce: Nonce::from(12345_u32), } @@ -251,7 +164,7 @@ pub async fn sweeper_sweep( channel: &Channel, depositor: [u8; 20], ) -> web3::contract::Result { - let from_leader_account = H160(*GANACHE_ADDRESSES["leader"].as_bytes()); + let from_leader_account = H160(*LEADER.as_bytes()); sweeper_contract .call( @@ -281,11 +194,7 @@ pub async fn deploy_sweeper_contract( opt.gas_price = Some(1.into()); opt.gas = Some(6_721_975.into()); })) - .execute( - *SWEEPER_BYTECODE, - (), - H160(GANACHE_ADDRESSES["leader"].to_bytes()), - ) + .execute(*SWEEPER_BYTECODE, (), H160(LEADER.to_bytes())) .await?; let sweeper_address = Address::from(sweeper_contract.address().to_fixed_bytes()); @@ -304,18 +213,14 @@ pub async fn deploy_outpace_contract( opt.gas_price = Some(1.into()); opt.gas = Some(6_721_975.into()); })) - .execute( - *OUTPACE_BYTECODE, - (), - H160(GANACHE_ADDRESSES["leader"].to_bytes()), - ) + .execute(*OUTPACE_BYTECODE, (), H160(LEADER.to_bytes())) .await?; let outpace_address = Address::from(outpace_contract.address().to_fixed_bytes()); Ok((outpace_address, outpace_contract)) } -/// Deploys the Mock Token contract from `GANACHE_ADDRESS['leader']` +/// Deploys the Mock Token contract from [`LEADER`] pub async fn deploy_token_contract( web3: &Web3, min_token_units: u64, @@ -327,11 +232,7 @@ pub async fn deploy_token_contract( opt.gas_price = Some(1.into()); opt.gas = Some(6_721_975.into()); })) - .execute( - *MOCK_TOKEN_BYTECODE, - (), - H160(GANACHE_ADDRESSES["leader"].to_bytes()), - ) + .execute(*MOCK_TOKEN_BYTECODE, (), H160(LEADER.to_bytes())) .await?; let token_info = TokenInfo { diff --git a/adapter/test/resources/0x0e880972A4b216906F05D67EeaaF55d16B5EE4F1_keystore.json b/adapter/test/resources/0x0e880972A4b216906F05D67EeaaF55d16B5EE4F1_keystore.json new file mode 100644 index 000000000..e76598dd2 --- /dev/null +++ b/adapter/test/resources/0x0e880972A4b216906F05D67EeaaF55d16B5EE4F1_keystore.json @@ -0,0 +1 @@ +{"address":"0e880972a4b216906f05d67eeaaf55d16b5ee4f1","crypto":{"cipher":"aes-128-ctr","ciphertext":"a6517c853f41d70892195c2d49b6bf9cb70b28714df9148a2115422582ed71a7","cipherparams":{"iv":"29a072ed18b810e36461a4dafa3b8816"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"4647c8d015db3c67db397f291c13440b5a657f391470d02568c797d22252ee19"},"mac":"b9a6db84659a13b0d895418a9cff0a2b7b5f671ece4ea5c58b3c6cb403ad5a13"},"id":"be2aa04b-63d8-48ac-8d3b-3ed09a9d88b1","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0x541b401362Ea1D489D322579552B099e801F3632_keystore.json b/adapter/test/resources/0x541b401362Ea1D489D322579552B099e801F3632_keystore.json new file mode 100644 index 000000000..584c07e04 --- /dev/null +++ b/adapter/test/resources/0x541b401362Ea1D489D322579552B099e801F3632_keystore.json @@ -0,0 +1 @@ +{"address":"541b401362ea1d489d322579552b099e801f3632","crypto":{"cipher":"aes-128-ctr","ciphertext":"3bd972f8844c918ec26bdd4d3f8d22d9fe2f9d3451147ba938e343d927345d4f","cipherparams":{"iv":"5487bbad4c2b80bf3a92ecf7f28226ce"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"63a4ede118e5df870aafe733b209449ca8a68ba4e0996b95b6a2f35a527772cf"},"mac":"480b35a4cca3029ec50eb9179f192b8535f285b5f0eea4f36ca020109da73953"},"id":"b6be20d9-2e37-44fd-ad66-ac0c35433367","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0x6B83e7D6B72c098d48968441e0d05658dc17Adb9_keystore.json b/adapter/test/resources/0x6B83e7D6B72c098d48968441e0d05658dc17Adb9_keystore.json new file mode 100644 index 000000000..f1065e353 --- /dev/null +++ b/adapter/test/resources/0x6B83e7D6B72c098d48968441e0d05658dc17Adb9_keystore.json @@ -0,0 +1 @@ +{"address":"6b83e7d6b72c098d48968441e0d05658dc17adb9","crypto":{"cipher":"aes-128-ctr","ciphertext":"858809639fa1dbf62e75b4169cdc5943b5f45303bfe9b951521fc6693b1ce9a8","cipherparams":{"iv":"61bdcc7b9cd9d89fa96c56d9bff89f93"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"d5ecc7916286c175e8577282cd04ed261cce572f53a2a2305265025104a867c2"},"mac":"7796fbe5bd53dffb3e950f33cf925b4e514deb36f53aa2bc4168121172202dd7"},"id":"2a72e9cf-2641-452d-85f5-3a24cc4b3639","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0x79D358a3194d737880B3eFD94ADccD246af9F535_keystore.json b/adapter/test/resources/0x79D358a3194d737880B3eFD94ADccD246af9F535_keystore.json new file mode 100644 index 000000000..51cbc60b7 --- /dev/null +++ b/adapter/test/resources/0x79D358a3194d737880B3eFD94ADccD246af9F535_keystore.json @@ -0,0 +1 @@ +{"address":"79d358a3194d737880b3efd94adccd246af9f535","crypto":{"cipher":"aes-128-ctr","ciphertext":"7476b220ad1319f5529db288ff3d28714036a08d4cbc8b4773576bbd441335f1","cipherparams":{"iv":"f1abaecd7c61b9a618e9d554f29663ab"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"de714bab560d07fa3c0fd65c91017c9f299ff81ba5452230efc992c8a45953c6"},"mac":"7859828865cf7475a406f3316a06484a19ca4731425ba32d69732b8669ab656a"},"id":"b3104849-29e1-4ae7-9f35-9d9416ecf800","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0x80690751969B234697e9059e04ed72195c3507fa_keystore.json b/adapter/test/resources/0x80690751969B234697e9059e04ed72195c3507fa_keystore.json new file mode 100644 index 000000000..b9860e4ac --- /dev/null +++ b/adapter/test/resources/0x80690751969B234697e9059e04ed72195c3507fa_keystore.json @@ -0,0 +1 @@ +{"address":"80690751969b234697e9059e04ed72195c3507fa","crypto":{"cipher":"aes-128-ctr","ciphertext":"c2634ba60e6e06ecb93cc86cd01acaba46f20f6c0a8d0e7ee2369fc395d1e1da","cipherparams":{"iv":"59d357b9fc87ef7ca49cbdc05bb4d45a"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"044091f31212d7fcfe76cf1a900e809cbd2ffbde27d792f094217855194c3033"},"mac":"94b10daeec744c1ec9a420c87ba932ddd3d64eb91fe665ed38d8971c47baedcc"},"id":"6c42b310-341a-44d1-b878-4487820aa67c","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0xDd589B43793934EF6Ad266067A0d1D4896b0dff0_keystore.json b/adapter/test/resources/0xDd589B43793934EF6Ad266067A0d1D4896b0dff0_keystore.json new file mode 100644 index 000000000..1f470cbb7 --- /dev/null +++ b/adapter/test/resources/0xDd589B43793934EF6Ad266067A0d1D4896b0dff0_keystore.json @@ -0,0 +1 @@ +{"address":"dd589b43793934ef6ad266067a0d1d4896b0dff0","crypto":{"cipher":"aes-128-ctr","ciphertext":"c4098713be826e80f96def36c6c8712dde7d6d3e955041b266e6efff9130e94b","cipherparams":{"iv":"4650dad28bfb0d9004c289e9c449dfa9"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"072411161330f562f46a2acff9114cc6ed6d6e93e21b80cbb294ba5a2cc9663c"},"mac":"3e31a0891954b63590c9f94c626b5ecc555f96c4c6a50a5b9b90d84400ab40b4"},"id":"5cb4f686-fa3f-4aa6-a43b-ea413f37f5aa","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0xE882ebF439207a70dDcCb39E13CA8506c9F45fD9_keystore.json b/adapter/test/resources/0xE882ebF439207a70dDcCb39E13CA8506c9F45fD9_keystore.json new file mode 100644 index 000000000..c585f27ff --- /dev/null +++ b/adapter/test/resources/0xE882ebF439207a70dDcCb39E13CA8506c9F45fD9_keystore.json @@ -0,0 +1 @@ +{"address":"e882ebf439207a70ddccb39e13ca8506c9f45fd9","crypto":{"cipher":"aes-128-ctr","ciphertext":"c2458d5ac69b72af7232e037a4cbda13f6c12b84ec28fba2a234e7a799ee6938","cipherparams":{"iv":"473f47d68e8d81ef61800fe49575a4b4"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"37836aae8dcbf65925f7d72c211caea16fc9e66c545ed5f4d53ee078d5322af0"},"mac":"9f77532bb970ed2a2007bb79e98cfc773a823308b49cc016ac37f8dfd20791f1"},"id":"7f46e65b-3fe0-4c89-8096-9ae1ee13fb52","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0xaCBaDA2d5830d1875ae3D2de207A1363B316Df2F_keystore.json b/adapter/test/resources/0xaCBaDA2d5830d1875ae3D2de207A1363B316Df2F_keystore.json new file mode 100644 index 000000000..4555b2aa4 --- /dev/null +++ b/adapter/test/resources/0xaCBaDA2d5830d1875ae3D2de207A1363B316Df2F_keystore.json @@ -0,0 +1 @@ +{"address":"acbada2d5830d1875ae3d2de207a1363b316df2f","crypto":{"cipher":"aes-128-ctr","ciphertext":"a0d31409ed0b0d7645184f9af9e1c604b496ab2723e937fa1041b0c2c1bf9039","cipherparams":{"iv":"162a6071a0a9d14a478aaec1651fff5d"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"0a9959172a7dfa8b2a9d991dcc807a1487710b8db4baea9cd94a013979d84d1c"},"mac":"123b89889ce16f8388b807d3b8edc9930533ce9f7283092b1f4a2e8e5c8e2b71"},"id":"9ff0e2f0-b047-4665-9739-c1f23c675921","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0xe061E1EB461EaBE512759aa18A201B20Fe90631D_keystore.json b/adapter/test/resources/0xe061E1EB461EaBE512759aa18A201B20Fe90631D_keystore.json new file mode 100644 index 000000000..dc275ff48 --- /dev/null +++ b/adapter/test/resources/0xe061E1EB461EaBE512759aa18A201B20Fe90631D_keystore.json @@ -0,0 +1 @@ +{"address":"e061e1eb461eabe512759aa18a201b20fe90631d","crypto":{"cipher":"aes-128-ctr","ciphertext":"2933df95448d0e38f7e1131470ab34ad3594c0350fa2aa609624e5f07ec0c234","cipherparams":{"iv":"3ce58291f69c56c12f82f4100db59f42"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"5c436a526de371d88ec969863c69fd2609343346518df7129db2ad42c57bc60a"},"mac":"bf3376d3b15faddc9ffbfd7bbac786879d0f915b37129290972f67d3c6843e6f"},"id":"ef2cf869-65fd-42d1-99dd-1cb5f0c62db6","version":3} \ No newline at end of file diff --git a/adapter/test/resources/0xf3f583AEC5f7C030722Fe992A5688557e1B86ef7_keystore.json b/adapter/test/resources/0xf3f583AEC5f7C030722Fe992A5688557e1B86ef7_keystore.json new file mode 100644 index 000000000..dafe4112d --- /dev/null +++ b/adapter/test/resources/0xf3f583AEC5f7C030722Fe992A5688557e1B86ef7_keystore.json @@ -0,0 +1 @@ +{"address":"f3f583aec5f7c030722fe992a5688557e1b86ef7","crypto":{"cipher":"aes-128-ctr","ciphertext":"344d7cc0938dd957f26d051faf4a2bb1e2218c6a0e4bc34ff4a82a186bbdac64","cipherparams":{"iv":"5f21cb8d89daa243b1bc654754a35ec2"},"kdf":"scrypt","kdfparams":{"dklen":32,"n":262144,"p":1,"r":8,"salt":"dfd642d19d7a7f1628e3d008b6567e3993c44b2109112ef3708a4ccd91e08bee"},"mac":"168df507bd8bb1de7bd09cf821dac0e3c1c2e4c099a77febb5255c2df537a449"},"id":"ef8571f7-a68a-4c6b-a595-78c4ec928908","version":3} \ No newline at end of file diff --git a/docker-compose.yml b/docker-compose.yml deleted file mode 100644 index 0b106b831..000000000 --- a/docker-compose.yml +++ /dev/null @@ -1,12 +0,0 @@ -version: '3.7' - -services: - validator: - build: . - container_name: 'adex-network-validator' - restart: always - # For Ethereum adapter - #volumes: - # - "/root/keystore.json:/app/keystore.json" - env_file: - - validator.env diff --git a/docs/config/ganache.toml b/docs/config/ganache.toml index 0836b16a9..267af6bcb 100644 --- a/docs/config/ganache.toml +++ b/docs/config/ganache.toml @@ -30,9 +30,9 @@ ip_rate_limit = { type = 'ip', timeframe = 1200000 } sid_rate_limit = { type = 'sid', timeframe = 0 } # Ganache Snapshot address -outpace_address = '0xcb097e455b7159f902e2eb45562fc397ae6b0f3d' +outpace_address = '0xabc27d46a458e2e49dabfef45ca74dedbac3dd06' # Ganache Snapshot address -sweeper_address = '0xdd41b0069256a28972458199a3c9cf036384c156' +sweeper_address = '0x7dd57c0324284102a757153e18f2cb1acdb7d2bd' ethereum_network = 'http://localhost:8545' # Mocked relayer @@ -45,11 +45,11 @@ validators_whitelist = [] [[token_address_whitelist]] # Mocked TOKEN -address = '0x9db7bff788522dbe8fa2e8cbd568a58c471ccd5e' +address = '0x2bcaf6968aec8a3b5126fbfab5fd419da6e8ad8e' # 1 * 10^18 = 1.0000 TOKEN min_token_units_for_deposit = '1000000000000000000' -# multiplier = 10^14 - 10^18 (token precision) = 10^-4 -# min_validator_fee = 1 * 10^-4 = 0.000_1 -min_validator_fee = '100000000000000' +# multiplier = 10^13 - 10^18 (token precision) = 10^-5 +# min_validator_fee = 1 * 10^-5 = 0.000_01 +min_validator_fee = '10000000000000' precision = 18 diff --git a/lib/protocol-eth b/lib/protocol-eth index 51e7e07de..c130e8908 160000 --- a/lib/protocol-eth +++ b/lib/protocol-eth @@ -1 +1 @@ -Subproject commit 51e7e07de1cafb972e08f97e604f513d84e215e0 +Subproject commit c130e8908f49fd2b3edc70e0804ce1980d6da3fb diff --git a/primitives/Cargo.toml b/primitives/Cargo.toml index b3a82e920..d6962ffb2 100644 --- a/primitives/Cargo.toml +++ b/primitives/Cargo.toml @@ -10,6 +10,9 @@ edition = "2021" [features] postgres = ["bytes", "tokio-postgres", "deadpool-postgres"] +# Enables the testing utilities like addresses, dummy Campaigns, Validators, IPFSes, AdUnits, etc. +# All Addresses and keystore files exist in the ganache-cli setup for testing with the EthereumAdapter +test-util = [] [dependencies] # (De)Serialization diff --git a/primitives/src/address.rs b/primitives/src/address.rs index 0ca738c83..9a7c7581b 100644 --- a/primitives/src/address.rs +++ b/primitives/src/address.rs @@ -91,7 +91,7 @@ impl FromStr for Address { type Err = Error; fn from_str(s: &str) -> Result { - Ok(Self(from_bytes(s, Prefix::Insensitive)?)) + Ok(Self(parse_bytes(s, Prefix::Insensitive)?)) } } @@ -99,7 +99,29 @@ impl TryFrom<&str> for Address { type Error = Error; fn try_from(value: &str) -> Result { - Ok(Self(from_bytes(value, Prefix::Insensitive)?)) + Ok(Self(parse_bytes(value, Prefix::Insensitive)?)) + } +} + +/// When we have a string literal (&str) representation of the Address in the form of bytes. +/// Useful for creating static values from strings for testing, configuration, etc. +/// +/// You can find a test setup example in the [`crate::test_util`] module. +/// +/// # Example +/// ``` +/// use once_cell::sync::Lazy; +/// use primitives::Address; +/// +/// static ADDRESS_0: Lazy
= Lazy::new(|| b"0x80690751969B234697e9059e04ed72195c3507fa".try_into().unwrap()); +/// +/// println!("Address: {}", *ADDRESS_0); +/// ``` +impl TryFrom<&'static [u8; 42]> for Address { + type Error = Error; + + fn try_from(value: &'static [u8; 42]) -> Result { + Ok(Self(parse_bytes(value, Prefix::With)?)) } } @@ -115,7 +137,7 @@ impl TryFrom<&[u8]> for Address { type Error = Error; fn try_from(slice: &[u8]) -> Result { - Ok(Self(from_bytes(slice, Prefix::Insensitive)?)) + Ok(Self(parse_bytes(slice, Prefix::Insensitive)?)) } } @@ -132,7 +154,7 @@ impl TryFrom for Address { } mod de { - use super::{from_bytes, Prefix}; + use super::{parse_bytes, Prefix}; use serde::{Deserialize, Deserializer}; /// Deserializes the bytes with our without a `0x` prefix (insensitive) @@ -142,7 +164,7 @@ mod de { { let address = String::deserialize(deserializer)?; - from_bytes(address, Prefix::Insensitive).map_err(serde::de::Error::custom) + parse_bytes(address, Prefix::Insensitive).map_err(serde::de::Error::custom) } } @@ -155,7 +177,7 @@ pub enum Prefix { Insensitive, } -pub fn from_bytes>(from: T, prefix: Prefix) -> Result<[u8; 20], Error> { +pub fn parse_bytes>(from: T, prefix: Prefix) -> Result<[u8; 20], Error> { let bytes = from.as_ref(); let from_hex = diff --git a/primitives/src/analytics.rs b/primitives/src/analytics.rs index efa42f804..098feda9f 100644 --- a/primitives/src/analytics.rs +++ b/primitives/src/analytics.rs @@ -222,6 +222,8 @@ fn default_timeframe() -> String { #[cfg(test)] mod test { use super::*; + + #[cfg(feature = "postgres")] use crate::postgres::POSTGRES_POOL; use once_cell::sync::Lazy; use serde_json::{from_value, to_value, Value}; diff --git a/primitives/src/balances.rs b/primitives/src/balances.rs index e983b84f0..47358bb94 100644 --- a/primitives/src/balances.rs +++ b/primitives/src/balances.rs @@ -6,7 +6,7 @@ use thiserror::Error; #[derive(Serialize, Debug, Clone, PartialEq, Eq, Default)] #[serde(rename_all = "camelCase")] -pub struct Balances { +pub struct Balances { pub earners: UnifiedMap, pub spenders: UnifiedMap, state: PhantomData, @@ -38,7 +38,7 @@ impl Balances { } impl Balances { - pub fn new() -> Balances { + pub fn new() -> Balances { Balances { earners: Default::default(), spenders: Default::default(), @@ -46,25 +46,6 @@ impl Balances { } } - pub fn spend( - &mut self, - spender: Address, - earner: Address, - amount: UnifiedNum, - ) -> Result<(), OverflowError> { - let spent = self.spenders.entry(spender).or_default(); - *spent = spent - .checked_add(&amount) - .ok_or(OverflowError::Spender(spender))?; - - let earned = self.earners.entry(earner).or_default(); - *earned = earned - .checked_add(&amount) - .ok_or(OverflowError::Earner(earner))?; - - Ok(()) - } - /// Adds the spender to the Balances with `0` if he does not exist pub fn add_spender(&mut self, spender: Address) { self.spenders @@ -101,6 +82,27 @@ impl Balances { } } +impl Balances { + pub fn spend( + &mut self, + spender: Address, + earner: Address, + amount: UnifiedNum, + ) -> Result<(), OverflowError> { + let spent = self.spenders.entry(spender).or_default(); + *spent = spent + .checked_add(&amount) + .ok_or(OverflowError::Spender(spender))?; + + let earned = self.earners.entry(earner).or_default(); + *earned = earned + .checked_add(&amount) + .ok_or(OverflowError::Earner(earner))?; + + Ok(()) + } +} + #[derive(Debug, Error)] pub enum OverflowError { #[error("Spender {0} amount overflowed")] diff --git a/primitives/src/campaign.rs b/primitives/src/campaign.rs index 48e9895ac..19bfcb50a 100644 --- a/primitives/src/campaign.rs +++ b/primitives/src/campaign.rs @@ -143,6 +143,15 @@ mod campaign_id { use super::*; + #[test] + fn parse_and_display_campaign_id() { + let str_id = "0x936da01f9abd4d9d80c702af85c822a8"; + + let campaign_id: CampaignId = str_id.parse().expect("Should parse"); + + assert_eq!(str_id, &campaign_id.to_string()) + } + #[test] fn de_serializes_campaign_id() { let id = CampaignId::new(); diff --git a/primitives/src/channel.rs b/primitives/src/channel.rs index 295ed4cec..e10b3e814 100644 --- a/primitives/src/channel.rs +++ b/primitives/src/channel.rs @@ -324,7 +324,7 @@ pub mod postgres { ty: &Type, w: &mut BytesMut, ) -> Result> { - let string = format!("0x{}", hex::encode(self)); + let string = self.to_string(); ::to_sql(&string, ty, w) } diff --git a/primitives/src/lib.rs b/primitives/src/lib.rs index 5352067e3..325512438 100644 --- a/primitives/src/lib.rs +++ b/primitives/src/lib.rs @@ -41,6 +41,8 @@ pub mod sentry; pub mod spender; pub mod supermarket; pub mod targeting; +#[cfg(feature = "test-util")] +pub mod test_util; mod unified_num; pub mod validator; diff --git a/primitives/src/sentry.rs b/primitives/src/sentry.rs index b55e795c2..91b54a257 100644 --- a/primitives/src/sentry.rs +++ b/primitives/src/sentry.rs @@ -354,7 +354,7 @@ pub struct LastApprovedQuery { pub with_heartbeat: Option, } -#[derive(Serialize, Deserialize, Debug)] +#[derive(Serialize, Deserialize, Debug, PartialEq, Eq, Clone)] pub struct SuccessResponse { pub success: bool, } diff --git a/primitives/src/test_util.rs b/primitives/src/test_util.rs new file mode 100644 index 000000000..e39de826e --- /dev/null +++ b/primitives/src/test_util.rs @@ -0,0 +1,84 @@ +use once_cell::sync::Lazy; + +use crate::Address; + +/// re-export all other statics before moving all of them to this module +pub use crate::util::tests::prep_db::*; + +pub static LEADER: Lazy
= Lazy::new(|| *ADDRESS_0); +pub static FOLLOWER: Lazy
= Lazy::new(|| *ADDRESS_1); +pub static GUARDIAN: Lazy
= Lazy::new(|| *ADDRESS_2); +pub static CREATOR: Lazy
= Lazy::new(|| *ADDRESS_3); +pub static ADVERTISER: Lazy
= Lazy::new(|| *ADDRESS_4); +pub static PUBLISHER: Lazy
= Lazy::new(|| *ADDRESS_5); +pub static GUARDIAN_2: Lazy
= Lazy::new(|| *ADDRESS_6); + +/// passphrase: ganache0 +pub static ADDRESS_0: Lazy
= Lazy::new(|| { + b"0x80690751969B234697e9059e04ed72195c3507fa" + .try_into() + .unwrap() +}); + +/// passphrase: ganache1 +pub static ADDRESS_1: Lazy
= Lazy::new(|| { + b"0xf3f583AEC5f7C030722Fe992A5688557e1B86ef7" + .try_into() + .unwrap() +}); + +/// passphrase: ganache2 +pub static ADDRESS_2: Lazy
= Lazy::new(|| { + b"0xe061E1EB461EaBE512759aa18A201B20Fe90631D" + .try_into() + .unwrap() +}); + +/// passphrase: ganache3 +pub static ADDRESS_3: Lazy
= Lazy::new(|| { + b"0xaCBaDA2d5830d1875ae3D2de207A1363B316Df2F" + .try_into() + .unwrap() +}); + +/// passphrase: ganache4 +pub static ADDRESS_4: Lazy
= Lazy::new(|| { + b"0xDd589B43793934EF6Ad266067A0d1D4896b0dff0" + .try_into() + .unwrap() +}); + +/// passphrase: ganache5 +pub static ADDRESS_5: Lazy
= Lazy::new(|| { + b"0xE882ebF439207a70dDcCb39E13CA8506c9F45fD9" + .try_into() + .unwrap() +}); + +/// passphrase: ganache6 +pub static ADDRESS_6: Lazy
= Lazy::new(|| { + b"0x79D358a3194d737880B3eFD94ADccD246af9F535" + .try_into() + .unwrap() +}); + +/// passphrase: ganache7 +pub static ADDRESS_7: Lazy
= Lazy::new(|| { + b"0x0e880972A4b216906F05D67EeaaF55d16B5EE4F1" + .try_into() + .unwrap() +}); + +/// passphrase: ganache8 +pub static ADDRESS_8: Lazy
= Lazy::new(|| { + b"0x541b401362Ea1D489D322579552B099e801F3632" + .try_into() + .unwrap() +}); + +/// passphrase: ganache9 +pub static ADDRESS_9: Lazy
= Lazy::new(|| { + b"0x6B83e7D6B72c098d48968441e0d05658dc17Adb9" + .try_into() + .unwrap() +}); diff --git a/primitives/src/validator.rs b/primitives/src/validator.rs index 02cf813d7..8b6adc472 100644 --- a/primitives/src/validator.rs +++ b/primitives/src/validator.rs @@ -1,3 +1,4 @@ +use once_cell::sync::Lazy; use serde::{Deserialize, Serialize}; use std::{borrow::Borrow, fmt, str::FromStr}; @@ -48,6 +49,14 @@ impl From
for ValidatorId { } } +impl From<&Lazy
> for ValidatorId { + fn from(address: &Lazy
) -> Self { + // once for the reference of &Lazy into Lazy + // and once for moving out of Lazy into Address + Self(**address) + } +} + impl From<&[u8; 20]> for ValidatorId { fn from(bytes: &[u8; 20]) -> Self { Self(Address::from(bytes)) @@ -103,7 +112,10 @@ impl TryFrom for ValidatorId { pub struct ValidatorDesc { pub id: ValidatorId, /// The validator fee in pro milles (per 1000) - /// Used to calculate the validator fee on each payout. + /// + /// Each fee is calculated based on the payout for an event. + /// + /// payout * fee / 1000 = event fee payoout pub fee: UnifiedNum, #[serde(default, skip_serializing_if = "Option::is_none")] /// The address which will receive the fees diff --git a/scripts/ethereum/ganache-cli.sh b/scripts/ethereum/ganache-cli.sh index c58a6c867..2544b7a2d 100755 --- a/scripts/ethereum/ganache-cli.sh +++ b/scripts/ethereum/ganache-cli.sh @@ -9,10 +9,48 @@ # Address 3: 0x0E45891a570Af9e5A962F181C219468A6C9EB4e1 keystore password: address3 # Address 4: 0x8c4B95383a46D30F056aCe085D8f453fCF4Ed66d keystore password: address4 # Address 5: 0x1059B025E3F8b8f76A8120D6D6Fd9fBa172c80b8 keystore password: address5 + +# Ganache generated using "deterministic" +# (0) 0x80690751969B234697e9059e04ed72195c3507fa password: ganache0 +# (1) 0xf3f583AEC5f7C030722Fe992A5688557e1B86ef7 password: ganache1 +# (2) 0xe061E1EB461EaBE512759aa18A201B20Fe90631D password: ganache2 +# (3) 0xaCBaDA2d5830d1875ae3D2de207A1363B316Df2F password: ganache3 +# (4) 0xDd589B43793934EF6Ad266067A0d1D4896b0dff0 password: ganache4 +# (5) 0xE882ebF439207a70dDcCb39E13CA8506c9F45fD9 password: ganache5 +# (6) 0x79D358a3194d737880B3eFD94ADccD246af9F535 password: ganache6 +# (7) 0x0e880972A4b216906F05D67EeaaF55d16B5EE4F1 password: ganache7 +# (8) 0x541b401362Ea1D489D322579552B099e801F3632 password: ganache8 +# (9) 0x6B83e7D6B72c098d48968441e0d05658dc17Adb9 password: ganache9 +# +# Ganache private keys: +# (0) 0xf224ebee7563c68de46b3f57db880e7709c102f56ecedeaa4bccd15dea702815 +# (1) 0x8d2fc41b784fd976ae59d88583d1cf9fa04d6b6acdfca9b56966afcc798d0917 +# (2) 0x7a6ceb75f17f55158224e674e57cacef5ea848dcaa95b7fb9b0b35a7f2ccaa51 +# (3) 0x0ad5e02c94ee19601e3c37e4ef54c45dcf43dc7af17ab3322f6d24d3aafbf915 +# (4) 0x079e1ba2e44ce0726eae83118f79f747c6166847c2086c06ffaa95726f916504 +# (5) 0xbdba2c1f0cbcea93abeaf9c1c46b1648f4116506d6a49764be7a2fc0c85473cb +# (6) 0x8139b8650c8845cd2f559fcf3fbc7d52cc8a5f803523128f4a9597da0433c49e +# (7) 0x0d137045e22a98ee462f4d86939dd8ff3c8570e7fb72e4fea5c9e7ef09ab7276 +# (8) 0xd2d8a41c67627e43c0f46c2c73a4631b11e291bb0917da51b231da780d3fd074 +# (9) 0xf1571482718eefe760ad89269202a33409299af1b9057aa40699a11fb358572b +# +# gasLimit = 4503599627370495 (0xfffffffffffff) +# node /app/ganache-core.docker.cli.js --gasLimit 0xfffffffffffff \ --db="./snapshot" \ --deterministic \ --mnemonic="diary west sketch curious expose decade symptom height minor layer carry man" \ + --account="0xf224ebee7563c68de46b3f57db880e7709c102f56ecedeaa4bccd15dea702815,9000000000000000000000000000" \ + --account="0x8d2fc41b784fd976ae59d88583d1cf9fa04d6b6acdfca9b56966afcc798d0917,9000000000000000000000000000" \ + --account="0x7a6ceb75f17f55158224e674e57cacef5ea848dcaa95b7fb9b0b35a7f2ccaa51,9000000000000000000000000000" \ + --account="0x0ad5e02c94ee19601e3c37e4ef54c45dcf43dc7af17ab3322f6d24d3aafbf915,9000000000000000000000000000" \ + --account="0x079e1ba2e44ce0726eae83118f79f747c6166847c2086c06ffaa95726f916504,9000000000000000000000000000" \ + --account="0xbdba2c1f0cbcea93abeaf9c1c46b1648f4116506d6a49764be7a2fc0c85473cb,9000000000000000000000000000" \ + --account="0x8139b8650c8845cd2f559fcf3fbc7d52cc8a5f803523128f4a9597da0433c49e,9000000000000000000000000000" \ + --account="0x0d137045e22a98ee462f4d86939dd8ff3c8570e7fb72e4fea5c9e7ef09ab7276,9000000000000000000000000000" \ + --account="0xd2d8a41c67627e43c0f46c2c73a4631b11e291bb0917da51b231da780d3fd074,9000000000000000000000000000" \ + --account="0xf1571482718eefe760ad89269202a33409299af1b9057aa40699a11fb358572b,9000000000000000000000000000" \ + \ --account="0x2bdd21761a483f71054e14f5b827213567971c676928d9a1808cbfa4b7501200,9000000000000000000000000000" \ --account="0xd66ecc35fe42ae2063888bfd11c4573db08bdbd5c2b9b835deef05beb43b407f,9000000000000000000000000000" \ --account="0x1d00a65debb6143cebc3b48b11db2ddfa81411c1f7c443f706d4f2bd8145ee4a,9000000000000000000000000000" \ diff --git a/scripts/ethereum/snapshot_contracts/!blockHashes!0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 b/scripts/ethereum/snapshot_contracts/!blockHashes!0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 new file mode 100644 index 000000000..bf0d87ab1 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blockHashes!0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 @@ -0,0 +1 @@ +4 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blockHashes!0x975d76545f72a59a7c2ab91fcd593afdd383066576dece74838fd445d1356d3b b/scripts/ethereum/snapshot_contracts/!blockHashes!0x44871371a4347bcab22f55a4bee00d2b4bf73e522f310318b4828edda6761e9a similarity index 100% rename from scripts/ethereum/snapshot_contracts/!blockHashes!0x975d76545f72a59a7c2ab91fcd593afdd383066576dece74838fd445d1356d3b rename to scripts/ethereum/snapshot_contracts/!blockHashes!0x44871371a4347bcab22f55a4bee00d2b4bf73e522f310318b4828edda6761e9a diff --git a/scripts/ethereum/snapshot_contracts/!blockHashes!0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 b/scripts/ethereum/snapshot_contracts/!blockHashes!0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 new file mode 100644 index 000000000..62f945751 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blockHashes!0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 @@ -0,0 +1 @@ +6 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blockHashes!0x5a6ffccd8c7c31e0fd02c1326fd98ba39a44a9da9ec3be501b4d3993221124a6 b/scripts/ethereum/snapshot_contracts/!blockHashes!0x6a2b4a8a622d83801381f1723bf3e83456e57c674c0cc1a8eab8e7e950ce515a similarity index 100% rename from scripts/ethereum/snapshot_contracts/!blockHashes!0x5a6ffccd8c7c31e0fd02c1326fd98ba39a44a9da9ec3be501b4d3993221124a6 rename to scripts/ethereum/snapshot_contracts/!blockHashes!0x6a2b4a8a622d83801381f1723bf3e83456e57c674c0cc1a8eab8e7e950ce515a diff --git a/scripts/ethereum/snapshot_contracts/!blockHashes!0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf b/scripts/ethereum/snapshot_contracts/!blockHashes!0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf new file mode 100644 index 000000000..7813681f5 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blockHashes!0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf @@ -0,0 +1 @@ +5 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blockHashes!0x8a2233376dc443326245f8cd643286ab8566dc66c553b924818366264d9076f7 b/scripts/ethereum/snapshot_contracts/!blockHashes!0xdedec2a7904e3c42143c03f227ae7bd286458e25a02a6fc4292f0491808898ae similarity index 100% rename from scripts/ethereum/snapshot_contracts/!blockHashes!0x8a2233376dc443326245f8cd643286ab8566dc66c553b924818366264d9076f7 rename to scripts/ethereum/snapshot_contracts/!blockHashes!0xdedec2a7904e3c42143c03f227ae7bd286458e25a02a6fc4292f0491808898ae diff --git a/scripts/ethereum/snapshot_contracts/!blockHashes!0xfd125080d3a5ca68d1a8d7db1184894b70f01b9a955a3d5b1b6035fafa07fe19 b/scripts/ethereum/snapshot_contracts/!blockHashes!0xe5a6e3ddb943f599f729e1a1a6b1f9ec38c63d50f0bfee62728a15dc8c87e5a1 similarity index 100% rename from scripts/ethereum/snapshot_contracts/!blockHashes!0xfd125080d3a5ca68d1a8d7db1184894b70f01b9a955a3d5b1b6035fafa07fe19 rename to scripts/ethereum/snapshot_contracts/!blockHashes!0xe5a6e3ddb943f599f729e1a1a6b1f9ec38c63d50f0bfee62728a15dc8c87e5a1 diff --git a/scripts/ethereum/snapshot_contracts/!blockLogs!4 b/scripts/ethereum/snapshot_contracts/!blockLogs!4 new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blockLogs!4 @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blockLogs!5 b/scripts/ethereum/snapshot_contracts/!blockLogs!5 new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blockLogs!5 @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blockLogs!6 b/scripts/ethereum/snapshot_contracts/!blockLogs!6 new file mode 100644 index 000000000..0637a088a --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blockLogs!6 @@ -0,0 +1 @@ +[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blockLogs!length b/scripts/ethereum/snapshot_contracts/!blockLogs!length index bf0d87ab1..c7930257d 100644 --- a/scripts/ethereum/snapshot_contracts/!blockLogs!length +++ b/scripts/ethereum/snapshot_contracts/!blockLogs!length @@ -1 +1 @@ -4 \ No newline at end of file +7 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!0 b/scripts/ethereum/snapshot_contracts/!blocks!0 index 4a975bdc4..822d63084 100644 --- a/scripts/ethereum/snapshot_contracts/!blocks!0 +++ b/scripts/ethereum/snapshot_contracts/!blocks!0 @@ -1 +1 @@ -{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x3b5ef0bb33a6950c7da03b1e272b3a1dbb656d67f1c07390ee335a44be0a02fe","transactionsTrie":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptTrie":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x","gasLimit":"0x0fffffffffffff","gasUsed":"0x","timestamp":"0x6168337d","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[],"uncleHeaders":[]} \ No newline at end of file +{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0xf17d0f681aab819c929b08f47cf3994440fdcdcbf18916e78faaf0119fe98db4","transactionsTrie":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptTrie":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x","gasLimit":"0x0fffffffffffff","gasUsed":"0x","timestamp":"0x619762e5","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!1 b/scripts/ethereum/snapshot_contracts/!blocks!1 index d23a50a99..724f63b22 100644 --- a/scripts/ethereum/snapshot_contracts/!blocks!1 +++ b/scripts/ethereum/snapshot_contracts/!blocks!1 @@ -1 +1 @@ -{"header":{"parentHash":"0xfd125080d3a5ca68d1a8d7db1184894b70f01b9a955a3d5b1b6035fafa07fe19","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0xafdfb0b9b4b28607606c22a11b23dd9164696b5a29d09d2237b4a434713db92d","transactionsTrie":"0x72872dd3f1601bbf2e421695b1ccf34c790d8dbeac345cb688bd725fecc2a7b4","receiptTrie":"0x41d3cb5fd6e113debbe92b0ba67ff8c62ae8ad5b7bed3b87cf7f61a4fbe49694","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x01","gasLimit":"0x0fffffffffffff","gasUsed":"0x09b2b3","timestamp":"0x61683387","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee","nonce":"0x0","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x26","r":"0xb1b8a8d5e59d3cfbf21090dc2796ecc5a64498e6f16f41c6431cd3db272f1456","s":"0x3456e3eff3343fb99834fefc9c4d918e8b429cfd4a512cfc9e04edb4b92ff372","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1634218876956}}],"uncleHeaders":[]} \ No newline at end of file +{"header":{"parentHash":"0xe5a6e3ddb943f599f729e1a1a6b1f9ec38c63d50f0bfee62728a15dc8c87e5a1","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x457a58fb01052e3e436ad2059bbd05add3227aa2c7cb606aaa1d03ada9612bdd","transactionsTrie":"0xbec6ceda8b4a79286b3d01403773bc299f164130fac2be1e327a3924efc3dc3c","receiptTrie":"0x41d3cb5fd6e113debbe92b0ba67ff8c62ae8ad5b7bed3b87cf7f61a4fbe49694","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x01","gasLimit":"0x0fffffffffffff","gasUsed":"0x09b2b3","timestamp":"0x6197639f","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01","nonce":"0x0","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x26","r":"0x6d201bb974edf173455218bcc66c3ca5141261f0d52f27f2ea13e3c1da38af51","s":"0xb35ccd6f039a37f9f7bf3c8e27773f93c5f8948ca76590d55abd9fc63b142db","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637311205460}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!2 b/scripts/ethereum/snapshot_contracts/!blocks!2 index 90c2f99e1..284e0aabe 100644 --- a/scripts/ethereum/snapshot_contracts/!blocks!2 +++ b/scripts/ethereum/snapshot_contracts/!blocks!2 @@ -1 +1 @@ -{"header":{"parentHash":"0x975d76545f72a59a7c2ab91fcd593afdd383066576dece74838fd445d1356d3b","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x6c87d8647ca3a248185a1c8474cf3f088c6d4ae06ffa9994aca569f959f79263","transactionsTrie":"0x6064b6aeb2f2d908b682aba6219a6efbef05c989af8dd6afdf1fe24ae875f450","receiptTrie":"0xcc59375bb9d531bce9864a33598e9fca6f2f4f1ee324b703dc1b34d20d823cb2","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x02","gasLimit":"0x0fffffffffffff","gasUsed":"0x06ba37","timestamp":"0x61683387","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc","nonce":"0x1","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610704806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e36600461016a565b610045565b005b60005b81518110156100cc576000801b848484848151811061007757634e487b7160e01b600052603260045260246000fd5b602002602001015160405161008b906100d2565b6100979392919061022c565b8190604051809103906000f59050801580156100b7573d6000803e3d6000fd5b505080806100c4906102b8565b915050610048565b50505050565b6103c18061030e83390190565b600082601f8301126100ef578081fd5b8135602067ffffffffffffffff82111561010b5761010b6102df565b808202610119828201610287565b838152828101908684018388018501891015610133578687fd5b8693505b8584101561015e57803561014a816102f5565b835260019390930192918401918401610137565b50979650505050505050565b600080600083850360e081121561017f578384fd5b843561018a816102f5565b935060a0601f198201121561019d578283fd5b506101a860a0610287565b60208501356101b6816102f5565b815260408501356101c6816102f5565b602082015260608501356101d9816102f5565b604082015260808501356101ec816102f5565b606082015260a08501356080820152915060c084013567ffffffffffffffff811115610216578182fd5b610222868287016100df565b9150509250925092565b6001600160a01b039384168152825184166020808301919091528301518416604080830191909152830151841660608083019190915283015184166080808301919091529092015160a083015290911660c082015260e00190565b604051601f8201601f1916810167ffffffffffffffff811182821017156102b0576102b06102df565b604052919050565b60006000198214156102d857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461030a57600080fd5b5056fe608060405234801561001057600080fd5b506040516103c13803806103c183398101604081905261002f9161020e565b60608201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906100629030906004016102ed565b60206040518083038186803b15801561007a57600080fd5b505afa15801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906102d5565b90506100cd8360600151858361013260201b6100091760201c565b60405163db6198a360e01b81526001600160a01b0385169063db6198a3906100fd90869086908690600401610351565b600060405180830381600087803b15801561011757600080fd5b505af115801561012b573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906101609085908590600401610301565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506101a06101ca60201b60201c565b6101c55760405162461bcd60e51b81526004016101bc9061031a565b60405180910390fd5b505050565b6000803d80156101e157602081146101ea576101f6565b600191506101f6565b60206000803e60005191505b501515905090565b8051610209816103a8565b919050565b600080600083850360e0811215610223578384fd5b845161022e816103a8565b935060a0601f1982011215610241578283fd5b5060405160a081016001600160401b038111828210171561027057634e487b7160e01b84526041600452602484fd5b60405261027f602086016101fe565b815261028d604086016101fe565b602082015261029e606086016101fe565b60408201526102af608086016101fe565b606082015260a0850151608082015291506102cc60c085016101fe565b90509250925092565b6000602082840312156102e6578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527f5361666545524332303a20617070726f7665206661696c656400000000000000604082015260600190565b83516001600160a01b039081168252602080860151821690830152604080860151821690830152606080860151821690830152608094850151948201949094529190921660a082015260c081019190915260e00190565b6001600160a01b03811681146103bd57600080fd5b5056fea264697066735822122067959ee3a7560f3cf459a35bee2ec1208611ed45f243b2aadcc5859421f23dc464736f6c63430008010033","v":"0x26","r":"0x58f655a3ffc625e74df6ab30435ec6cc585e70a351e45238035e54f2ad01dadb","s":"0x201549f9aa7481899b021b9ddf20af8c12d4be11f1fcfd73277daf5b5a485918","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1634218876956}}],"uncleHeaders":[]} \ No newline at end of file +{"header":{"parentHash":"0x44871371a4347bcab22f55a4bee00d2b4bf73e522f310318b4828edda6761e9a","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e","transactionsTrie":"0x993dc847a32f9e388b73f09ee80cbfc432254b8b08d4de202d0477e7f672be38","receiptTrie":"0xcc59375bb9d531bce9864a33598e9fca6f2f4f1ee324b703dc1b34d20d823cb2","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x02","gasLimit":"0x0fffffffffffff","gasUsed":"0x06ba37","timestamp":"0x6197639f","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57","nonce":"0x1","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610704806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e36600461016a565b610045565b005b60005b81518110156100cc576000801b848484848151811061007757634e487b7160e01b600052603260045260246000fd5b602002602001015160405161008b906100d2565b6100979392919061022c565b8190604051809103906000f59050801580156100b7573d6000803e3d6000fd5b505080806100c4906102b8565b915050610048565b50505050565b6103c18061030e83390190565b600082601f8301126100ef578081fd5b8135602067ffffffffffffffff82111561010b5761010b6102df565b808202610119828201610287565b838152828101908684018388018501891015610133578687fd5b8693505b8584101561015e57803561014a816102f5565b835260019390930192918401918401610137565b50979650505050505050565b600080600083850360e081121561017f578384fd5b843561018a816102f5565b935060a0601f198201121561019d578283fd5b506101a860a0610287565b60208501356101b6816102f5565b815260408501356101c6816102f5565b602082015260608501356101d9816102f5565b604082015260808501356101ec816102f5565b606082015260a08501356080820152915060c084013567ffffffffffffffff811115610216578182fd5b610222868287016100df565b9150509250925092565b6001600160a01b039384168152825184166020808301919091528301518416604080830191909152830151841660608083019190915283015184166080808301919091529092015160a083015290911660c082015260e00190565b604051601f8201601f1916810167ffffffffffffffff811182821017156102b0576102b06102df565b604052919050565b60006000198214156102d857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461030a57600080fd5b5056fe608060405234801561001057600080fd5b506040516103c13803806103c183398101604081905261002f9161020e565b60608201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906100629030906004016102ed565b60206040518083038186803b15801561007a57600080fd5b505afa15801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906102d5565b90506100cd8360600151858361013260201b6100091760201c565b60405163db6198a360e01b81526001600160a01b0385169063db6198a3906100fd90869086908690600401610351565b600060405180830381600087803b15801561011757600080fd5b505af115801561012b573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906101609085908590600401610301565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506101a06101ca60201b60201c565b6101c55760405162461bcd60e51b81526004016101bc9061031a565b60405180910390fd5b505050565b6000803d80156101e157602081146101ea576101f6565b600191506101f6565b60206000803e60005191505b501515905090565b8051610209816103a8565b919050565b600080600083850360e0811215610223578384fd5b845161022e816103a8565b935060a0601f1982011215610241578283fd5b5060405160a081016001600160401b038111828210171561027057634e487b7160e01b84526041600452602484fd5b60405261027f602086016101fe565b815261028d604086016101fe565b602082015261029e606086016101fe565b60408201526102af608086016101fe565b606082015260a0850151608082015291506102cc60c085016101fe565b90509250925092565b6000602082840312156102e6578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527f5361666545524332303a20617070726f7665206661696c656400000000000000604082015260600190565b83516001600160a01b039081168252602080860151821690830152604080860151821690830152606080860151821690830152608094850151948201949094529190921660a082015260c081019190915260e00190565b6001600160a01b03811681146103bd57600080fd5b5056fea264697066735822122067959ee3a7560f3cf459a35bee2ec1208611ed45f243b2aadcc5859421f23dc464736f6c63430008010033","v":"0x26","r":"0xc7bf1941f721855c8045736888a00755d2881353c10ad8f853f412d1096d842a","s":"0x420f9ef86fda019c716c4c95a8b38222f71bc83ebaf6847466091e6817fa370e","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637311205460}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!3 b/scripts/ethereum/snapshot_contracts/!blocks!3 index 14b903b5f..6795ac4ac 100644 --- a/scripts/ethereum/snapshot_contracts/!blocks!3 +++ b/scripts/ethereum/snapshot_contracts/!blocks!3 @@ -1 +1 @@ -{"header":{"parentHash":"0x5a6ffccd8c7c31e0fd02c1326fd98ba39a44a9da9ec3be501b4d3993221124a6","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x57a37bd09e335c01506a841a17b6bb1e66fe518f74ab00099c126a7a0c26deaa","transactionsTrie":"0xdf1705d5638007d7549c0500521d171109b9432c2884692ed52737030f7ae6fe","receiptTrie":"0xe5d401f39de36b821d5d9c1aa871ccfaee84b26adf5528a2b0daf47c18d0fd12","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x03","gasLimit":"0x0fffffffffffff","gasUsed":"0x14a208","timestamp":"0x61683387","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d","nonce":"0x2","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50611780806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610138578063b716d6fa1461014b578063bc1ed74c1461015e578063c1e69b6614610171578063db6198a314610184578063f8d682ea14610197576100b4565b8063056036d4146100b957806331c31bba146100d757806343f183e9146100ec5780634f1c2c31146100ff578063553721c5146101125780638126e4d214610125575b600080fd5b6100c16101aa565b6040516100ce919061132c565b60405180910390f35b6100ea6100e536600461100b565b6101b1565b005b6100ea6100fa366004611130565b6102f2565b6100c161010d3660046110ae565b61047c565b6100c16101203660046110ae565b610499565b6100ea610133366004611177565b6104b6565b6100ea6101463660046110d9565b6104dc565b6100c1610159366004611096565b61060d565b6100c161016c366004611096565b61061f565b6100c161017f366004611096565b610631565b6100ea6101923660046110f4565b610643565b6100ea6101a53660046110d9565b610772565b6203f48081565b806101d75760405162461bcd60e51b81526004016101ce9061159c565b60405180910390fd5b600080838360008181106101fb57634e487b7160e01b600052603260045260246000fd5b905060200281019061020d91906116ca565b61021e906080810190606001610fea565b905060005b838110156102ca573685858381811061024c57634e487b7160e01b600052603260045260246000fd5b905060200281019061025e91906116ca565b90506001600160a01b03831661027a6080830160608401610fea565b6001600160a01b0316146102a05760405162461bcd60e51b81526004016101ce906115c4565b6102aa88826108be565b6102b490856116ea565b93505080806102c290611719565b915050610223565b506001600160a01b03861633146102df578594505b6102ea818684610b8b565b505050505050565b6000836040516020016103059190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061033d57506000198114155b6103595760405162461bcd60e51b81526004016101ce90611404565b6000828260405160200161036e92919061127e565b60408051601f19818403018152919052805160209182012091506103c590829061039a90890189610fea565b6040805160608181019092529089906003908390839080828437600092019190915250610c14915050565b6103e15760405162461bcd60e51b81526004016101ce9061145a565b610420816103f56040890160208a01610fea565b6040805160608181019092529088906003908390839080828437600092019190915250610c14915050565b61043c5760405162461bcd60e51b81526004016101ce906113b2565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b600360209081526000928352604080842090915290825290205481565b600260209081526000928352604080842090915290825290205481565b6104d96104c96080830160608401610fea565b336104d433856108be565b610b8b565b50565b60006104ee6060830160408401610fea565b9050336001600160a01b038216146105185760405162461bcd60e51b81526004016101ce90611434565b60008260405160200161052b9190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061056357506000198114155b61057f5760405162461bcd60e51b81526004016101ce90611404565b80421161059e5760405162461bcd60e51b81526004016101ce90611511565b60008281526001602090815260408083208054908490559183905290912060001990556105db6105d46080870160608801610fea565b8583610b8b565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60046020526000908152604090205481565b60016020526000908152604090205481565b60006020819052908152604090205481565b6000836040516020016106569190611619565b6040516020818303038152906040528051906020012090506000821161068e5760405162461bcd60e51b81526004016101ce906113e0565b60008181526020819052604090205460001914156106be5760405162461bcd60e51b81526004016101ce9061138a565b600081815260016020526040812080548492906106dc9084906116ea565b909155505060008181526003602090815260408083206001600160a01b0387168452909152812080548492906107139084906116ea565b90915550610734905061072c6080860160608701610fea565b333085610c3c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e491317783604051610764919061132c565b60405180910390a250505050565b61077f6020820182610fea565b6001600160a01b0316336001600160a01b031614806107be57506107a96040820160208301610fea565b6001600160a01b0316336001600160a01b0316145b806107e957506107d46060820160408301610fea565b6001600160a01b0316336001600160a01b0316145b6108055760405162461bcd60e51b81526004016101ce906115f1565b6000816040516020016108189190611619565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561085c5760405162461bcd60e51b81526004016101ce90611565565b600061086b6203f480426116ea565b600083815260208190526040908190208290555190915082907fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e906108b190849061132c565b60405180910390a2505050565b600080826000016040516020016108d59190611619565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060001981141561091e5760405162461bcd60e51b81526004016101ce9061138a565b801561093a57600082815260046020526040902060c085013590555b600030838660c00135604051602001610955939291906112f2565b60408051601f19818403018152919052805160209182012091506109af90829061098190880188610fea565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610c14915050565b6109cb5760405162461bcd60e51b81526004016101ce90611486565b610a0e816109df6040880160208901610fea565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610c14915050565b610a2a5760405162461bcd60e51b81526004016101ce9061153f565b6000868660a00135604051602001610a43929190611313565b60408051601f1981840301815291905280516020909101209050610aaa81610a6f6101a089018961167c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610cc8565b610ac65760405162461bcd60e51b81526004016101ce906114aa565b60008481526002602090815260408083206001600160a01b038b168452909152812054610af79060a0890135611702565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610b3f908490611702565b92505081905550847fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec382604051610b76919061132c565b60405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610bb99085908590600401611313565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b50505050610bf3610dd0565b610c0f5760405162461bcd60e51b81526004016101ce906114da565b505050565b6000826001600160a01b0316610c2a8584610e04565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610c6c908690869086906004016112ce565b600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050610ca6610dd0565b610cc25760405162461bcd60e51b81526004016101ce90611353565b50505050565b81516000908490825b81811015610dc457858181518110610cf957634e487b7160e01b600052603260045260246000fd5b6020026020010151831015610d5f5782868281518110610d2957634e487b7160e01b600052603260045260246000fd5b6020026020010151604051602001610d429291906111b0565b604051602081830303815290604052805190602001209250610db2565b858181518110610d7f57634e487b7160e01b600052603260045260246000fd5b602002602001015183604051602001610d999291906111b0565b6040516020818303038152906040528051906020012092505b80610dbc81611719565b915050610cd1565b50509091149392505050565b6000803d8015610de75760208114610df057610dfc565b60019150610dfc565b60206000803e60005191505b501515905090565b80516000908190811a6004811115610e2c57634e487b7160e01b600052602160045260246000fd5b90506000816004811115610e5057634e487b7160e01b600052602160045260246000fd5b1415610e60576000915050610b85565b825160011a6002826004811115610e8757634e487b7160e01b600052602160045260246000fd5b1415610ebb5784604051602001610e9e91906111be565b604051602081830303815290604052805190602001209450610f46565b6003826004811115610edd57634e487b7160e01b600052602160045260246000fd5b1415610ef45784604051602001610e9e919061129d565b6004826004811115610f1657634e487b7160e01b600052602160045260246000fd5b1415610f465784604051602001610f2d91906111ef565b6040516020818303038152906040528051906020012094505b60208085015160408087015181516000815290930190819052600192610f70928992869290611335565b6020604051602081039080840390855afa158015610f92573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b0381168114610fbd57600080fd5b919050565b8060608101831015610b8557600080fd5b600060a08284031215610fe4578081fd5b50919050565b600060208284031215610ffb578081fd5b61100482610fa6565b9392505050565b60008060008060608587031215611020578283fd5b61102985610fa6565b935061103760208601610fa6565b9250604085013567ffffffffffffffff80821115611053578384fd5b818701915087601f830112611066578384fd5b813581811115611074578485fd5b8860208083028501011115611087578485fd5b95989497505060200194505050565b6000602082840312156110a7578081fd5b5035919050565b600080604083850312156110c0578182fd5b823591506110d060208401610fa6565b90509250929050565b600060a082840312156110ea578081fd5b6110048383610fd3565b600080600060e08486031215611108578283fd5b6111128585610fd3565b925061112060a08501610fa6565b915060c084013590509250925092565b60008060006101608486031215611145578283fd5b61114f8585610fd3565b925061115e8560a08601610fc2565b915061116e856101008601610fc2565b90509250925092565b600060208284031215611188578081fd5b813567ffffffffffffffff81111561119e578182fd5b82016101c08185031215611004578182fd5b918252602082015260400190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a31303842792081527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f7760208201527f6c65646765207369676e696e6720616e204164457820626964207769746820746040820152683432903430b9b41d0560b91b6060820152606981019190915260890190565b65726573756d6560d01b81526006810192909252602682015260460190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6020808252601e908201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604082015260600190565b6020808252600e908201526d10d2105393915317d0d313d4d15160921b604082015260600190565b602080825260149082015273494e56414c49445f464f4c4c4f5745525f53494760601b604082015260600190565b6020808252600a90820152691393d7d1115413d4d25560b21b604082015260600190565b60208082526016908201527510d2105393915317d393d517d0d2105313115391d15160521b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b602080825260129082015271494e56414c49445f4c45414445525f53494760701b604082015260600190565b6020808252600a90820152694c45414445525f53494760b01b604082015260600190565b602080825260169082015275109053105390d1549311505197d393d517d193d5539160521b604082015260600190565b6020808252601a908201527f5361666545524332303a207472616e73666572206661696c6564000000000000604082015260600190565b6020808252601490820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b604082015260600190565b6020808252600c908201526b464f4c4c4f5745525f53494760a01b604082015260600190565b6020808252601a908201527f4348414e4e454c5f414c52454144595f4348414c4c454e474544000000000000604082015260600190565b6020808252600e908201526d4e4f5f5749544844524157414c5360901b604082015260600190565b60208082526013908201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b604082015260600190565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b60a081016001600160a01b038061162f85610fa6565b1683528061163f60208601610fa6565b1660208401528061165260408601610fa6565b1660408401528061166560608601610fa6565b166060840152506080830135608083015292915050565b6000808335601e19843603018112611692578283fd5b83018035915067ffffffffffffffff8211156116ac578283fd5b60209081019250810236038213156116c357600080fd5b9250929050565b600082356101be198336030181126116e0578182fd5b9190910192915050565b600082198211156116fd576116fd611734565b500190565b60008282101561171457611714611734565b500390565b600060001982141561172d5761172d611734565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209345b73ef3a2e6ea9d940f678a021700734cdb1466a2646358a265e947e7411264736f6c63430008010033","v":"0x26","r":"0xbf114b405c39ba601c868327c5992a7fea54fd38f6db45f1489f8d01a1b7efa7","s":"0x65194e9c696ca50bbff67c9bfbd94060870f0a2135850ff62c2190782ffe5151","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1634218876956}}],"uncleHeaders":[]} \ No newline at end of file +{"header":{"parentHash":"0x6a2b4a8a622d83801381f1723bf3e83456e57c674c0cc1a8eab8e7e950ce515a","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1","transactionsTrie":"0xa2f6a82f12abbc5099e789796446702c9d67ea068851e2f8712293f41698df66","receiptTrie":"0xe5d401f39de36b821d5d9c1aa871ccfaee84b26adf5528a2b0daf47c18d0fd12","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x03","gasLimit":"0x0fffffffffffff","gasUsed":"0x14a208","timestamp":"0x6197639f","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba","nonce":"0x2","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50611780806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610138578063b716d6fa1461014b578063bc1ed74c1461015e578063c1e69b6614610171578063db6198a314610184578063f8d682ea14610197576100b4565b8063056036d4146100b957806331c31bba146100d757806343f183e9146100ec5780634f1c2c31146100ff578063553721c5146101125780638126e4d214610125575b600080fd5b6100c16101aa565b6040516100ce919061132c565b60405180910390f35b6100ea6100e536600461100b565b6101b1565b005b6100ea6100fa366004611130565b6102f2565b6100c161010d3660046110ae565b61047c565b6100c16101203660046110ae565b610499565b6100ea610133366004611177565b6104b6565b6100ea6101463660046110d9565b6104dc565b6100c1610159366004611096565b61060d565b6100c161016c366004611096565b61061f565b6100c161017f366004611096565b610631565b6100ea6101923660046110f4565b610643565b6100ea6101a53660046110d9565b610772565b6203f48081565b806101d75760405162461bcd60e51b81526004016101ce9061159c565b60405180910390fd5b600080838360008181106101fb57634e487b7160e01b600052603260045260246000fd5b905060200281019061020d91906116ca565b61021e906080810190606001610fea565b905060005b838110156102ca573685858381811061024c57634e487b7160e01b600052603260045260246000fd5b905060200281019061025e91906116ca565b90506001600160a01b03831661027a6080830160608401610fea565b6001600160a01b0316146102a05760405162461bcd60e51b81526004016101ce906115c4565b6102aa88826108be565b6102b490856116ea565b93505080806102c290611719565b915050610223565b506001600160a01b03861633146102df578594505b6102ea818684610b8b565b505050505050565b6000836040516020016103059190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061033d57506000198114155b6103595760405162461bcd60e51b81526004016101ce90611404565b6000828260405160200161036e92919061127e565b60408051601f19818403018152919052805160209182012091506103c590829061039a90890189610fea565b6040805160608181019092529089906003908390839080828437600092019190915250610c14915050565b6103e15760405162461bcd60e51b81526004016101ce9061145a565b610420816103f56040890160208a01610fea565b6040805160608181019092529088906003908390839080828437600092019190915250610c14915050565b61043c5760405162461bcd60e51b81526004016101ce906113b2565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b600360209081526000928352604080842090915290825290205481565b600260209081526000928352604080842090915290825290205481565b6104d96104c96080830160608401610fea565b336104d433856108be565b610b8b565b50565b60006104ee6060830160408401610fea565b9050336001600160a01b038216146105185760405162461bcd60e51b81526004016101ce90611434565b60008260405160200161052b9190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061056357506000198114155b61057f5760405162461bcd60e51b81526004016101ce90611404565b80421161059e5760405162461bcd60e51b81526004016101ce90611511565b60008281526001602090815260408083208054908490559183905290912060001990556105db6105d46080870160608801610fea565b8583610b8b565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60046020526000908152604090205481565b60016020526000908152604090205481565b60006020819052908152604090205481565b6000836040516020016106569190611619565b6040516020818303038152906040528051906020012090506000821161068e5760405162461bcd60e51b81526004016101ce906113e0565b60008181526020819052604090205460001914156106be5760405162461bcd60e51b81526004016101ce9061138a565b600081815260016020526040812080548492906106dc9084906116ea565b909155505060008181526003602090815260408083206001600160a01b0387168452909152812080548492906107139084906116ea565b90915550610734905061072c6080860160608701610fea565b333085610c3c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e491317783604051610764919061132c565b60405180910390a250505050565b61077f6020820182610fea565b6001600160a01b0316336001600160a01b031614806107be57506107a96040820160208301610fea565b6001600160a01b0316336001600160a01b0316145b806107e957506107d46060820160408301610fea565b6001600160a01b0316336001600160a01b0316145b6108055760405162461bcd60e51b81526004016101ce906115f1565b6000816040516020016108189190611619565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561085c5760405162461bcd60e51b81526004016101ce90611565565b600061086b6203f480426116ea565b600083815260208190526040908190208290555190915082907fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e906108b190849061132c565b60405180910390a2505050565b600080826000016040516020016108d59190611619565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060001981141561091e5760405162461bcd60e51b81526004016101ce9061138a565b801561093a57600082815260046020526040902060c085013590555b600030838660c00135604051602001610955939291906112f2565b60408051601f19818403018152919052805160209182012091506109af90829061098190880188610fea565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610c14915050565b6109cb5760405162461bcd60e51b81526004016101ce90611486565b610a0e816109df6040880160208901610fea565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610c14915050565b610a2a5760405162461bcd60e51b81526004016101ce9061153f565b6000868660a00135604051602001610a43929190611313565b60408051601f1981840301815291905280516020909101209050610aaa81610a6f6101a089018961167c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610cc8565b610ac65760405162461bcd60e51b81526004016101ce906114aa565b60008481526002602090815260408083206001600160a01b038b168452909152812054610af79060a0890135611702565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610b3f908490611702565b92505081905550847fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec382604051610b76919061132c565b60405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610bb99085908590600401611313565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b50505050610bf3610dd0565b610c0f5760405162461bcd60e51b81526004016101ce906114da565b505050565b6000826001600160a01b0316610c2a8584610e04565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610c6c908690869086906004016112ce565b600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050610ca6610dd0565b610cc25760405162461bcd60e51b81526004016101ce90611353565b50505050565b81516000908490825b81811015610dc457858181518110610cf957634e487b7160e01b600052603260045260246000fd5b6020026020010151831015610d5f5782868281518110610d2957634e487b7160e01b600052603260045260246000fd5b6020026020010151604051602001610d429291906111b0565b604051602081830303815290604052805190602001209250610db2565b858181518110610d7f57634e487b7160e01b600052603260045260246000fd5b602002602001015183604051602001610d999291906111b0565b6040516020818303038152906040528051906020012092505b80610dbc81611719565b915050610cd1565b50509091149392505050565b6000803d8015610de75760208114610df057610dfc565b60019150610dfc565b60206000803e60005191505b501515905090565b80516000908190811a6004811115610e2c57634e487b7160e01b600052602160045260246000fd5b90506000816004811115610e5057634e487b7160e01b600052602160045260246000fd5b1415610e60576000915050610b85565b825160011a6002826004811115610e8757634e487b7160e01b600052602160045260246000fd5b1415610ebb5784604051602001610e9e91906111be565b604051602081830303815290604052805190602001209450610f46565b6003826004811115610edd57634e487b7160e01b600052602160045260246000fd5b1415610ef45784604051602001610e9e919061129d565b6004826004811115610f1657634e487b7160e01b600052602160045260246000fd5b1415610f465784604051602001610f2d91906111ef565b6040516020818303038152906040528051906020012094505b60208085015160408087015181516000815290930190819052600192610f70928992869290611335565b6020604051602081039080840390855afa158015610f92573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b0381168114610fbd57600080fd5b919050565b8060608101831015610b8557600080fd5b600060a08284031215610fe4578081fd5b50919050565b600060208284031215610ffb578081fd5b61100482610fa6565b9392505050565b60008060008060608587031215611020578283fd5b61102985610fa6565b935061103760208601610fa6565b9250604085013567ffffffffffffffff80821115611053578384fd5b818701915087601f830112611066578384fd5b813581811115611074578485fd5b8860208083028501011115611087578485fd5b95989497505060200194505050565b6000602082840312156110a7578081fd5b5035919050565b600080604083850312156110c0578182fd5b823591506110d060208401610fa6565b90509250929050565b600060a082840312156110ea578081fd5b6110048383610fd3565b600080600060e08486031215611108578283fd5b6111128585610fd3565b925061112060a08501610fa6565b915060c084013590509250925092565b60008060006101608486031215611145578283fd5b61114f8585610fd3565b925061115e8560a08601610fc2565b915061116e856101008601610fc2565b90509250925092565b600060208284031215611188578081fd5b813567ffffffffffffffff81111561119e578182fd5b82016101c08185031215611004578182fd5b918252602082015260400190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a31303842792081527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f7760208201527f6c65646765207369676e696e6720616e204164457820626964207769746820746040820152683432903430b9b41d0560b91b6060820152606981019190915260890190565b65726573756d6560d01b81526006810192909252602682015260460190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6020808252601e908201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604082015260600190565b6020808252600e908201526d10d2105393915317d0d313d4d15160921b604082015260600190565b602080825260149082015273494e56414c49445f464f4c4c4f5745525f53494760601b604082015260600190565b6020808252600a90820152691393d7d1115413d4d25560b21b604082015260600190565b60208082526016908201527510d2105393915317d393d517d0d2105313115391d15160521b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b602080825260129082015271494e56414c49445f4c45414445525f53494760701b604082015260600190565b6020808252600a90820152694c45414445525f53494760b01b604082015260600190565b602080825260169082015275109053105390d1549311505197d393d517d193d5539160521b604082015260600190565b6020808252601a908201527f5361666545524332303a207472616e73666572206661696c6564000000000000604082015260600190565b6020808252601490820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b604082015260600190565b6020808252600c908201526b464f4c4c4f5745525f53494760a01b604082015260600190565b6020808252601a908201527f4348414e4e454c5f414c52454144595f4348414c4c454e474544000000000000604082015260600190565b6020808252600e908201526d4e4f5f5749544844524157414c5360901b604082015260600190565b60208082526013908201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b604082015260600190565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b60a081016001600160a01b038061162f85610fa6565b1683528061163f60208601610fa6565b1660208401528061165260408601610fa6565b1660408401528061166560608601610fa6565b166060840152506080830135608083015292915050565b6000808335601e19843603018112611692578283fd5b83018035915067ffffffffffffffff8211156116ac578283fd5b60209081019250810236038213156116c357600080fd5b9250929050565b600082356101be198336030181126116e0578182fd5b9190910192915050565b600082198211156116fd576116fd611734565b500190565b60008282101561171457611714611734565b500390565b600060001982141561172d5761172d611734565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209345b73ef3a2e6ea9d940f678a021700734cdb1466a2646358a265e947e7411264736f6c63430008010033","v":"0x26","r":"0x179a80468d5f8992138f0c75a9fad9fbd52acaa889f2bc94ceaeedc1b7ba4c9","s":"0x661029205f5ee5cd4c1c460761138231767623b1f15e53ae2751adf9b6eecec8","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637311205460}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!4 b/scripts/ethereum/snapshot_contracts/!blocks!4 new file mode 100644 index 000000000..615ea97fe --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blocks!4 @@ -0,0 +1 @@ +{"header":{"parentHash":"0xdedec2a7904e3c42143c03f227ae7bd286458e25a02a6fc4292f0491808898ae","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207","transactionsTrie":"0x801a0d75eaf91c5ae5175550cedf3d42b9e41bf6958377e129ebcb0e291e8b75","receiptTrie":"0x41d3cb5fd6e113debbe92b0ba67ff8c62ae8ad5b7bed3b87cf7f61a4fbe49694","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x04","gasLimit":"0x0fffffffffffff","gasUsed":"0x09b2b3","timestamp":"0x6197692d","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480","nonce":"0x3","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x25","r":"0xb1b0899de6098d24cf80b72d7b2cb2bd61c6b94dbe4cc16232f19cb38c8b770c","s":"0x6b1a457b39f6169af85c8334fe814d512a76adfb62aab39d9a2d64b61a5f03c","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637312624356}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!5 b/scripts/ethereum/snapshot_contracts/!blocks!5 new file mode 100644 index 000000000..36934bb2e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blocks!5 @@ -0,0 +1 @@ +{"header":{"parentHash":"0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545","transactionsTrie":"0xbefbf813f175b1be055260a7ef9a9342149d9126b4f2d548e0f96cf6885b7bf3","receiptTrie":"0xcc59375bb9d531bce9864a33598e9fca6f2f4f1ee324b703dc1b34d20d823cb2","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x05","gasLimit":"0x0fffffffffffff","gasUsed":"0x06ba37","timestamp":"0x6197692d","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6","nonce":"0x4","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610704806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e36600461016a565b610045565b005b60005b81518110156100cc576000801b848484848151811061007757634e487b7160e01b600052603260045260246000fd5b602002602001015160405161008b906100d2565b6100979392919061022c565b8190604051809103906000f59050801580156100b7573d6000803e3d6000fd5b505080806100c4906102b8565b915050610048565b50505050565b6103c18061030e83390190565b600082601f8301126100ef578081fd5b8135602067ffffffffffffffff82111561010b5761010b6102df565b808202610119828201610287565b838152828101908684018388018501891015610133578687fd5b8693505b8584101561015e57803561014a816102f5565b835260019390930192918401918401610137565b50979650505050505050565b600080600083850360e081121561017f578384fd5b843561018a816102f5565b935060a0601f198201121561019d578283fd5b506101a860a0610287565b60208501356101b6816102f5565b815260408501356101c6816102f5565b602082015260608501356101d9816102f5565b604082015260808501356101ec816102f5565b606082015260a08501356080820152915060c084013567ffffffffffffffff811115610216578182fd5b610222868287016100df565b9150509250925092565b6001600160a01b039384168152825184166020808301919091528301518416604080830191909152830151841660608083019190915283015184166080808301919091529092015160a083015290911660c082015260e00190565b604051601f8201601f1916810167ffffffffffffffff811182821017156102b0576102b06102df565b604052919050565b60006000198214156102d857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461030a57600080fd5b5056fe608060405234801561001057600080fd5b506040516103c13803806103c183398101604081905261002f9161020e565b60608201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906100629030906004016102ed565b60206040518083038186803b15801561007a57600080fd5b505afa15801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906102d5565b90506100cd8360600151858361013260201b6100091760201c565b60405163db6198a360e01b81526001600160a01b0385169063db6198a3906100fd90869086908690600401610351565b600060405180830381600087803b15801561011757600080fd5b505af115801561012b573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906101609085908590600401610301565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506101a06101ca60201b60201c565b6101c55760405162461bcd60e51b81526004016101bc9061031a565b60405180910390fd5b505050565b6000803d80156101e157602081146101ea576101f6565b600191506101f6565b60206000803e60005191505b501515905090565b8051610209816103a8565b919050565b600080600083850360e0811215610223578384fd5b845161022e816103a8565b935060a0601f1982011215610241578283fd5b5060405160a081016001600160401b038111828210171561027057634e487b7160e01b84526041600452602484fd5b60405261027f602086016101fe565b815261028d604086016101fe565b602082015261029e606086016101fe565b60408201526102af608086016101fe565b606082015260a0850151608082015291506102cc60c085016101fe565b90509250925092565b6000602082840312156102e6578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527f5361666545524332303a20617070726f7665206661696c656400000000000000604082015260600190565b83516001600160a01b039081168252602080860151821690830152604080860151821690830152606080860151821690830152608094850151948201949094529190921660a082015260c081019190915260e00190565b6001600160a01b03811681146103bd57600080fd5b5056fea264697066735822122067959ee3a7560f3cf459a35bee2ec1208611ed45f243b2aadcc5859421f23dc464736f6c63430008010033","v":"0x25","r":"0x3070caff7c557d8581e8b4e95e0f56b3355fd53feccc0de93460876945dcf218","s":"0x48cce1da62aa97df0f7994f4963882e9c69329c1ae2490d2affa5e0aec38722a","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637312624356}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!6 b/scripts/ethereum/snapshot_contracts/!blocks!6 new file mode 100644 index 000000000..b8e993a33 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!blocks!6 @@ -0,0 +1 @@ +{"header":{"parentHash":"0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584","transactionsTrie":"0xd6ca7dfa957e85df655672232b91330cf2dace2dd25392cee0fad2525c47536b","receiptTrie":"0xe5d401f39de36b821d5d9c1aa871ccfaee84b26adf5528a2b0daf47c18d0fd12","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x06","gasLimit":"0x0fffffffffffff","gasUsed":"0x14a208","timestamp":"0x6197692d","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc","nonce":"0x5","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50611780806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610138578063b716d6fa1461014b578063bc1ed74c1461015e578063c1e69b6614610171578063db6198a314610184578063f8d682ea14610197576100b4565b8063056036d4146100b957806331c31bba146100d757806343f183e9146100ec5780634f1c2c31146100ff578063553721c5146101125780638126e4d214610125575b600080fd5b6100c16101aa565b6040516100ce919061132c565b60405180910390f35b6100ea6100e536600461100b565b6101b1565b005b6100ea6100fa366004611130565b6102f2565b6100c161010d3660046110ae565b61047c565b6100c16101203660046110ae565b610499565b6100ea610133366004611177565b6104b6565b6100ea6101463660046110d9565b6104dc565b6100c1610159366004611096565b61060d565b6100c161016c366004611096565b61061f565b6100c161017f366004611096565b610631565b6100ea6101923660046110f4565b610643565b6100ea6101a53660046110d9565b610772565b6203f48081565b806101d75760405162461bcd60e51b81526004016101ce9061159c565b60405180910390fd5b600080838360008181106101fb57634e487b7160e01b600052603260045260246000fd5b905060200281019061020d91906116ca565b61021e906080810190606001610fea565b905060005b838110156102ca573685858381811061024c57634e487b7160e01b600052603260045260246000fd5b905060200281019061025e91906116ca565b90506001600160a01b03831661027a6080830160608401610fea565b6001600160a01b0316146102a05760405162461bcd60e51b81526004016101ce906115c4565b6102aa88826108be565b6102b490856116ea565b93505080806102c290611719565b915050610223565b506001600160a01b03861633146102df578594505b6102ea818684610b8b565b505050505050565b6000836040516020016103059190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061033d57506000198114155b6103595760405162461bcd60e51b81526004016101ce90611404565b6000828260405160200161036e92919061127e565b60408051601f19818403018152919052805160209182012091506103c590829061039a90890189610fea565b6040805160608181019092529089906003908390839080828437600092019190915250610c14915050565b6103e15760405162461bcd60e51b81526004016101ce9061145a565b610420816103f56040890160208a01610fea565b6040805160608181019092529088906003908390839080828437600092019190915250610c14915050565b61043c5760405162461bcd60e51b81526004016101ce906113b2565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b600360209081526000928352604080842090915290825290205481565b600260209081526000928352604080842090915290825290205481565b6104d96104c96080830160608401610fea565b336104d433856108be565b610b8b565b50565b60006104ee6060830160408401610fea565b9050336001600160a01b038216146105185760405162461bcd60e51b81526004016101ce90611434565b60008260405160200161052b9190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061056357506000198114155b61057f5760405162461bcd60e51b81526004016101ce90611404565b80421161059e5760405162461bcd60e51b81526004016101ce90611511565b60008281526001602090815260408083208054908490559183905290912060001990556105db6105d46080870160608801610fea565b8583610b8b565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60046020526000908152604090205481565b60016020526000908152604090205481565b60006020819052908152604090205481565b6000836040516020016106569190611619565b6040516020818303038152906040528051906020012090506000821161068e5760405162461bcd60e51b81526004016101ce906113e0565b60008181526020819052604090205460001914156106be5760405162461bcd60e51b81526004016101ce9061138a565b600081815260016020526040812080548492906106dc9084906116ea565b909155505060008181526003602090815260408083206001600160a01b0387168452909152812080548492906107139084906116ea565b90915550610734905061072c6080860160608701610fea565b333085610c3c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e491317783604051610764919061132c565b60405180910390a250505050565b61077f6020820182610fea565b6001600160a01b0316336001600160a01b031614806107be57506107a96040820160208301610fea565b6001600160a01b0316336001600160a01b0316145b806107e957506107d46060820160408301610fea565b6001600160a01b0316336001600160a01b0316145b6108055760405162461bcd60e51b81526004016101ce906115f1565b6000816040516020016108189190611619565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561085c5760405162461bcd60e51b81526004016101ce90611565565b600061086b6203f480426116ea565b600083815260208190526040908190208290555190915082907fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e906108b190849061132c565b60405180910390a2505050565b600080826000016040516020016108d59190611619565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060001981141561091e5760405162461bcd60e51b81526004016101ce9061138a565b801561093a57600082815260046020526040902060c085013590555b600030838660c00135604051602001610955939291906112f2565b60408051601f19818403018152919052805160209182012091506109af90829061098190880188610fea565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610c14915050565b6109cb5760405162461bcd60e51b81526004016101ce90611486565b610a0e816109df6040880160208901610fea565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610c14915050565b610a2a5760405162461bcd60e51b81526004016101ce9061153f565b6000868660a00135604051602001610a43929190611313565b60408051601f1981840301815291905280516020909101209050610aaa81610a6f6101a089018961167c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610cc8565b610ac65760405162461bcd60e51b81526004016101ce906114aa565b60008481526002602090815260408083206001600160a01b038b168452909152812054610af79060a0890135611702565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610b3f908490611702565b92505081905550847fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec382604051610b76919061132c565b60405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610bb99085908590600401611313565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b50505050610bf3610dd0565b610c0f5760405162461bcd60e51b81526004016101ce906114da565b505050565b6000826001600160a01b0316610c2a8584610e04565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610c6c908690869086906004016112ce565b600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050610ca6610dd0565b610cc25760405162461bcd60e51b81526004016101ce90611353565b50505050565b81516000908490825b81811015610dc457858181518110610cf957634e487b7160e01b600052603260045260246000fd5b6020026020010151831015610d5f5782868281518110610d2957634e487b7160e01b600052603260045260246000fd5b6020026020010151604051602001610d429291906111b0565b604051602081830303815290604052805190602001209250610db2565b858181518110610d7f57634e487b7160e01b600052603260045260246000fd5b602002602001015183604051602001610d999291906111b0565b6040516020818303038152906040528051906020012092505b80610dbc81611719565b915050610cd1565b50509091149392505050565b6000803d8015610de75760208114610df057610dfc565b60019150610dfc565b60206000803e60005191505b501515905090565b80516000908190811a6004811115610e2c57634e487b7160e01b600052602160045260246000fd5b90506000816004811115610e5057634e487b7160e01b600052602160045260246000fd5b1415610e60576000915050610b85565b825160011a6002826004811115610e8757634e487b7160e01b600052602160045260246000fd5b1415610ebb5784604051602001610e9e91906111be565b604051602081830303815290604052805190602001209450610f46565b6003826004811115610edd57634e487b7160e01b600052602160045260246000fd5b1415610ef45784604051602001610e9e919061129d565b6004826004811115610f1657634e487b7160e01b600052602160045260246000fd5b1415610f465784604051602001610f2d91906111ef565b6040516020818303038152906040528051906020012094505b60208085015160408087015181516000815290930190819052600192610f70928992869290611335565b6020604051602081039080840390855afa158015610f92573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b0381168114610fbd57600080fd5b919050565b8060608101831015610b8557600080fd5b600060a08284031215610fe4578081fd5b50919050565b600060208284031215610ffb578081fd5b61100482610fa6565b9392505050565b60008060008060608587031215611020578283fd5b61102985610fa6565b935061103760208601610fa6565b9250604085013567ffffffffffffffff80821115611053578384fd5b818701915087601f830112611066578384fd5b813581811115611074578485fd5b8860208083028501011115611087578485fd5b95989497505060200194505050565b6000602082840312156110a7578081fd5b5035919050565b600080604083850312156110c0578182fd5b823591506110d060208401610fa6565b90509250929050565b600060a082840312156110ea578081fd5b6110048383610fd3565b600080600060e08486031215611108578283fd5b6111128585610fd3565b925061112060a08501610fa6565b915060c084013590509250925092565b60008060006101608486031215611145578283fd5b61114f8585610fd3565b925061115e8560a08601610fc2565b915061116e856101008601610fc2565b90509250925092565b600060208284031215611188578081fd5b813567ffffffffffffffff81111561119e578182fd5b82016101c08185031215611004578182fd5b918252602082015260400190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a31303842792081527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f7760208201527f6c65646765207369676e696e6720616e204164457820626964207769746820746040820152683432903430b9b41d0560b91b6060820152606981019190915260890190565b65726573756d6560d01b81526006810192909252602682015260460190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6020808252601e908201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604082015260600190565b6020808252600e908201526d10d2105393915317d0d313d4d15160921b604082015260600190565b602080825260149082015273494e56414c49445f464f4c4c4f5745525f53494760601b604082015260600190565b6020808252600a90820152691393d7d1115413d4d25560b21b604082015260600190565b60208082526016908201527510d2105393915317d393d517d0d2105313115391d15160521b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b602080825260129082015271494e56414c49445f4c45414445525f53494760701b604082015260600190565b6020808252600a90820152694c45414445525f53494760b01b604082015260600190565b602080825260169082015275109053105390d1549311505197d393d517d193d5539160521b604082015260600190565b6020808252601a908201527f5361666545524332303a207472616e73666572206661696c6564000000000000604082015260600190565b6020808252601490820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b604082015260600190565b6020808252600c908201526b464f4c4c4f5745525f53494760a01b604082015260600190565b6020808252601a908201527f4348414e4e454c5f414c52454144595f4348414c4c454e474544000000000000604082015260600190565b6020808252600e908201526d4e4f5f5749544844524157414c5360901b604082015260600190565b60208082526013908201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b604082015260600190565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b60a081016001600160a01b038061162f85610fa6565b1683528061163f60208601610fa6565b1660208401528061165260408601610fa6565b1660408401528061166560608601610fa6565b166060840152506080830135608083015292915050565b6000808335601e19843603018112611692578283fd5b83018035915067ffffffffffffffff8211156116ac578283fd5b60209081019250810236038213156116c357600080fd5b9250929050565b600082356101be198336030181126116e0578182fd5b9190910192915050565b600082198211156116fd576116fd611734565b500190565b60008282101561171457611714611734565b500390565b600060001982141561172d5761172d611734565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209345b73ef3a2e6ea9d940f678a021700734cdb1466a2646358a265e947e7411264736f6c63430008010033","v":"0x26","r":"0xb4dce4664dd5ec84809d3bfdf293e6c009eb4c2b7d6cb44e71112705f47a65aa","s":"0x1b67f3ffc625544c16d812bd534bc505c0925a1efb047776e4210b2bd5074d1f","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637312624356}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!blocks!length b/scripts/ethereum/snapshot_contracts/!blocks!length index bf0d87ab1..c7930257d 100644 --- a/scripts/ethereum/snapshot_contracts/!blocks!length +++ b/scripts/ethereum/snapshot_contracts/!blocks!length @@ -1 +1 @@ -4 \ No newline at end of file +7 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba new file mode 100644 index 000000000..87c16155e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba @@ -0,0 +1 @@ +{"transactionHash":"0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba","transactionIndex":"0x0","blockHash":"0xdedec2a7904e3c42143c03f227ae7bd286458e25a02a6fc4292f0491808898ae","blockNumber":"0x3","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x14a208","cumulativeGasUsed":"0x14a208","contractAddress":"0x26cbc2eaae377f6ac4b73a982cd1125ef4cec96f","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0x179a80468d5f8992138f0c75a9fad9fbd52acaa889f2bc94ceaeedc1b7ba4c9","s":"0x661029205f5ee5cd4c1c460761138231767623b1f15e53ae2751adf9b6eecec8"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc deleted file mode 100644 index 4ae6c494e..000000000 --- a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc +++ /dev/null @@ -1 +0,0 @@ -{"transactionHash":"0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc","transactionIndex":"0x0","blockHash":"0x5a6ffccd8c7c31e0fd02c1326fd98ba39a44a9da9ec3be501b4d3993221124a6","blockNumber":"0x2","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"gasUsed":"0x6ba37","cumulativeGasUsed":"0x6ba37","contractAddress":"0xdd41b0069256a28972458199a3c9cf036384c156","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0x58f655a3ffc625e74df6ab30435ec6cc585e70a351e45238035e54f2ad01dadb","s":"0x201549f9aa7481899b021b9ddf20af8c12d4be11f1fcfd73277daf5b5a485918"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee deleted file mode 100644 index 12562df7c..000000000 --- a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee +++ /dev/null @@ -1 +0,0 @@ -{"transactionHash":"0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee","transactionIndex":"0x0","blockHash":"0x975d76545f72a59a7c2ab91fcd593afdd383066576dece74838fd445d1356d3b","blockNumber":"0x1","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"gasUsed":"0x9b2b3","cumulativeGasUsed":"0x9b2b3","contractAddress":"0x9db7bff788522dbe8fa2e8cbd568a58c471ccd5e","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0xb1b8a8d5e59d3cfbf21090dc2796ecc5a64498e6f16f41c6431cd3db272f1456","s":"0x3456e3eff3343fb99834fefc9c4d918e8b429cfd4a512cfc9e04edb4b92ff372"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d deleted file mode 100644 index db7be5c46..000000000 --- a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d +++ /dev/null @@ -1 +0,0 @@ -{"transactionHash":"0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d","transactionIndex":"0x0","blockHash":"0x8a2233376dc443326245f8cd643286ab8566dc66c553b924818366264d9076f7","blockNumber":"0x3","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"gasUsed":"0x14a208","cumulativeGasUsed":"0x14a208","contractAddress":"0xcb097e455b7159f902e2eb45562fc397ae6b0f3d","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0xbf114b405c39ba601c868327c5992a7fea54fd38f6db45f1489f8d01a1b7efa7","s":"0x65194e9c696ca50bbff67c9bfbd94060870f0a2135850ff62c2190782ffe5151"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 new file mode 100644 index 000000000..6bb82e3b3 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 @@ -0,0 +1 @@ +{"transactionHash":"0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6","transactionIndex":"0x0","blockHash":"0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf","blockNumber":"0x5","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x6ba37","cumulativeGasUsed":"0x6ba37","contractAddress":"0x7dd57c0324284102a757153e18f2cb1acdb7d2bd","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x25","r":"0x3070caff7c557d8581e8b4e95e0f56b3355fd53feccc0de93460876945dcf218","s":"0x48cce1da62aa97df0f7994f4963882e9c69329c1ae2490d2affa5e0aec38722a"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 new file mode 100644 index 000000000..19cb31b3a --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 @@ -0,0 +1 @@ +{"transactionHash":"0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57","transactionIndex":"0x0","blockHash":"0x6a2b4a8a622d83801381f1723bf3e83456e57c674c0cc1a8eab8e7e950ce515a","blockNumber":"0x2","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x6ba37","cumulativeGasUsed":"0x6ba37","contractAddress":"0x3550a85877002f79db46b01672b5f86f1037cb7c","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0xc7bf1941f721855c8045736888a00755d2881353c10ad8f853f412d1096d842a","s":"0x420f9ef86fda019c716c4c95a8b38222f71bc83ebaf6847466091e6817fa370e"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 new file mode 100644 index 000000000..331f056b5 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 @@ -0,0 +1 @@ +{"transactionHash":"0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01","transactionIndex":"0x0","blockHash":"0x44871371a4347bcab22f55a4bee00d2b4bf73e522f310318b4828edda6761e9a","blockNumber":"0x1","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x9b2b3","cumulativeGasUsed":"0x9b2b3","contractAddress":"0x12a28f2bfbffdf5842657235cc058242f40fdea6","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0x6d201bb974edf173455218bcc66c3ca5141261f0d52f27f2ea13e3c1da38af51","s":"0xb35ccd6f039a37f9f7bf3c8e27773f93c5f8948ca76590d55abd9fc63b142db"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 new file mode 100644 index 000000000..ddfc67c8e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 @@ -0,0 +1 @@ +{"transactionHash":"0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480","transactionIndex":"0x0","blockHash":"0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336","blockNumber":"0x4","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x9b2b3","cumulativeGasUsed":"0x9b2b3","contractAddress":"0x2bcaf6968aec8a3b5126fbfab5fd419da6e8ad8e","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x25","r":"0xb1b0899de6098d24cf80b72d7b2cb2bd61c6b94dbe4cc16232f19cb38c8b770c","s":"0x6b1a457b39f6169af85c8334fe814d512a76adfb62aab39d9a2d64b61a5f03c"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc new file mode 100644 index 000000000..e07132b04 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactionReceipts!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc @@ -0,0 +1 @@ +{"transactionHash":"0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc","transactionIndex":"0x0","blockHash":"0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33","blockNumber":"0x6","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x14a208","cumulativeGasUsed":"0x14a208","contractAddress":"0xabc27d46a458e2e49dabfef45ca74dedbac3dd06","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0xb4dce4664dd5ec84809d3bfdf293e6c009eb4c2b7d6cb44e71112705f47a65aa","s":"0x1b67f3ffc625544c16d812bd534bc505c0925a1efb047776e4210b2bd5074d1f"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactions!0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d b/scripts/ethereum/snapshot_contracts/!transactions!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba similarity index 96% rename from scripts/ethereum/snapshot_contracts/!transactions!0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d rename to scripts/ethereum/snapshot_contracts/!transactions!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba index cb0d165ab..26a2d3cac 100644 --- a/scripts/ethereum/snapshot_contracts/!transactions!0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d +++ b/scripts/ethereum/snapshot_contracts/!transactions!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba @@ -1 +1 @@ -{"hash":"0x83d4c16319420581a783d36df3c1f05a556ba036b0d4631ffcaf7894d9e9c53d","nonce":"0x2","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50611780806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610138578063b716d6fa1461014b578063bc1ed74c1461015e578063c1e69b6614610171578063db6198a314610184578063f8d682ea14610197576100b4565b8063056036d4146100b957806331c31bba146100d757806343f183e9146100ec5780634f1c2c31146100ff578063553721c5146101125780638126e4d214610125575b600080fd5b6100c16101aa565b6040516100ce919061132c565b60405180910390f35b6100ea6100e536600461100b565b6101b1565b005b6100ea6100fa366004611130565b6102f2565b6100c161010d3660046110ae565b61047c565b6100c16101203660046110ae565b610499565b6100ea610133366004611177565b6104b6565b6100ea6101463660046110d9565b6104dc565b6100c1610159366004611096565b61060d565b6100c161016c366004611096565b61061f565b6100c161017f366004611096565b610631565b6100ea6101923660046110f4565b610643565b6100ea6101a53660046110d9565b610772565b6203f48081565b806101d75760405162461bcd60e51b81526004016101ce9061159c565b60405180910390fd5b600080838360008181106101fb57634e487b7160e01b600052603260045260246000fd5b905060200281019061020d91906116ca565b61021e906080810190606001610fea565b905060005b838110156102ca573685858381811061024c57634e487b7160e01b600052603260045260246000fd5b905060200281019061025e91906116ca565b90506001600160a01b03831661027a6080830160608401610fea565b6001600160a01b0316146102a05760405162461bcd60e51b81526004016101ce906115c4565b6102aa88826108be565b6102b490856116ea565b93505080806102c290611719565b915050610223565b506001600160a01b03861633146102df578594505b6102ea818684610b8b565b505050505050565b6000836040516020016103059190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061033d57506000198114155b6103595760405162461bcd60e51b81526004016101ce90611404565b6000828260405160200161036e92919061127e565b60408051601f19818403018152919052805160209182012091506103c590829061039a90890189610fea565b6040805160608181019092529089906003908390839080828437600092019190915250610c14915050565b6103e15760405162461bcd60e51b81526004016101ce9061145a565b610420816103f56040890160208a01610fea565b6040805160608181019092529088906003908390839080828437600092019190915250610c14915050565b61043c5760405162461bcd60e51b81526004016101ce906113b2565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b600360209081526000928352604080842090915290825290205481565b600260209081526000928352604080842090915290825290205481565b6104d96104c96080830160608401610fea565b336104d433856108be565b610b8b565b50565b60006104ee6060830160408401610fea565b9050336001600160a01b038216146105185760405162461bcd60e51b81526004016101ce90611434565b60008260405160200161052b9190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061056357506000198114155b61057f5760405162461bcd60e51b81526004016101ce90611404565b80421161059e5760405162461bcd60e51b81526004016101ce90611511565b60008281526001602090815260408083208054908490559183905290912060001990556105db6105d46080870160608801610fea565b8583610b8b565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60046020526000908152604090205481565b60016020526000908152604090205481565b60006020819052908152604090205481565b6000836040516020016106569190611619565b6040516020818303038152906040528051906020012090506000821161068e5760405162461bcd60e51b81526004016101ce906113e0565b60008181526020819052604090205460001914156106be5760405162461bcd60e51b81526004016101ce9061138a565b600081815260016020526040812080548492906106dc9084906116ea565b909155505060008181526003602090815260408083206001600160a01b0387168452909152812080548492906107139084906116ea565b90915550610734905061072c6080860160608701610fea565b333085610c3c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e491317783604051610764919061132c565b60405180910390a250505050565b61077f6020820182610fea565b6001600160a01b0316336001600160a01b031614806107be57506107a96040820160208301610fea565b6001600160a01b0316336001600160a01b0316145b806107e957506107d46060820160408301610fea565b6001600160a01b0316336001600160a01b0316145b6108055760405162461bcd60e51b81526004016101ce906115f1565b6000816040516020016108189190611619565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561085c5760405162461bcd60e51b81526004016101ce90611565565b600061086b6203f480426116ea565b600083815260208190526040908190208290555190915082907fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e906108b190849061132c565b60405180910390a2505050565b600080826000016040516020016108d59190611619565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060001981141561091e5760405162461bcd60e51b81526004016101ce9061138a565b801561093a57600082815260046020526040902060c085013590555b600030838660c00135604051602001610955939291906112f2565b60408051601f19818403018152919052805160209182012091506109af90829061098190880188610fea565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610c14915050565b6109cb5760405162461bcd60e51b81526004016101ce90611486565b610a0e816109df6040880160208901610fea565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610c14915050565b610a2a5760405162461bcd60e51b81526004016101ce9061153f565b6000868660a00135604051602001610a43929190611313565b60408051601f1981840301815291905280516020909101209050610aaa81610a6f6101a089018961167c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610cc8565b610ac65760405162461bcd60e51b81526004016101ce906114aa565b60008481526002602090815260408083206001600160a01b038b168452909152812054610af79060a0890135611702565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610b3f908490611702565b92505081905550847fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec382604051610b76919061132c565b60405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610bb99085908590600401611313565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b50505050610bf3610dd0565b610c0f5760405162461bcd60e51b81526004016101ce906114da565b505050565b6000826001600160a01b0316610c2a8584610e04565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610c6c908690869086906004016112ce565b600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050610ca6610dd0565b610cc25760405162461bcd60e51b81526004016101ce90611353565b50505050565b81516000908490825b81811015610dc457858181518110610cf957634e487b7160e01b600052603260045260246000fd5b6020026020010151831015610d5f5782868281518110610d2957634e487b7160e01b600052603260045260246000fd5b6020026020010151604051602001610d429291906111b0565b604051602081830303815290604052805190602001209250610db2565b858181518110610d7f57634e487b7160e01b600052603260045260246000fd5b602002602001015183604051602001610d999291906111b0565b6040516020818303038152906040528051906020012092505b80610dbc81611719565b915050610cd1565b50509091149392505050565b6000803d8015610de75760208114610df057610dfc565b60019150610dfc565b60206000803e60005191505b501515905090565b80516000908190811a6004811115610e2c57634e487b7160e01b600052602160045260246000fd5b90506000816004811115610e5057634e487b7160e01b600052602160045260246000fd5b1415610e60576000915050610b85565b825160011a6002826004811115610e8757634e487b7160e01b600052602160045260246000fd5b1415610ebb5784604051602001610e9e91906111be565b604051602081830303815290604052805190602001209450610f46565b6003826004811115610edd57634e487b7160e01b600052602160045260246000fd5b1415610ef45784604051602001610e9e919061129d565b6004826004811115610f1657634e487b7160e01b600052602160045260246000fd5b1415610f465784604051602001610f2d91906111ef565b6040516020818303038152906040528051906020012094505b60208085015160408087015181516000815290930190819052600192610f70928992869290611335565b6020604051602081039080840390855afa158015610f92573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b0381168114610fbd57600080fd5b919050565b8060608101831015610b8557600080fd5b600060a08284031215610fe4578081fd5b50919050565b600060208284031215610ffb578081fd5b61100482610fa6565b9392505050565b60008060008060608587031215611020578283fd5b61102985610fa6565b935061103760208601610fa6565b9250604085013567ffffffffffffffff80821115611053578384fd5b818701915087601f830112611066578384fd5b813581811115611074578485fd5b8860208083028501011115611087578485fd5b95989497505060200194505050565b6000602082840312156110a7578081fd5b5035919050565b600080604083850312156110c0578182fd5b823591506110d060208401610fa6565b90509250929050565b600060a082840312156110ea578081fd5b6110048383610fd3565b600080600060e08486031215611108578283fd5b6111128585610fd3565b925061112060a08501610fa6565b915060c084013590509250925092565b60008060006101608486031215611145578283fd5b61114f8585610fd3565b925061115e8560a08601610fc2565b915061116e856101008601610fc2565b90509250925092565b600060208284031215611188578081fd5b813567ffffffffffffffff81111561119e578182fd5b82016101c08185031215611004578182fd5b918252602082015260400190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a31303842792081527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f7760208201527f6c65646765207369676e696e6720616e204164457820626964207769746820746040820152683432903430b9b41d0560b91b6060820152606981019190915260890190565b65726573756d6560d01b81526006810192909252602682015260460190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6020808252601e908201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604082015260600190565b6020808252600e908201526d10d2105393915317d0d313d4d15160921b604082015260600190565b602080825260149082015273494e56414c49445f464f4c4c4f5745525f53494760601b604082015260600190565b6020808252600a90820152691393d7d1115413d4d25560b21b604082015260600190565b60208082526016908201527510d2105393915317d393d517d0d2105313115391d15160521b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b602080825260129082015271494e56414c49445f4c45414445525f53494760701b604082015260600190565b6020808252600a90820152694c45414445525f53494760b01b604082015260600190565b602080825260169082015275109053105390d1549311505197d393d517d193d5539160521b604082015260600190565b6020808252601a908201527f5361666545524332303a207472616e73666572206661696c6564000000000000604082015260600190565b6020808252601490820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b604082015260600190565b6020808252600c908201526b464f4c4c4f5745525f53494760a01b604082015260600190565b6020808252601a908201527f4348414e4e454c5f414c52454144595f4348414c4c454e474544000000000000604082015260600190565b6020808252600e908201526d4e4f5f5749544844524157414c5360901b604082015260600190565b60208082526013908201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b604082015260600190565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b60a081016001600160a01b038061162f85610fa6565b1683528061163f60208601610fa6565b1660208401528061165260408601610fa6565b1660408401528061166560608601610fa6565b166060840152506080830135608083015292915050565b6000808335601e19843603018112611692578283fd5b83018035915067ffffffffffffffff8211156116ac578283fd5b60209081019250810236038213156116c357600080fd5b9250929050565b600082356101be198336030181126116e0578182fd5b9190910192915050565b600082198211156116fd576116fd611734565b500190565b60008282101561171457611714611734565b500390565b600060001982141561172d5761172d611734565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209345b73ef3a2e6ea9d940f678a021700734cdb1466a2646358a265e947e7411264736f6c63430008010033","v":"0x26","r":"0xbf114b405c39ba601c868327c5992a7fea54fd38f6db45f1489f8d01a1b7efa7","s":"0x65194e9c696ca50bbff67c9bfbd94060870f0a2135850ff62c2190782ffe5151","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1634218876956}} \ No newline at end of file +{"hash":"0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba","nonce":"0x2","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50611780806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610138578063b716d6fa1461014b578063bc1ed74c1461015e578063c1e69b6614610171578063db6198a314610184578063f8d682ea14610197576100b4565b8063056036d4146100b957806331c31bba146100d757806343f183e9146100ec5780634f1c2c31146100ff578063553721c5146101125780638126e4d214610125575b600080fd5b6100c16101aa565b6040516100ce919061132c565b60405180910390f35b6100ea6100e536600461100b565b6101b1565b005b6100ea6100fa366004611130565b6102f2565b6100c161010d3660046110ae565b61047c565b6100c16101203660046110ae565b610499565b6100ea610133366004611177565b6104b6565b6100ea6101463660046110d9565b6104dc565b6100c1610159366004611096565b61060d565b6100c161016c366004611096565b61061f565b6100c161017f366004611096565b610631565b6100ea6101923660046110f4565b610643565b6100ea6101a53660046110d9565b610772565b6203f48081565b806101d75760405162461bcd60e51b81526004016101ce9061159c565b60405180910390fd5b600080838360008181106101fb57634e487b7160e01b600052603260045260246000fd5b905060200281019061020d91906116ca565b61021e906080810190606001610fea565b905060005b838110156102ca573685858381811061024c57634e487b7160e01b600052603260045260246000fd5b905060200281019061025e91906116ca565b90506001600160a01b03831661027a6080830160608401610fea565b6001600160a01b0316146102a05760405162461bcd60e51b81526004016101ce906115c4565b6102aa88826108be565b6102b490856116ea565b93505080806102c290611719565b915050610223565b506001600160a01b03861633146102df578594505b6102ea818684610b8b565b505050505050565b6000836040516020016103059190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061033d57506000198114155b6103595760405162461bcd60e51b81526004016101ce90611404565b6000828260405160200161036e92919061127e565b60408051601f19818403018152919052805160209182012091506103c590829061039a90890189610fea565b6040805160608181019092529089906003908390839080828437600092019190915250610c14915050565b6103e15760405162461bcd60e51b81526004016101ce9061145a565b610420816103f56040890160208a01610fea565b6040805160608181019092529088906003908390839080828437600092019190915250610c14915050565b61043c5760405162461bcd60e51b81526004016101ce906113b2565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b600360209081526000928352604080842090915290825290205481565b600260209081526000928352604080842090915290825290205481565b6104d96104c96080830160608401610fea565b336104d433856108be565b610b8b565b50565b60006104ee6060830160408401610fea565b9050336001600160a01b038216146105185760405162461bcd60e51b81526004016101ce90611434565b60008260405160200161052b9190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061056357506000198114155b61057f5760405162461bcd60e51b81526004016101ce90611404565b80421161059e5760405162461bcd60e51b81526004016101ce90611511565b60008281526001602090815260408083208054908490559183905290912060001990556105db6105d46080870160608801610fea565b8583610b8b565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60046020526000908152604090205481565b60016020526000908152604090205481565b60006020819052908152604090205481565b6000836040516020016106569190611619565b6040516020818303038152906040528051906020012090506000821161068e5760405162461bcd60e51b81526004016101ce906113e0565b60008181526020819052604090205460001914156106be5760405162461bcd60e51b81526004016101ce9061138a565b600081815260016020526040812080548492906106dc9084906116ea565b909155505060008181526003602090815260408083206001600160a01b0387168452909152812080548492906107139084906116ea565b90915550610734905061072c6080860160608701610fea565b333085610c3c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e491317783604051610764919061132c565b60405180910390a250505050565b61077f6020820182610fea565b6001600160a01b0316336001600160a01b031614806107be57506107a96040820160208301610fea565b6001600160a01b0316336001600160a01b0316145b806107e957506107d46060820160408301610fea565b6001600160a01b0316336001600160a01b0316145b6108055760405162461bcd60e51b81526004016101ce906115f1565b6000816040516020016108189190611619565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561085c5760405162461bcd60e51b81526004016101ce90611565565b600061086b6203f480426116ea565b600083815260208190526040908190208290555190915082907fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e906108b190849061132c565b60405180910390a2505050565b600080826000016040516020016108d59190611619565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060001981141561091e5760405162461bcd60e51b81526004016101ce9061138a565b801561093a57600082815260046020526040902060c085013590555b600030838660c00135604051602001610955939291906112f2565b60408051601f19818403018152919052805160209182012091506109af90829061098190880188610fea565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610c14915050565b6109cb5760405162461bcd60e51b81526004016101ce90611486565b610a0e816109df6040880160208901610fea565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610c14915050565b610a2a5760405162461bcd60e51b81526004016101ce9061153f565b6000868660a00135604051602001610a43929190611313565b60408051601f1981840301815291905280516020909101209050610aaa81610a6f6101a089018961167c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610cc8565b610ac65760405162461bcd60e51b81526004016101ce906114aa565b60008481526002602090815260408083206001600160a01b038b168452909152812054610af79060a0890135611702565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610b3f908490611702565b92505081905550847fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec382604051610b76919061132c565b60405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610bb99085908590600401611313565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b50505050610bf3610dd0565b610c0f5760405162461bcd60e51b81526004016101ce906114da565b505050565b6000826001600160a01b0316610c2a8584610e04565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610c6c908690869086906004016112ce565b600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050610ca6610dd0565b610cc25760405162461bcd60e51b81526004016101ce90611353565b50505050565b81516000908490825b81811015610dc457858181518110610cf957634e487b7160e01b600052603260045260246000fd5b6020026020010151831015610d5f5782868281518110610d2957634e487b7160e01b600052603260045260246000fd5b6020026020010151604051602001610d429291906111b0565b604051602081830303815290604052805190602001209250610db2565b858181518110610d7f57634e487b7160e01b600052603260045260246000fd5b602002602001015183604051602001610d999291906111b0565b6040516020818303038152906040528051906020012092505b80610dbc81611719565b915050610cd1565b50509091149392505050565b6000803d8015610de75760208114610df057610dfc565b60019150610dfc565b60206000803e60005191505b501515905090565b80516000908190811a6004811115610e2c57634e487b7160e01b600052602160045260246000fd5b90506000816004811115610e5057634e487b7160e01b600052602160045260246000fd5b1415610e60576000915050610b85565b825160011a6002826004811115610e8757634e487b7160e01b600052602160045260246000fd5b1415610ebb5784604051602001610e9e91906111be565b604051602081830303815290604052805190602001209450610f46565b6003826004811115610edd57634e487b7160e01b600052602160045260246000fd5b1415610ef45784604051602001610e9e919061129d565b6004826004811115610f1657634e487b7160e01b600052602160045260246000fd5b1415610f465784604051602001610f2d91906111ef565b6040516020818303038152906040528051906020012094505b60208085015160408087015181516000815290930190819052600192610f70928992869290611335565b6020604051602081039080840390855afa158015610f92573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b0381168114610fbd57600080fd5b919050565b8060608101831015610b8557600080fd5b600060a08284031215610fe4578081fd5b50919050565b600060208284031215610ffb578081fd5b61100482610fa6565b9392505050565b60008060008060608587031215611020578283fd5b61102985610fa6565b935061103760208601610fa6565b9250604085013567ffffffffffffffff80821115611053578384fd5b818701915087601f830112611066578384fd5b813581811115611074578485fd5b8860208083028501011115611087578485fd5b95989497505060200194505050565b6000602082840312156110a7578081fd5b5035919050565b600080604083850312156110c0578182fd5b823591506110d060208401610fa6565b90509250929050565b600060a082840312156110ea578081fd5b6110048383610fd3565b600080600060e08486031215611108578283fd5b6111128585610fd3565b925061112060a08501610fa6565b915060c084013590509250925092565b60008060006101608486031215611145578283fd5b61114f8585610fd3565b925061115e8560a08601610fc2565b915061116e856101008601610fc2565b90509250925092565b600060208284031215611188578081fd5b813567ffffffffffffffff81111561119e578182fd5b82016101c08185031215611004578182fd5b918252602082015260400190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a31303842792081527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f7760208201527f6c65646765207369676e696e6720616e204164457820626964207769746820746040820152683432903430b9b41d0560b91b6060820152606981019190915260890190565b65726573756d6560d01b81526006810192909252602682015260460190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6020808252601e908201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604082015260600190565b6020808252600e908201526d10d2105393915317d0d313d4d15160921b604082015260600190565b602080825260149082015273494e56414c49445f464f4c4c4f5745525f53494760601b604082015260600190565b6020808252600a90820152691393d7d1115413d4d25560b21b604082015260600190565b60208082526016908201527510d2105393915317d393d517d0d2105313115391d15160521b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b602080825260129082015271494e56414c49445f4c45414445525f53494760701b604082015260600190565b6020808252600a90820152694c45414445525f53494760b01b604082015260600190565b602080825260169082015275109053105390d1549311505197d393d517d193d5539160521b604082015260600190565b6020808252601a908201527f5361666545524332303a207472616e73666572206661696c6564000000000000604082015260600190565b6020808252601490820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b604082015260600190565b6020808252600c908201526b464f4c4c4f5745525f53494760a01b604082015260600190565b6020808252601a908201527f4348414e4e454c5f414c52454144595f4348414c4c454e474544000000000000604082015260600190565b6020808252600e908201526d4e4f5f5749544844524157414c5360901b604082015260600190565b60208082526013908201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b604082015260600190565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b60a081016001600160a01b038061162f85610fa6565b1683528061163f60208601610fa6565b1660208401528061165260408601610fa6565b1660408401528061166560608601610fa6565b166060840152506080830135608083015292915050565b6000808335601e19843603018112611692578283fd5b83018035915067ffffffffffffffff8211156116ac578283fd5b60209081019250810236038213156116c357600080fd5b9250929050565b600082356101be198336030181126116e0578182fd5b9190910192915050565b600082198211156116fd576116fd611734565b500190565b60008282101561171457611714611734565b500390565b600060001982141561172d5761172d611734565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209345b73ef3a2e6ea9d940f678a021700734cdb1466a2646358a265e947e7411264736f6c63430008010033","v":"0x26","r":"0x179a80468d5f8992138f0c75a9fad9fbd52acaa889f2bc94ceaeedc1b7ba4c9","s":"0x661029205f5ee5cd4c1c460761138231767623b1f15e53ae2751adf9b6eecec8","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637311205460}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactions!0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc b/scripts/ethereum/snapshot_contracts/!transactions!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 similarity index 90% rename from scripts/ethereum/snapshot_contracts/!transactions!0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc rename to scripts/ethereum/snapshot_contracts/!transactions!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 index e4825d337..88b07e32c 100644 --- a/scripts/ethereum/snapshot_contracts/!transactions!0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc +++ b/scripts/ethereum/snapshot_contracts/!transactions!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 @@ -1 +1 @@ -{"hash":"0x3562f70968d93d3486ae02db02628d54ef3dcef67cafcce82f95674d903874cc","nonce":"0x1","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610704806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e36600461016a565b610045565b005b60005b81518110156100cc576000801b848484848151811061007757634e487b7160e01b600052603260045260246000fd5b602002602001015160405161008b906100d2565b6100979392919061022c565b8190604051809103906000f59050801580156100b7573d6000803e3d6000fd5b505080806100c4906102b8565b915050610048565b50505050565b6103c18061030e83390190565b600082601f8301126100ef578081fd5b8135602067ffffffffffffffff82111561010b5761010b6102df565b808202610119828201610287565b838152828101908684018388018501891015610133578687fd5b8693505b8584101561015e57803561014a816102f5565b835260019390930192918401918401610137565b50979650505050505050565b600080600083850360e081121561017f578384fd5b843561018a816102f5565b935060a0601f198201121561019d578283fd5b506101a860a0610287565b60208501356101b6816102f5565b815260408501356101c6816102f5565b602082015260608501356101d9816102f5565b604082015260808501356101ec816102f5565b606082015260a08501356080820152915060c084013567ffffffffffffffff811115610216578182fd5b610222868287016100df565b9150509250925092565b6001600160a01b039384168152825184166020808301919091528301518416604080830191909152830151841660608083019190915283015184166080808301919091529092015160a083015290911660c082015260e00190565b604051601f8201601f1916810167ffffffffffffffff811182821017156102b0576102b06102df565b604052919050565b60006000198214156102d857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461030a57600080fd5b5056fe608060405234801561001057600080fd5b506040516103c13803806103c183398101604081905261002f9161020e565b60608201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906100629030906004016102ed565b60206040518083038186803b15801561007a57600080fd5b505afa15801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906102d5565b90506100cd8360600151858361013260201b6100091760201c565b60405163db6198a360e01b81526001600160a01b0385169063db6198a3906100fd90869086908690600401610351565b600060405180830381600087803b15801561011757600080fd5b505af115801561012b573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906101609085908590600401610301565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506101a06101ca60201b60201c565b6101c55760405162461bcd60e51b81526004016101bc9061031a565b60405180910390fd5b505050565b6000803d80156101e157602081146101ea576101f6565b600191506101f6565b60206000803e60005191505b501515905090565b8051610209816103a8565b919050565b600080600083850360e0811215610223578384fd5b845161022e816103a8565b935060a0601f1982011215610241578283fd5b5060405160a081016001600160401b038111828210171561027057634e487b7160e01b84526041600452602484fd5b60405261027f602086016101fe565b815261028d604086016101fe565b602082015261029e606086016101fe565b60408201526102af608086016101fe565b606082015260a0850151608082015291506102cc60c085016101fe565b90509250925092565b6000602082840312156102e6578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527f5361666545524332303a20617070726f7665206661696c656400000000000000604082015260600190565b83516001600160a01b039081168252602080860151821690830152604080860151821690830152606080860151821690830152608094850151948201949094529190921660a082015260c081019190915260e00190565b6001600160a01b03811681146103bd57600080fd5b5056fea264697066735822122067959ee3a7560f3cf459a35bee2ec1208611ed45f243b2aadcc5859421f23dc464736f6c63430008010033","v":"0x26","r":"0x58f655a3ffc625e74df6ab30435ec6cc585e70a351e45238035e54f2ad01dadb","s":"0x201549f9aa7481899b021b9ddf20af8c12d4be11f1fcfd73277daf5b5a485918","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1634218876956}} \ No newline at end of file +{"hash":"0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6","nonce":"0x4","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610704806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e36600461016a565b610045565b005b60005b81518110156100cc576000801b848484848151811061007757634e487b7160e01b600052603260045260246000fd5b602002602001015160405161008b906100d2565b6100979392919061022c565b8190604051809103906000f59050801580156100b7573d6000803e3d6000fd5b505080806100c4906102b8565b915050610048565b50505050565b6103c18061030e83390190565b600082601f8301126100ef578081fd5b8135602067ffffffffffffffff82111561010b5761010b6102df565b808202610119828201610287565b838152828101908684018388018501891015610133578687fd5b8693505b8584101561015e57803561014a816102f5565b835260019390930192918401918401610137565b50979650505050505050565b600080600083850360e081121561017f578384fd5b843561018a816102f5565b935060a0601f198201121561019d578283fd5b506101a860a0610287565b60208501356101b6816102f5565b815260408501356101c6816102f5565b602082015260608501356101d9816102f5565b604082015260808501356101ec816102f5565b606082015260a08501356080820152915060c084013567ffffffffffffffff811115610216578182fd5b610222868287016100df565b9150509250925092565b6001600160a01b039384168152825184166020808301919091528301518416604080830191909152830151841660608083019190915283015184166080808301919091529092015160a083015290911660c082015260e00190565b604051601f8201601f1916810167ffffffffffffffff811182821017156102b0576102b06102df565b604052919050565b60006000198214156102d857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461030a57600080fd5b5056fe608060405234801561001057600080fd5b506040516103c13803806103c183398101604081905261002f9161020e565b60608201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906100629030906004016102ed565b60206040518083038186803b15801561007a57600080fd5b505afa15801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906102d5565b90506100cd8360600151858361013260201b6100091760201c565b60405163db6198a360e01b81526001600160a01b0385169063db6198a3906100fd90869086908690600401610351565b600060405180830381600087803b15801561011757600080fd5b505af115801561012b573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906101609085908590600401610301565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506101a06101ca60201b60201c565b6101c55760405162461bcd60e51b81526004016101bc9061031a565b60405180910390fd5b505050565b6000803d80156101e157602081146101ea576101f6565b600191506101f6565b60206000803e60005191505b501515905090565b8051610209816103a8565b919050565b600080600083850360e0811215610223578384fd5b845161022e816103a8565b935060a0601f1982011215610241578283fd5b5060405160a081016001600160401b038111828210171561027057634e487b7160e01b84526041600452602484fd5b60405261027f602086016101fe565b815261028d604086016101fe565b602082015261029e606086016101fe565b60408201526102af608086016101fe565b606082015260a0850151608082015291506102cc60c085016101fe565b90509250925092565b6000602082840312156102e6578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527f5361666545524332303a20617070726f7665206661696c656400000000000000604082015260600190565b83516001600160a01b039081168252602080860151821690830152604080860151821690830152606080860151821690830152608094850151948201949094529190921660a082015260c081019190915260e00190565b6001600160a01b03811681146103bd57600080fd5b5056fea264697066735822122067959ee3a7560f3cf459a35bee2ec1208611ed45f243b2aadcc5859421f23dc464736f6c63430008010033","v":"0x25","r":"0x3070caff7c557d8581e8b4e95e0f56b3355fd53feccc0de93460876945dcf218","s":"0x48cce1da62aa97df0f7994f4963882e9c69329c1ae2490d2affa5e0aec38722a","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637312624356}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactions!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 b/scripts/ethereum/snapshot_contracts/!transactions!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 new file mode 100644 index 000000000..38bb80861 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactions!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 @@ -0,0 +1 @@ +{"hash":"0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57","nonce":"0x1","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610704806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e36600461016a565b610045565b005b60005b81518110156100cc576000801b848484848151811061007757634e487b7160e01b600052603260045260246000fd5b602002602001015160405161008b906100d2565b6100979392919061022c565b8190604051809103906000f59050801580156100b7573d6000803e3d6000fd5b505080806100c4906102b8565b915050610048565b50505050565b6103c18061030e83390190565b600082601f8301126100ef578081fd5b8135602067ffffffffffffffff82111561010b5761010b6102df565b808202610119828201610287565b838152828101908684018388018501891015610133578687fd5b8693505b8584101561015e57803561014a816102f5565b835260019390930192918401918401610137565b50979650505050505050565b600080600083850360e081121561017f578384fd5b843561018a816102f5565b935060a0601f198201121561019d578283fd5b506101a860a0610287565b60208501356101b6816102f5565b815260408501356101c6816102f5565b602082015260608501356101d9816102f5565b604082015260808501356101ec816102f5565b606082015260a08501356080820152915060c084013567ffffffffffffffff811115610216578182fd5b610222868287016100df565b9150509250925092565b6001600160a01b039384168152825184166020808301919091528301518416604080830191909152830151841660608083019190915283015184166080808301919091529092015160a083015290911660c082015260e00190565b604051601f8201601f1916810167ffffffffffffffff811182821017156102b0576102b06102df565b604052919050565b60006000198214156102d857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461030a57600080fd5b5056fe608060405234801561001057600080fd5b506040516103c13803806103c183398101604081905261002f9161020e565b60608201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906100629030906004016102ed565b60206040518083038186803b15801561007a57600080fd5b505afa15801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906102d5565b90506100cd8360600151858361013260201b6100091760201c565b60405163db6198a360e01b81526001600160a01b0385169063db6198a3906100fd90869086908690600401610351565b600060405180830381600087803b15801561011757600080fd5b505af115801561012b573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906101609085908590600401610301565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506101a06101ca60201b60201c565b6101c55760405162461bcd60e51b81526004016101bc9061031a565b60405180910390fd5b505050565b6000803d80156101e157602081146101ea576101f6565b600191506101f6565b60206000803e60005191505b501515905090565b8051610209816103a8565b919050565b600080600083850360e0811215610223578384fd5b845161022e816103a8565b935060a0601f1982011215610241578283fd5b5060405160a081016001600160401b038111828210171561027057634e487b7160e01b84526041600452602484fd5b60405261027f602086016101fe565b815261028d604086016101fe565b602082015261029e606086016101fe565b60408201526102af608086016101fe565b606082015260a0850151608082015291506102cc60c085016101fe565b90509250925092565b6000602082840312156102e6578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527f5361666545524332303a20617070726f7665206661696c656400000000000000604082015260600190565b83516001600160a01b039081168252602080860151821690830152604080860151821690830152606080860151821690830152608094850151948201949094529190921660a082015260c081019190915260e00190565b6001600160a01b03811681146103bd57600080fd5b5056fea264697066735822122067959ee3a7560f3cf459a35bee2ec1208611ed45f243b2aadcc5859421f23dc464736f6c63430008010033","v":"0x26","r":"0xc7bf1941f721855c8045736888a00755d2881353c10ad8f853f412d1096d842a","s":"0x420f9ef86fda019c716c4c95a8b38222f71bc83ebaf6847466091e6817fa370e","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637311205460}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactions!0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee b/scripts/ethereum/snapshot_contracts/!transactions!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 similarity index 92% rename from scripts/ethereum/snapshot_contracts/!transactions!0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee rename to scripts/ethereum/snapshot_contracts/!transactions!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 index c22b790ee..d051e49c9 100644 --- a/scripts/ethereum/snapshot_contracts/!transactions!0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee +++ b/scripts/ethereum/snapshot_contracts/!transactions!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 @@ -1 +1 @@ -{"hash":"0x5ae6a41a9e2e02dade9efeb1760050af9db80b91d0387fc816e06e1004435dee","nonce":"0x0","from":"0x5a04a8fb90242fb7e1db7d1f51e268a03b7f93a5","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x26","r":"0xb1b8a8d5e59d3cfbf21090dc2796ecc5a64498e6f16f41c6431cd3db272f1456","s":"0x3456e3eff3343fb99834fefc9c4d918e8b429cfd4a512cfc9e04edb4b92ff372","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1634218876956}} \ No newline at end of file +{"hash":"0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01","nonce":"0x0","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x26","r":"0x6d201bb974edf173455218bcc66c3ca5141261f0d52f27f2ea13e3c1da38af51","s":"0xb35ccd6f039a37f9f7bf3c8e27773f93c5f8948ca76590d55abd9fc63b142db","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637311205460}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactions!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 b/scripts/ethereum/snapshot_contracts/!transactions!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 new file mode 100644 index 000000000..98c98c5c0 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactions!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 @@ -0,0 +1 @@ +{"hash":"0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480","nonce":"0x3","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x25","r":"0xb1b0899de6098d24cf80b72d7b2cb2bd61c6b94dbe4cc16232f19cb38c8b770c","s":"0x6b1a457b39f6169af85c8334fe814d512a76adfb62aab39d9a2d64b61a5f03c","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637312624356}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!transactions!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc b/scripts/ethereum/snapshot_contracts/!transactions!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc new file mode 100644 index 000000000..aee8c84ae --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!transactions!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc @@ -0,0 +1 @@ +{"hash":"0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc","nonce":"0x5","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50611780806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610138578063b716d6fa1461014b578063bc1ed74c1461015e578063c1e69b6614610171578063db6198a314610184578063f8d682ea14610197576100b4565b8063056036d4146100b957806331c31bba146100d757806343f183e9146100ec5780634f1c2c31146100ff578063553721c5146101125780638126e4d214610125575b600080fd5b6100c16101aa565b6040516100ce919061132c565b60405180910390f35b6100ea6100e536600461100b565b6101b1565b005b6100ea6100fa366004611130565b6102f2565b6100c161010d3660046110ae565b61047c565b6100c16101203660046110ae565b610499565b6100ea610133366004611177565b6104b6565b6100ea6101463660046110d9565b6104dc565b6100c1610159366004611096565b61060d565b6100c161016c366004611096565b61061f565b6100c161017f366004611096565b610631565b6100ea6101923660046110f4565b610643565b6100ea6101a53660046110d9565b610772565b6203f48081565b806101d75760405162461bcd60e51b81526004016101ce9061159c565b60405180910390fd5b600080838360008181106101fb57634e487b7160e01b600052603260045260246000fd5b905060200281019061020d91906116ca565b61021e906080810190606001610fea565b905060005b838110156102ca573685858381811061024c57634e487b7160e01b600052603260045260246000fd5b905060200281019061025e91906116ca565b90506001600160a01b03831661027a6080830160608401610fea565b6001600160a01b0316146102a05760405162461bcd60e51b81526004016101ce906115c4565b6102aa88826108be565b6102b490856116ea565b93505080806102c290611719565b915050610223565b506001600160a01b03861633146102df578594505b6102ea818684610b8b565b505050505050565b6000836040516020016103059190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061033d57506000198114155b6103595760405162461bcd60e51b81526004016101ce90611404565b6000828260405160200161036e92919061127e565b60408051601f19818403018152919052805160209182012091506103c590829061039a90890189610fea565b6040805160608181019092529089906003908390839080828437600092019190915250610c14915050565b6103e15760405162461bcd60e51b81526004016101ce9061145a565b610420816103f56040890160208a01610fea565b6040805160608181019092529088906003908390839080828437600092019190915250610c14915050565b61043c5760405162461bcd60e51b81526004016101ce906113b2565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b600360209081526000928352604080842090915290825290205481565b600260209081526000928352604080842090915290825290205481565b6104d96104c96080830160608401610fea565b336104d433856108be565b610b8b565b50565b60006104ee6060830160408401610fea565b9050336001600160a01b038216146105185760405162461bcd60e51b81526004016101ce90611434565b60008260405160200161052b9190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061056357506000198114155b61057f5760405162461bcd60e51b81526004016101ce90611404565b80421161059e5760405162461bcd60e51b81526004016101ce90611511565b60008281526001602090815260408083208054908490559183905290912060001990556105db6105d46080870160608801610fea565b8583610b8b565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60046020526000908152604090205481565b60016020526000908152604090205481565b60006020819052908152604090205481565b6000836040516020016106569190611619565b6040516020818303038152906040528051906020012090506000821161068e5760405162461bcd60e51b81526004016101ce906113e0565b60008181526020819052604090205460001914156106be5760405162461bcd60e51b81526004016101ce9061138a565b600081815260016020526040812080548492906106dc9084906116ea565b909155505060008181526003602090815260408083206001600160a01b0387168452909152812080548492906107139084906116ea565b90915550610734905061072c6080860160608701610fea565b333085610c3c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e491317783604051610764919061132c565b60405180910390a250505050565b61077f6020820182610fea565b6001600160a01b0316336001600160a01b031614806107be57506107a96040820160208301610fea565b6001600160a01b0316336001600160a01b0316145b806107e957506107d46060820160408301610fea565b6001600160a01b0316336001600160a01b0316145b6108055760405162461bcd60e51b81526004016101ce906115f1565b6000816040516020016108189190611619565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561085c5760405162461bcd60e51b81526004016101ce90611565565b600061086b6203f480426116ea565b600083815260208190526040908190208290555190915082907fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e906108b190849061132c565b60405180910390a2505050565b600080826000016040516020016108d59190611619565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060001981141561091e5760405162461bcd60e51b81526004016101ce9061138a565b801561093a57600082815260046020526040902060c085013590555b600030838660c00135604051602001610955939291906112f2565b60408051601f19818403018152919052805160209182012091506109af90829061098190880188610fea565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610c14915050565b6109cb5760405162461bcd60e51b81526004016101ce90611486565b610a0e816109df6040880160208901610fea565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610c14915050565b610a2a5760405162461bcd60e51b81526004016101ce9061153f565b6000868660a00135604051602001610a43929190611313565b60408051601f1981840301815291905280516020909101209050610aaa81610a6f6101a089018961167c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610cc8565b610ac65760405162461bcd60e51b81526004016101ce906114aa565b60008481526002602090815260408083206001600160a01b038b168452909152812054610af79060a0890135611702565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610b3f908490611702565b92505081905550847fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec382604051610b76919061132c565b60405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610bb99085908590600401611313565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b50505050610bf3610dd0565b610c0f5760405162461bcd60e51b81526004016101ce906114da565b505050565b6000826001600160a01b0316610c2a8584610e04565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610c6c908690869086906004016112ce565b600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050610ca6610dd0565b610cc25760405162461bcd60e51b81526004016101ce90611353565b50505050565b81516000908490825b81811015610dc457858181518110610cf957634e487b7160e01b600052603260045260246000fd5b6020026020010151831015610d5f5782868281518110610d2957634e487b7160e01b600052603260045260246000fd5b6020026020010151604051602001610d429291906111b0565b604051602081830303815290604052805190602001209250610db2565b858181518110610d7f57634e487b7160e01b600052603260045260246000fd5b602002602001015183604051602001610d999291906111b0565b6040516020818303038152906040528051906020012092505b80610dbc81611719565b915050610cd1565b50509091149392505050565b6000803d8015610de75760208114610df057610dfc565b60019150610dfc565b60206000803e60005191505b501515905090565b80516000908190811a6004811115610e2c57634e487b7160e01b600052602160045260246000fd5b90506000816004811115610e5057634e487b7160e01b600052602160045260246000fd5b1415610e60576000915050610b85565b825160011a6002826004811115610e8757634e487b7160e01b600052602160045260246000fd5b1415610ebb5784604051602001610e9e91906111be565b604051602081830303815290604052805190602001209450610f46565b6003826004811115610edd57634e487b7160e01b600052602160045260246000fd5b1415610ef45784604051602001610e9e919061129d565b6004826004811115610f1657634e487b7160e01b600052602160045260246000fd5b1415610f465784604051602001610f2d91906111ef565b6040516020818303038152906040528051906020012094505b60208085015160408087015181516000815290930190819052600192610f70928992869290611335565b6020604051602081039080840390855afa158015610f92573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b0381168114610fbd57600080fd5b919050565b8060608101831015610b8557600080fd5b600060a08284031215610fe4578081fd5b50919050565b600060208284031215610ffb578081fd5b61100482610fa6565b9392505050565b60008060008060608587031215611020578283fd5b61102985610fa6565b935061103760208601610fa6565b9250604085013567ffffffffffffffff80821115611053578384fd5b818701915087601f830112611066578384fd5b813581811115611074578485fd5b8860208083028501011115611087578485fd5b95989497505060200194505050565b6000602082840312156110a7578081fd5b5035919050565b600080604083850312156110c0578182fd5b823591506110d060208401610fa6565b90509250929050565b600060a082840312156110ea578081fd5b6110048383610fd3565b600080600060e08486031215611108578283fd5b6111128585610fd3565b925061112060a08501610fa6565b915060c084013590509250925092565b60008060006101608486031215611145578283fd5b61114f8585610fd3565b925061115e8560a08601610fc2565b915061116e856101008601610fc2565b90509250925092565b600060208284031215611188578081fd5b813567ffffffffffffffff81111561119e578182fd5b82016101c08185031215611004578182fd5b918252602082015260400190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a31303842792081527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f7760208201527f6c65646765207369676e696e6720616e204164457820626964207769746820746040820152683432903430b9b41d0560b91b6060820152606981019190915260890190565b65726573756d6560d01b81526006810192909252602682015260460190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6020808252601e908201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604082015260600190565b6020808252600e908201526d10d2105393915317d0d313d4d15160921b604082015260600190565b602080825260149082015273494e56414c49445f464f4c4c4f5745525f53494760601b604082015260600190565b6020808252600a90820152691393d7d1115413d4d25560b21b604082015260600190565b60208082526016908201527510d2105393915317d393d517d0d2105313115391d15160521b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b602080825260129082015271494e56414c49445f4c45414445525f53494760701b604082015260600190565b6020808252600a90820152694c45414445525f53494760b01b604082015260600190565b602080825260169082015275109053105390d1549311505197d393d517d193d5539160521b604082015260600190565b6020808252601a908201527f5361666545524332303a207472616e73666572206661696c6564000000000000604082015260600190565b6020808252601490820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b604082015260600190565b6020808252600c908201526b464f4c4c4f5745525f53494760a01b604082015260600190565b6020808252601a908201527f4348414e4e454c5f414c52454144595f4348414c4c454e474544000000000000604082015260600190565b6020808252600e908201526d4e4f5f5749544844524157414c5360901b604082015260600190565b60208082526013908201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b604082015260600190565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b60a081016001600160a01b038061162f85610fa6565b1683528061163f60208601610fa6565b1660208401528061165260408601610fa6565b1660408401528061166560608601610fa6565b166060840152506080830135608083015292915050565b6000808335601e19843603018112611692578283fd5b83018035915067ffffffffffffffff8211156116ac578283fd5b60209081019250810236038213156116c357600080fd5b9250929050565b600082356101be198336030181126116e0578182fd5b9190910192915050565b600082198211156116fd576116fd611734565b500190565b60008282101561171457611714611734565b500390565b600060001982141561172d5761172d611734565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209345b73ef3a2e6ea9d940f678a021700734cdb1466a2646358a265e947e7411264736f6c63430008010033","v":"0x26","r":"0xb4dce4664dd5ec84809d3bfdf293e6c009eb4c2b7d6cb44e71112705f47a65aa","s":"0x1b67f3ffc625544c16d812bd534bc505c0925a1efb047776e4210b2bd5074d1f","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1637312624356}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 b/scripts/ethereum/snapshot_contracts/!trie_db!0x023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 new file mode 100644 index 000000000..9b98c259b --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 @@ -0,0 +1 @@ +"0xf851a0c1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f68080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x41db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bd b/scripts/ethereum/snapshot_contracts/!trie_db!0x02782737994a149b90b005a67ef4448abb4181af6980c89dba723cbf8d119b25 similarity index 70% rename from scripts/ethereum/snapshot_contracts/!trie_db!0x41db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bd rename to scripts/ethereum/snapshot_contracts/!trie_db!0x02782737994a149b90b005a67ef4448abb4181af6980c89dba723cbf8d119b25 index a88dd1fa0..b3bfccb5d 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x41db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bd +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x02782737994a149b90b005a67ef4448abb4181af6980c89dba723cbf8d119b25 @@ -1 +1 @@ -"0xf869943f08f82de32b8d460adbe8d72043e3a7e25a3b39b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699420589b43793934ef6ad266067a0d1d4896b0dff0b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x03290b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b b/scripts/ethereum/snapshot_contracts/!trie_db!0x03290b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b new file mode 100644 index 000000000..f7ce90f25 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x03290b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b @@ -0,0 +1 @@ +"0xf90191a0950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2ca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c237280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x0593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e b/scripts/ethereum/snapshot_contracts/!trie_db!0x0593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e new file mode 100644 index 000000000..8c0ff513d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x0593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e @@ -0,0 +1 @@ +"0xf851808080808080a059c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d06380808080a06e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d48080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a b/scripts/ethereum/snapshot_contracts/!trie_db!0x061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a new file mode 100644 index 000000000..27ea5c77c --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a @@ -0,0 +1 @@ +"0xf851a01e956299a7287f997269b67f4be4dd4a70a5946f59fb6149d2dd152778599b2080a0bd20e3a59ec4f5b22157fba0d1538788a6e75592ba0d9d0a6054e4ac84c6b06a8080808080808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d8 b/scripts/ethereum/snapshot_contracts/!trie_db!0x080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d8 new file mode 100644 index 000000000..829dab188 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d8 @@ -0,0 +1 @@ +"0xf85180808080a0c7f7274e7b08e74ef6cb683a5672841d4d4a558029869773a5c66e8f1ef024ee808080a07323bf10d26b53b69b0edc96e5f38a5bfeea507af8555825608ca0e502587a598080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x0ae1ef8e50587d99c3784c801d71ce879e7562c39ffd4ef2f8090971ad86e33b b/scripts/ethereum/snapshot_contracts/!trie_db!0x0ae1ef8e50587d99c3784c801d71ce879e7562c39ffd4ef2f8090971ad86e33b deleted file mode 100644 index e3670c476..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x0ae1ef8e50587d99c3784c801d71ce879e7562c39ffd4ef2f8090971ad86e33b +++ /dev/null @@ -1 +0,0 @@ -"0xf851a018cb97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab7180808080808080808080808080a04acd48b7145b7aa9b7d86b74ab7407e8d403aa786cedf3226266a587ff28336d8080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x1936ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 b/scripts/ethereum/snapshot_contracts/!trie_db!0x1936ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 new file mode 100644 index 000000000..924c4dc4d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x1936ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 @@ -0,0 +1 @@ +"0xf90191a07e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0cd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf135380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x1a4daf02ecfdba66f96d62b12ab9578e9493ad8ea879b2fb085cceee43962ae8 b/scripts/ethereum/snapshot_contracts/!trie_db!0x1a4daf02ecfdba66f96d62b12ab9578e9493ad8ea879b2fb085cceee43962ae8 deleted file mode 100644 index 802a5aa50..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x1a4daf02ecfdba66f96d62b12ab9578e9493ad8ea879b2fb085cceee43962ae8 +++ /dev/null @@ -1 +0,0 @@ -"0xf8f1a0e201e856162e65a1be23db8a0f237e865facbc02ef266cd02c2ebb2b17b48cd4a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a04fdfd84d423d0bc877a23814b350e761a8f2891a4c65baef164937979b4fcaf28080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463a00ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6808080a041db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bda0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xf4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e6 b/scripts/ethereum/snapshot_contracts/!trie_db!0x1d85d9db9c7bd91aa961b639d9f963acbc1edf1361724f8f813b0cd8fbde6718 similarity index 70% rename from scripts/ethereum/snapshot_contracts/!trie_db!0xf4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e6 rename to scripts/ethereum/snapshot_contracts/!trie_db!0x1d85d9db9c7bd91aa961b639d9f963acbc1edf1361724f8f813b0cd8fbde6718 index 48ca56699..4cb85b83d 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xf4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e6 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x1d85d9db9c7bd91aa961b639d9f963acbc1edf1361724f8f813b0cd8fbde6718 @@ -1 +1 @@ -"0xf8699433896ebd3f32092afc7d27e9ef7b67e26c49fb02b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699430690751969b234697e9059e04ed72195c3507fab852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x1e802c79741bbf530d1debd410fdade24f129bbb9bef88f4308cebc6ab42bd9f b/scripts/ethereum/snapshot_contracts/!trie_db!0x1e802c79741bbf530d1debd410fdade24f129bbb9bef88f4308cebc6ab42bd9f new file mode 100644 index 000000000..7568e7294 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x1e802c79741bbf530d1debd410fdade24f129bbb9bef88f4308cebc6ab42bd9f @@ -0,0 +1 @@ +"0xf8f1a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463 b/scripts/ethereum/snapshot_contracts/!trie_db!0x1e956299a7287f997269b67f4be4dd4a70a5946f59fb6149d2dd152778599b20 similarity index 70% rename from scripts/ethereum/snapshot_contracts/!trie_db!0xad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463 rename to scripts/ethereum/snapshot_contracts/!trie_db!0x1e956299a7287f997269b67f4be4dd4a70a5946f59fb6149d2dd152778599b20 index 3644e18ae..d7392428e 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x1e956299a7287f997269b67f4be4dd4a70a5946f59fb6149d2dd152778599b20 @@ -1 +1 @@ -"0xf869943c4b95383a46d30f056ace085d8f453fcf4ed66db852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf869942059b025e3f8b8f76a8120d6d6fd9fba172c80b8b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x1eccb61cb619ddfd7422a12ad8ece0c64494089cd9d0baa8125c09fe3e92494e b/scripts/ethereum/snapshot_contracts/!trie_db!0x1eccb61cb619ddfd7422a12ad8ece0c64494089cd9d0baa8125c09fe3e92494e new file mode 100644 index 000000000..0f4ba88e5 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x1eccb61cb619ddfd7422a12ad8ece0c64494089cd9d0baa8125c09fe3e92494e @@ -0,0 +1 @@ +"0xf90111a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x20526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8 b/scripts/ethereum/snapshot_contracts/!trie_db!0x20526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8 new file mode 100644 index 000000000..3f3f3ba14 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x20526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8 @@ -0,0 +1 @@ +"0xf90131a0940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x25aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec b/scripts/ethereum/snapshot_contracts/!trie_db!0x25aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec new file mode 100644 index 000000000..1a8604686 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x25aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec @@ -0,0 +1 @@ +"0xf851a018cb97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab7180808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x8cb9dea91a59b0d81a1750daaf56d779c16f622a25474910309ec513e7416000 b/scripts/ethereum/snapshot_contracts/!trie_db!0x29a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e similarity index 67% rename from scripts/ethereum/snapshot_contracts/!trie_db!0x8cb9dea91a59b0d81a1750daaf56d779c16f622a25474910309ec513e7416000 rename to scripts/ethereum/snapshot_contracts/!trie_db!0x29a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e index a4cbacb04..e7a6ad18d 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x8cb9dea91a59b0d81a1750daaf56d779c16f622a25474910309ec513e7416000 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x29a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e @@ -1 +1 @@ -"0xf85d943b097e455b7159f902e2eb45562fc397ae6b0f3db846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107" \ No newline at end of file +"0xf85d9436cbc2eaae377f6ac4b73a982cd1125ef4cec96fb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x2d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9 b/scripts/ethereum/snapshot_contracts/!trie_db!0x2d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9 new file mode 100644 index 000000000..38e91bf0b --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x2d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9 @@ -0,0 +1 @@ +"0xf90131a0d0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x2eb5601e1918e2a24320cf4c41b170ded54d3ee7069c25ea974422617ecd903c b/scripts/ethereum/snapshot_contracts/!trie_db!0x2eb5601e1918e2a24320cf4c41b170ded54d3ee7069c25ea974422617ecd903c new file mode 100644 index 000000000..2928135f1 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x2eb5601e1918e2a24320cf4c41b170ded54d3ee7069c25ea974422617ecd903c @@ -0,0 +1 @@ +"0xf8d1a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a01d85d9db9c7bd91aa961b639d9f963acbc1edf1361724f8f813b0cd8fbde67188080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xd452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc14 b/scripts/ethereum/snapshot_contracts/!trie_db!0x2eb96e69faf947be7b62543b8c217ce2946a0b59572cb737d67e78721fb11038 similarity index 70% rename from scripts/ethereum/snapshot_contracts/!trie_db!0xd452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc14 rename to scripts/ethereum/snapshot_contracts/!trie_db!0x2eb96e69faf947be7b62543b8c217ce2946a0b59572cb737d67e78721fb11038 index 1933550dd..525b39b07 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xd452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc14 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x2eb96e69faf947be7b62543b8c217ce2946a0b59572cb737d67e78721fb11038 @@ -1 +1 @@ -"0xf869943a04a8fb90242fb7e1db7d1f51e268a03b7f93a5b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf86994341b401362ea1d489d322579552b099e801f3632b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x2ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6 b/scripts/ethereum/snapshot_contracts/!trie_db!0x2ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6 new file mode 100644 index 000000000..083ef1725 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x2ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6 @@ -0,0 +1 @@ +"0xf85180808080a041d6928c70866fa155a0bdad1f3101bef87c8020dd7f279870309615af5160fd8080808080a09279b68a2d75aee0ef81a490e03ba8dd105ee8ae4840ec72cd5ff17cfcb49d59808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 b/scripts/ethereum/snapshot_contracts/!trie_db!0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 new file mode 100644 index 000000000..fd3079d44 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 @@ -0,0 +1 @@ +"0xf90191a085136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89aca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d80a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x36903054b3da5f576b67a1a91e8ffda92290d5add3a4fb5f36b4578bbdfabf96 b/scripts/ethereum/snapshot_contracts/!trie_db!0x36903054b3da5f576b67a1a91e8ffda92290d5add3a4fb5f36b4578bbdfabf96 new file mode 100644 index 000000000..e84112dfe --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x36903054b3da5f576b67a1a91e8ffda92290d5add3a4fb5f36b4578bbdfabf96 @@ -0,0 +1 @@ +"0xf871a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02eb96e69faf947be7b62543b8c217ce2946a0b59572cb737d67e78721fb110388080808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x3706dbcbfdf9b7785c30e8ec1d1a8c81d7e6ddcb28a157fca25fafe3f7545610 b/scripts/ethereum/snapshot_contracts/!trie_db!0x3706dbcbfdf9b7785c30e8ec1d1a8c81d7e6ddcb28a157fca25fafe3f7545610 new file mode 100644 index 000000000..d668ec865 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x3706dbcbfdf9b7785c30e8ec1d1a8c81d7e6ddcb28a157fca25fafe3f7545610 @@ -0,0 +1 @@ +"0xf90171a048b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0bed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x3842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 b/scripts/ethereum/snapshot_contracts/!trie_db!0x3842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 new file mode 100644 index 000000000..666829dcf --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x3842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 @@ -0,0 +1 @@ +"0xf851a0c17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce1128080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x39962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98 b/scripts/ethereum/snapshot_contracts/!trie_db!0x39962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98 new file mode 100644 index 000000000..e62fb74a9 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x39962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98 @@ -0,0 +1 @@ +"0xf8699439d358a3194d737880b3efd94adccd246af9f535b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x399dc4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 b/scripts/ethereum/snapshot_contracts/!trie_db!0x399dc4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 new file mode 100644 index 000000000..89d15d04d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x399dc4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 @@ -0,0 +1 @@ +"0xf90191a085136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89aca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x3b5ef0bb33a6950c7da03b1e272b3a1dbb656d67f1c07390ee335a44be0a02fe b/scripts/ethereum/snapshot_contracts/!trie_db!0x3b5ef0bb33a6950c7da03b1e272b3a1dbb656d67f1c07390ee335a44be0a02fe deleted file mode 100644 index 3db06d447..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x3b5ef0bb33a6950c7da03b1e272b3a1dbb656d67f1c07390ee335a44be0a02fe +++ /dev/null @@ -1 +0,0 @@ -"0xf8d1a03f567e6a374bddb446e58232c2bfa021d50252d31fa3152925b1344148e323c5a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0d452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc148080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac46380808080a041db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bda0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x3df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 b/scripts/ethereum/snapshot_contracts/!trie_db!0x3df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 new file mode 100644 index 000000000..342ac708a --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x3df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 @@ -0,0 +1 @@ +"0xf851a05242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x3f9a7ad005aa1dbbe3188937dd656235f53b1afc31a41ecc06ea50a59e3ca24a b/scripts/ethereum/snapshot_contracts/!trie_db!0x3f9a7ad005aa1dbbe3188937dd656235f53b1afc31a41ecc06ea50a59e3ca24a deleted file mode 100644 index aca028639..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x3f9a7ad005aa1dbbe3188937dd656235f53b1afc31a41ecc06ea50a59e3ca24a +++ /dev/null @@ -1 +0,0 @@ -"0xf85180808080808080808080808080a02f061a2ab1d16e7324ae14cb207d0e11624d0c6fe7398ad34c2a319fab43775880a0947653df00965e4734868df4cca6f231070662d39a31b0c55174a4960f26a81380" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x3fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 b/scripts/ethereum/snapshot_contracts/!trie_db!0x3fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 new file mode 100644 index 000000000..46048f2c1 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x3fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 @@ -0,0 +1 @@ +"0xf85d9420c27d46a458e2e49dabfef45ca74dedbac3dd06b846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x4096b98ba1e6c9baa8fe3c1ca67b0a1a205d1a0aad3be667953e17b778434254 b/scripts/ethereum/snapshot_contracts/!trie_db!0x4096b98ba1e6c9baa8fe3c1ca67b0a1a205d1a0aad3be667953e17b778434254 deleted file mode 100644 index a9507ebbc..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x4096b98ba1e6c9baa8fe3c1ca67b0a1a205d1a0aad3be667953e17b778434254 +++ /dev/null @@ -1 +0,0 @@ -"0xf8f1a00ae1ef8e50587d99c3784c801d71ce879e7562c39ffd4ef2f8090971ad86e33ba0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0e69b153a9921031b7c31adc26b0f7a6f3500829e1e40ca55ae0cc441b555b5708080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463a00ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6808080a03f9a7ad005aa1dbbe3188937dd656235f53b1afc31a41ecc06ea50a59e3ca24aa0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x41d6928c70866fa155a0bdad1f3101bef87c8020dd7f279870309615af5160fd b/scripts/ethereum/snapshot_contracts/!trie_db!0x41d6928c70866fa155a0bdad1f3101bef87c8020dd7f279870309615af5160fd new file mode 100644 index 000000000..cb712b97b --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x41d6928c70866fa155a0bdad1f3101bef87c8020dd7f279870309615af5160fd @@ -0,0 +1 @@ +"0xf86994201b401362ea1d489d322579552b099e801f3632b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x457a58fb01052e3e436ad2059bbd05add3227aa2c7cb606aaa1d03ada9612bdd b/scripts/ethereum/snapshot_contracts/!trie_db!0x457a58fb01052e3e436ad2059bbd05add3227aa2c7cb606aaa1d03ada9612bdd new file mode 100644 index 000000000..5593ae362 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x457a58fb01052e3e436ad2059bbd05add3227aa2c7cb606aaa1d03ada9612bdd @@ -0,0 +1 @@ +"0xf90151a086d3f4f7bc976ff5a5432d417435391e784b0dafff11087848cb191a4693d0ada0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0bed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745 b/scripts/ethereum/snapshot_contracts/!trie_db!0x486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745 new file mode 100644 index 000000000..240e9f8ef --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745 @@ -0,0 +1 @@ +"0xf871a0fd1fafdc17303649183cf53c21e8d7acf4a093d34415cc57ad395c796197e74e8080a0799410656818b0398592844b9038b028177ab8829d21453bfdea74ba24086d3080808080a0681f3640fb52291d9548892fb163bbd0e36bc8f20a13610b2977d5fe34ed01e68080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x48b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f b/scripts/ethereum/snapshot_contracts/!trie_db!0x48b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f new file mode 100644 index 000000000..a1b60a92b --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x48b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f @@ -0,0 +1 @@ +"0xf851a0e147ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x4a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa0 b/scripts/ethereum/snapshot_contracts/!trie_db!0x4a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa0 new file mode 100644 index 000000000..fba4fb053 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x4a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa0 @@ -0,0 +1 @@ +"0xf851a08b1d528bc401833c92c5b21360fd8ea32ac72cab134501546fa9fa413f9c45fa8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x4b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 b/scripts/ethereum/snapshot_contracts/!trie_db!0x4b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 new file mode 100644 index 000000000..8d73c897e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x4b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 @@ -0,0 +1 @@ +"0xf8518080808080808080808080a03fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41a0ba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa3980808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 b/scripts/ethereum/snapshot_contracts/!trie_db!0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 new file mode 100644 index 000000000..90b152941 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 @@ -0,0 +1 @@ +"0xf90191a025aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1eca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa029a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c237280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x4e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c b/scripts/ethereum/snapshot_contracts/!trie_db!0x4e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c new file mode 100644 index 000000000..d75737933 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x4e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c @@ -0,0 +1 @@ +"0xf8699420d358a3194d737880b3efd94adccd246af9f535b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x50542cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 b/scripts/ethereum/snapshot_contracts/!trie_db!0x50542cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 new file mode 100644 index 000000000..66b8e3337 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x50542cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 @@ -0,0 +1 @@ +"0xf90171a025aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1eca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x50b0418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef b/scripts/ethereum/snapshot_contracts/!trie_db!0x50b0418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef new file mode 100644 index 000000000..2d00a5754 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x50b0418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef @@ -0,0 +1 @@ +"0xf90191a025aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1eca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa029a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xebdcc17000fe2597e8e034f6fc32aa5190b785d30bb450720c80e58b6e6b73d2 b/scripts/ethereum/snapshot_contracts/!trie_db!0x5242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c similarity index 70% rename from scripts/ethereum/snapshot_contracts/!trie_db!0xebdcc17000fe2597e8e034f6fc32aa5190b785d30bb450720c80e58b6e6b73d2 rename to scripts/ethereum/snapshot_contracts/!trie_db!0x5242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c index 14e627e69..af9274f58 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xebdcc17000fe2597e8e034f6fc32aa5190b785d30bb450720c80e58b6e6b73d2 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x5242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c @@ -1 +1 @@ -"0xf869943a04a8fb90242fb7e1db7d1f51e268a03b7f93a5b852f850038c1d14a0219e54822427daf10ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850038c1d14a0219e54822427daf10ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x57a37bd09e335c01506a841a17b6bb1e66fe518f74ab00099c126a7a0c26deaa b/scripts/ethereum/snapshot_contracts/!trie_db!0x57a37bd09e335c01506a841a17b6bb1e66fe518f74ab00099c126a7a0c26deaa deleted file mode 100644 index 619ac1455..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x57a37bd09e335c01506a841a17b6bb1e66fe518f74ab00099c126a7a0c26deaa +++ /dev/null @@ -1 +0,0 @@ -"0xf90111a00ae1ef8e50587d99c3784c801d71ce879e7562c39ffd4ef2f8090971ad86e33ba0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0ebdcc17000fe2597e8e034f6fc32aa5190b785d30bb450720c80e58b6e6b73d28080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463a00ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c68080a08cb9dea91a59b0d81a1750daaf56d779c16f622a25474910309ec513e7416000a03f9a7ad005aa1dbbe3188937dd656235f53b1afc31a41ecc06ea50a59e3ca24aa0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x589930a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 b/scripts/ethereum/snapshot_contracts/!trie_db!0x589930a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 new file mode 100644 index 000000000..48e5f721d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x589930a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 @@ -0,0 +1 @@ +"0xf90191a085136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89aca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c5280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x59c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 b/scripts/ethereum/snapshot_contracts/!trie_db!0x59c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 new file mode 100644 index 000000000..fef1a4267 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x59c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 @@ -0,0 +1 @@ +"0xf85d9420cbc2eaae377f6ac4b73a982cd1125ef4cec96fb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x5c4eef8d94e0ede9983a00e44953920d676a404fe0fb15fddf937316551daa92 b/scripts/ethereum/snapshot_contracts/!trie_db!0x5c4eef8d94e0ede9983a00e44953920d676a404fe0fb15fddf937316551daa92 new file mode 100644 index 000000000..d17115d5f --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x5c4eef8d94e0ede9983a00e44953920d676a404fe0fb15fddf937316551daa92 @@ -0,0 +1 @@ +"0xf869943d589b43793934ef6ad266067a0d1d4896b0dff0b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x5e679ecae9c906dce09ad88f4955b82c4ebe5aec7229f9042c5f0cfa6a41263f b/scripts/ethereum/snapshot_contracts/!trie_db!0x5e679ecae9c906dce09ad88f4955b82c4ebe5aec7229f9042c5f0cfa6a41263f deleted file mode 100644 index 23c6250b7..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x5e679ecae9c906dce09ad88f4955b82c4ebe5aec7229f9042c5f0cfa6a41263f +++ /dev/null @@ -1 +0,0 @@ -"0xf8f1a00ae1ef8e50587d99c3784c801d71ce879e7562c39ffd4ef2f8090971ad86e33ba0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0ebdcc17000fe2597e8e034f6fc32aa5190b785d30bb450720c80e58b6e6b73d28080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463a00ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6808080a03f9a7ad005aa1dbbe3188937dd656235f53b1afc31a41ecc06ea50a59e3ca24aa0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x5f50f44097a56b860d951f44cc4ff6fab884dbe90efd4974090c82afeafb1cab b/scripts/ethereum/snapshot_contracts/!trie_db!0x5f50f44097a56b860d951f44cc4ff6fab884dbe90efd4974090c82afeafb1cab new file mode 100644 index 000000000..9ba4cf8a6 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x5f50f44097a56b860d951f44cc4ff6fab884dbe90efd4974090c82afeafb1cab @@ -0,0 +1 @@ +"0xf851a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080808080808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x5f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f b/scripts/ethereum/snapshot_contracts/!trie_db!0x5f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f new file mode 100644 index 000000000..28e6ee37e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x5f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f @@ -0,0 +1 @@ +"0xf59310000000000000000000000000000000000000a0af9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x6050802067aa11ccb60a40ee3f020734a775d058e3b062a4195c0c3a501f41e5 b/scripts/ethereum/snapshot_contracts/!trie_db!0x6050802067aa11ccb60a40ee3f020734a775d058e3b062a4195c0c3a501f41e5 deleted file mode 100644 index 30422af5b..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x6050802067aa11ccb60a40ee3f020734a775d058e3b062a4195c0c3a501f41e5 +++ /dev/null @@ -1 +0,0 @@ -"0xf871a03f567e6a374bddb446e58232c2bfa021d50252d31fa3152925b1344148e323c5a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0d452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc148080808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d b/scripts/ethereum/snapshot_contracts/!trie_db!0x642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d new file mode 100644 index 000000000..2d4fdbb8a --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d @@ -0,0 +1 @@ +"0xf851a0727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x681f3640fb52291d9548892fb163bbd0e36bc8f20a13610b2977d5fe34ed01e6 b/scripts/ethereum/snapshot_contracts/!trie_db!0x681f3640fb52291d9548892fb163bbd0e36bc8f20a13610b2977d5fe34ed01e6 new file mode 100644 index 000000000..c91c0edb5 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x681f3640fb52291d9548892fb163bbd0e36bc8f20a13610b2977d5fe34ed01e6 @@ -0,0 +1 @@ +"0xf869942082ebf439207a70ddccb39e13ca8506c9f45fd9b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x6c87d8647ca3a248185a1c8474cf3f088c6d4ae06ffa9994aca569f959f79263 b/scripts/ethereum/snapshot_contracts/!trie_db!0x6c87d8647ca3a248185a1c8474cf3f088c6d4ae06ffa9994aca569f959f79263 deleted file mode 100644 index 150877d00..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x6c87d8647ca3a248185a1c8474cf3f088c6d4ae06ffa9994aca569f959f79263 +++ /dev/null @@ -1 +0,0 @@ -"0xf8f1a0e201e856162e65a1be23db8a0f237e865facbc02ef266cd02c2ebb2b17b48cd4a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0e69b153a9921031b7c31adc26b0f7a6f3500829e1e40ca55ae0cc441b555b5708080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463a00ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6808080a03f9a7ad005aa1dbbe3188937dd656235f53b1afc31a41ecc06ea50a59e3ca24aa0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x0ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6 b/scripts/ethereum/snapshot_contracts/!trie_db!0x6e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 similarity index 67% rename from scripts/ethereum/snapshot_contracts/!trie_db!0x0ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6 rename to scripts/ethereum/snapshot_contracts/!trie_db!0x6e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 index 81be228f7..ac01cfa35 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x0ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x6e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 @@ -1 +1 @@ -"0xf85d943db7bff788522dbe8fa2e8cbd568a58c471ccd5eb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a07dcd1b9d98f5ae1e90577b771860eb7a3efe1228557238cf41b21b9760b85917" \ No newline at end of file +"0xf85d9420caf6968aec8a3b5126fbfab5fd419da6e8ad8eb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a07dcd1b9d98f5ae1e90577b771860eb7a3efe1228557238cf41b21b9760b85917" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x6fb4b76878a46e56d0f51066584e1f26e36b64d0efbde54fe4771830fff2a52b b/scripts/ethereum/snapshot_contracts/!trie_db!0x6fb4b76878a46e56d0f51066584e1f26e36b64d0efbde54fe4771830fff2a52b deleted file mode 100644 index 51209640b..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x6fb4b76878a46e56d0f51066584e1f26e36b64d0efbde54fe4771830fff2a52b +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0a49e5e9907e29d055cc24e4003c2f3f82885d61cf5385a331bc1cd48b35698ca80808080808080808080808080a04acd48b7145b7aa9b7d86b74ab7407e8d403aa786cedf3226266a587ff28336d8080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a b/scripts/ethereum/snapshot_contracts/!trie_db!0x703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a new file mode 100644 index 000000000..4bbd6f93c --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a @@ -0,0 +1 @@ +"0xf59310000000000000000000000000000000000000a02d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x2f061a2ab1d16e7324ae14cb207d0e11624d0c6fe7398ad34c2a319fab437758 b/scripts/ethereum/snapshot_contracts/!trie_db!0x71868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 similarity index 67% rename from scripts/ethereum/snapshot_contracts/!trie_db!0x2f061a2ab1d16e7324ae14cb207d0e11624d0c6fe7398ad34c2a319fab437758 rename to scripts/ethereum/snapshot_contracts/!trie_db!0x71868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 index 3f16077c2..895ac7389 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x2f061a2ab1d16e7324ae14cb207d0e11624d0c6fe7398ad34c2a319fab437758 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x71868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 @@ -1 +1 @@ -"0xf85d942041b0069256a28972458199a3c9cf036384c156b846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a09559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36" \ No newline at end of file +"0xf85d9420d57c0324284102a757153e18f2cb1acdb7d2bdb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a09559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e b/scripts/ethereum/snapshot_contracts/!trie_db!0x727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e new file mode 100644 index 000000000..b5a0aa794 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e @@ -0,0 +1 @@ +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850068c1d14a0219e54822427b5e21ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x7323bf10d26b53b69b0edc96e5f38a5bfeea507af8555825608ca0e502587a59 b/scripts/ethereum/snapshot_contracts/!trie_db!0x7323bf10d26b53b69b0edc96e5f38a5bfeea507af8555825608ca0e502587a59 new file mode 100644 index 000000000..bf57a4dfb --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x7323bf10d26b53b69b0edc96e5f38a5bfeea507af8555825608ca0e502587a59 @@ -0,0 +1 @@ +"0xf86893380972a4b216906f05d67eeaaf55d16b5ee4f1b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x74d025ecf7ffd9a59a331a767b83a7794475cdec720d3ae81e1cbfb175f4eeac b/scripts/ethereum/snapshot_contracts/!trie_db!0x74d025ecf7ffd9a59a331a767b83a7794475cdec720d3ae81e1cbfb175f4eeac deleted file mode 100644 index b410c92c8..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x74d025ecf7ffd9a59a331a767b83a7794475cdec720d3ae81e1cbfb175f4eeac +++ /dev/null @@ -1 +0,0 @@ -"0xf891a03f567e6a374bddb446e58232c2bfa021d50252d31fa3152925b1344148e323c5a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0d452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc148080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac4638080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x76ee24db42a082250df1b9213f20514e600b951ff72eba2a99ce13d3431cee62 b/scripts/ethereum/snapshot_contracts/!trie_db!0x76ee24db42a082250df1b9213f20514e600b951ff72eba2a99ce13d3431cee62 new file mode 100644 index 000000000..7a6a0e3ce --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x76ee24db42a082250df1b9213f20514e600b951ff72eba2a99ce13d3431cee62 @@ -0,0 +1 @@ +"0xf90151a048b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0bed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x799410656818b0398592844b9038b028177ab8829d21453bfdea74ba24086d30 b/scripts/ethereum/snapshot_contracts/!trie_db!0x799410656818b0398592844b9038b028177ab8829d21453bfdea74ba24086d30 new file mode 100644 index 000000000..231d767ca --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x799410656818b0398592844b9038b028177ab8829d21453bfdea74ba24086d30 @@ -0,0 +1 @@ +"0xf8699420896ebd3f32092afc7d27e9ef7b67e26c49fb02b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x7acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d613 b/scripts/ethereum/snapshot_contracts/!trie_db!0x7acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d613 new file mode 100644 index 000000000..6d681a098 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x7acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d613 @@ -0,0 +1 @@ +"0xf85d943550a85877002f79db46b01672b5f86f1037cb7cb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a09559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x7d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6d b/scripts/ethereum/snapshot_contracts/!trie_db!0x7d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6d new file mode 100644 index 000000000..05a79ccce --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x7d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6d @@ -0,0 +1 @@ +"0xf851a0b6328ec399bdcfbb11f1d719ca2f314dd2309f23a3d68e78ddf8f0189983778d80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x7e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 b/scripts/ethereum/snapshot_contracts/!trie_db!0x7e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 new file mode 100644 index 000000000..1ebd32fcc --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x7e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 @@ -0,0 +1 @@ +"0xf851a05f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x7f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de b/scripts/ethereum/snapshot_contracts/!trie_db!0x7f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de new file mode 100644 index 000000000..a8dd43078 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x7f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de @@ -0,0 +1 @@ +"0xf85120b84ef84c80888ac723048a1d7bdca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x8051d324b5db3a61a3752415879aaf8b399279d7641fbdcf21b3d166b53af23f b/scripts/ethereum/snapshot_contracts/!trie_db!0x8051d324b5db3a61a3752415879aaf8b399279d7641fbdcf21b3d166b53af23f new file mode 100644 index 000000000..21563f5ae --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x8051d324b5db3a61a3752415879aaf8b399279d7641fbdcf21b3d166b53af23f @@ -0,0 +1 @@ +"0xf90131a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0c1e84b1ced1f6a5739782f01d0fb7e534a949d6d9207cb292737f070193694698080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x827916ff8cdb07ac9b2599b0521816d63b9f89e0a1547c60a60b6c422a5db363 b/scripts/ethereum/snapshot_contracts/!trie_db!0x827916ff8cdb07ac9b2599b0521816d63b9f89e0a1547c60a60b6c422a5db363 deleted file mode 100644 index 70013b229..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x827916ff8cdb07ac9b2599b0521816d63b9f89e0a1547c60a60b6c422a5db363 +++ /dev/null @@ -1 +0,0 @@ -"0xf8f1a0e201e856162e65a1be23db8a0f237e865facbc02ef266cd02c2ebb2b17b48cd4a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0e69b153a9921031b7c31adc26b0f7a6f3500829e1e40ca55ae0cc441b555b5708080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463a00ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6808080a041db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bda0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x85136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac b/scripts/ethereum/snapshot_contracts/!trie_db!0x85136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac new file mode 100644 index 000000000..fc61c0c89 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x85136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac @@ -0,0 +1 @@ +"0xf851a0703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x86d3f4f7bc976ff5a5432d417435391e784b0dafff11087848cb191a4693d0ad b/scripts/ethereum/snapshot_contracts/!trie_db!0x86d3f4f7bc976ff5a5432d417435391e784b0dafff11087848cb191a4693d0ad new file mode 100644 index 000000000..01c5e0342 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x86d3f4f7bc976ff5a5432d417435391e784b0dafff11087848cb191a4693d0ad @@ -0,0 +1 @@ +"0xf851a0a49e5e9907e29d055cc24e4003c2f3f82885d61cf5385a331bc1cd48b35698ca80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x877429afba42d3a418fe4f353ac45024443c1741e9d3cb08fc5ddb7099562a31 b/scripts/ethereum/snapshot_contracts/!trie_db!0x877429afba42d3a418fe4f353ac45024443c1741e9d3cb08fc5ddb7099562a31 new file mode 100644 index 000000000..bef0ec735 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x877429afba42d3a418fe4f353ac45024443c1741e9d3cb08fc5ddb7099562a31 @@ -0,0 +1 @@ +"0xf90131a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde77458080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a b/scripts/ethereum/snapshot_contracts/!trie_db!0x893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a new file mode 100644 index 000000000..5afb192f1 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a @@ -0,0 +1 @@ +"0xf8699433f583aec5f7c030722fe992a5688557e1b86ef7b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x8b1d528bc401833c92c5b21360fd8ea32ac72cab134501546fa9fa413f9c45fa b/scripts/ethereum/snapshot_contracts/!trie_db!0x8b1d528bc401833c92c5b21360fd8ea32ac72cab134501546fa9fa413f9c45fa new file mode 100644 index 000000000..496623a84 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x8b1d528bc401833c92c5b21360fd8ea32ac72cab134501546fa9fa413f9c45fa @@ -0,0 +1 @@ +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 b/scripts/ethereum/snapshot_contracts/!trie_db!0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 new file mode 100644 index 000000000..aa6f9ef36 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 @@ -0,0 +1 @@ +"0xf90191a07e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c5280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x8f9d7412af1a85fd41643ffb348187182eba9155c2f04a0b60325ae915e49209 b/scripts/ethereum/snapshot_contracts/!trie_db!0x8f9d7412af1a85fd41643ffb348187182eba9155c2f04a0b60325ae915e49209 new file mode 100644 index 000000000..5a91bcaf2 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x8f9d7412af1a85fd41643ffb348187182eba9155c2f04a0b60325ae915e49209 @@ -0,0 +1 @@ +"0xf90151a086d3f4f7bc976ff5a5432d417435391e784b0dafff11087848cb191a4693d0ada0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x902a11365a2fd42f196f80d5804b6c26e17ad346744c5c74aca8738dec1a7dd4 b/scripts/ethereum/snapshot_contracts/!trie_db!0x902a11365a2fd42f196f80d5804b6c26e17ad346744c5c74aca8738dec1a7dd4 deleted file mode 100644 index f3fe3fd77..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x902a11365a2fd42f196f80d5804b6c26e17ad346744c5c74aca8738dec1a7dd4 +++ /dev/null @@ -1 +0,0 @@ -"0xf8d1a06fb4b76878a46e56d0f51066584e1f26e36b64d0efbde54fe4771830fff2a52ba0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0d452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc148080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac46380808080a041db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bda0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x918e53013dd9a17de88b920978e6570a10ececa71f79baf191078dce46dd225d b/scripts/ethereum/snapshot_contracts/!trie_db!0x918e53013dd9a17de88b920978e6570a10ececa71f79baf191078dce46dd225d deleted file mode 100644 index d332196fb..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x918e53013dd9a17de88b920978e6570a10ececa71f79baf191078dce46dd225d +++ /dev/null @@ -1 +0,0 @@ -"0xf8b1a03f567e6a374bddb446e58232c2bfa021d50252d31fa3152925b1344148e323c5a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a0d452a4e8a52149ab093a062f1e0ab8ca99b6a3475f812e0304bfa6b45c27dc148080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac46380808080a041db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bd808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x9279b68a2d75aee0ef81a490e03ba8dd105ee8ae4840ec72cd5ff17cfcb49d59 b/scripts/ethereum/snapshot_contracts/!trie_db!0x9279b68a2d75aee0ef81a490e03ba8dd105ee8ae4840ec72cd5ff17cfcb49d59 new file mode 100644 index 000000000..71e8d1a38 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x9279b68a2d75aee0ef81a490e03ba8dd105ee8ae4840ec72cd5ff17cfcb49d59 @@ -0,0 +1 @@ +"0xf869942004a8fb90242fb7e1db7d1f51e268a03b7f93a5b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 b/scripts/ethereum/snapshot_contracts/!trie_db!0x940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 new file mode 100644 index 000000000..1b74a49d4 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 @@ -0,0 +1 @@ +"0xf85120b84ef84c80886f05b59d3b4ec1a5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c b/scripts/ethereum/snapshot_contracts/!trie_db!0x950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c new file mode 100644 index 000000000..768b6edad --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c @@ -0,0 +1 @@ +"0xf851a0eae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb22980808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x95d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f3803 b/scripts/ethereum/snapshot_contracts/!trie_db!0x95d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f3803 new file mode 100644 index 000000000..bda6a4d77 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x95d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f3803 @@ -0,0 +1 @@ +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850048c1d14a0219e54822427d13e5ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 b/scripts/ethereum/snapshot_contracts/!trie_db!0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 new file mode 100644 index 000000000..f5a5169f6 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 @@ -0,0 +1 @@ +"0xf90191a0950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2ca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0cd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf135380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x9a15567fe9e5a36d69771fad2482cae5904bbd6462d7979f71e57593b1c136ed b/scripts/ethereum/snapshot_contracts/!trie_db!0x9a15567fe9e5a36d69771fad2482cae5904bbd6462d7979f71e57593b1c136ed new file mode 100644 index 000000000..81fcea85e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0x9a15567fe9e5a36d69771fad2482cae5904bbd6462d7979f71e57593b1c136ed @@ -0,0 +1 @@ +"0xf891a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f21980808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xa12d3ecec0bf1c2e67532ba6074aaadb8c11bbd040d765b1a4e960363cd30392 b/scripts/ethereum/snapshot_contracts/!trie_db!0xa12d3ecec0bf1c2e67532ba6074aaadb8c11bbd040d765b1a4e960363cd30392 new file mode 100644 index 000000000..01ecf7474 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xa12d3ecec0bf1c2e67532ba6074aaadb8c11bbd040d765b1a4e960363cd30392 @@ -0,0 +1 @@ +"0xf8d1a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa08080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xa926e8adef8935ac2d0555689f6fe356012bedd909b5654bbf84eae5b55c7209 b/scripts/ethereum/snapshot_contracts/!trie_db!0xa926e8adef8935ac2d0555689f6fe356012bedd909b5654bbf84eae5b55c7209 new file mode 100644 index 000000000..93b60b455 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xa926e8adef8935ac2d0555689f6fe356012bedd909b5654bbf84eae5b55c7209 @@ -0,0 +1 @@ +"0xf851a0fd1fafdc17303649183cf53c21e8d7acf4a093d34415cc57ad395c796197e74e8080a0799410656818b0398592844b9038b028177ab8829d21453bfdea74ba24086d3080808080808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b b/scripts/ethereum/snapshot_contracts/!trie_db!0xab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b new file mode 100644 index 000000000..d7e351566 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b @@ -0,0 +1 @@ +"0xf851808080808080808080a04e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c808080a071868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xaf9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 b/scripts/ethereum/snapshot_contracts/!trie_db!0xaf9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 new file mode 100644 index 000000000..b1047cf1d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xaf9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 @@ -0,0 +1 @@ +"0xf90131a07f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29dea05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xafacafabeecb5e9f771bae6d7eb34134ca25280edb9bc0351a00b99b5083ba9d b/scripts/ethereum/snapshot_contracts/!trie_db!0xafacafabeecb5e9f771bae6d7eb34134ca25280edb9bc0351a00b99b5083ba9d new file mode 100644 index 000000000..9689a7c48 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xafacafabeecb5e9f771bae6d7eb34134ca25280edb9bc0351a00b99b5083ba9d @@ -0,0 +1 @@ +"0xf90131a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0a926e8adef8935ac2d0555689f6fe356012bedd909b5654bbf84eae5b55c72098080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xafdfb0b9b4b28607606c22a11b23dd9164696b5a29d09d2237b4a434713db92d b/scripts/ethereum/snapshot_contracts/!trie_db!0xafdfb0b9b4b28607606c22a11b23dd9164696b5a29d09d2237b4a434713db92d deleted file mode 100644 index ae2ecad22..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xafdfb0b9b4b28607606c22a11b23dd9164696b5a29d09d2237b4a434713db92d +++ /dev/null @@ -1 +0,0 @@ -"0xf8f1a06fb4b76878a46e56d0f51066584e1f26e36b64d0efbde54fe4771830fff2a52ba0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a04fdfd84d423d0bc877a23814b350e761a8f2891a4c65baef164937979b4fcaf28080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac463a00ca279cb23a022e385ab2e4e797f9d48606bbed50d595077c0a449535fb507c6808080a041db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bda0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xb37a950d996fbb3a709e8756992bd6629c5c1d7c8b0a509b03f10c7d9fb9aa09 b/scripts/ethereum/snapshot_contracts/!trie_db!0xb37a950d996fbb3a709e8756992bd6629c5c1d7c8b0a509b03f10c7d9fb9aa09 deleted file mode 100644 index 87b410127..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xb37a950d996fbb3a709e8756992bd6629c5c1d7c8b0a509b03f10c7d9fb9aa09 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a03f567e6a374bddb446e58232c2bfa021d50252d31fa3152925b1344148e323c5a0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080808080808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xb6cb55546b51c2273e73d5f75c1e2103238a370a2e602ced83238d056d408ae7 b/scripts/ethereum/snapshot_contracts/!trie_db!0xb6cb55546b51c2273e73d5f75c1e2103238a370a2e602ced83238d056d408ae7 deleted file mode 100644 index 66837cc6e..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xb6cb55546b51c2273e73d5f75c1e2103238a370a2e602ced83238d056d408ae7 +++ /dev/null @@ -1 +0,0 @@ -"0xf8d1a06fb4b76878a46e56d0f51066584e1f26e36b64d0efbde54fe4771830fff2a52ba0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a04fdfd84d423d0bc877a23814b350e761a8f2891a4c65baef164937979b4fcaf28080a0ad1d0879d981a76fe96848ab49aed3ee66632d77f259ca4057549f4345cac46380808080a041db49fbae022dace265d06948d1b56b41d6f178eaa4278b3db5f784ae6cb1bda0f4a703f0b1827d0e0f5c2d4dad0af2e11062276873585505e4238436ce2195e68080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 b/scripts/ethereum/snapshot_contracts/!trie_db!0xba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 new file mode 100644 index 000000000..998b4b8a5 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 @@ -0,0 +1 @@ +"0xf8699420bada2d5830d1875ae3d2de207a1363b316df2fb852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xbd20e3a59ec4f5b22157fba0d1538788a6e75592ba0d9d0a6054e4ac84c6b06a b/scripts/ethereum/snapshot_contracts/!trie_db!0xbd20e3a59ec4f5b22157fba0d1538788a6e75592ba0d9d0a6054e4ac84c6b06a new file mode 100644 index 000000000..e214b2590 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xbd20e3a59ec4f5b22157fba0d1538788a6e75592ba0d9d0a6054e4ac84c6b06a @@ -0,0 +1 @@ +"0xf85d9420a28f2bfbffdf5842657235cc058242f40fdea6b846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a07dcd1b9d98f5ae1e90577b771860eb7a3efe1228557238cf41b21b9760b85917" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xbed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b3 b/scripts/ethereum/snapshot_contracts/!trie_db!0xbed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b3 new file mode 100644 index 000000000..26cccccac --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xbed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b3 @@ -0,0 +1 @@ +"0xf851a0c1f06abdf0215cd997b6af23c4102f4e69ef24e50076dadc16a3e72185b26b4a8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xc130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219 b/scripts/ethereum/snapshot_contracts/!trie_db!0xc130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219 new file mode 100644 index 000000000..9d3e41e28 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219 @@ -0,0 +1 @@ +"0xf869943b83e7d6b72c098d48968441e0d05658dc17adb9b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xe69b153a9921031b7c31adc26b0f7a6f3500829e1e40ca55ae0cc441b555b570 b/scripts/ethereum/snapshot_contracts/!trie_db!0xc17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce112 similarity index 70% rename from scripts/ethereum/snapshot_contracts/!trie_db!0xe69b153a9921031b7c31adc26b0f7a6f3500829e1e40ca55ae0cc441b555b570 rename to scripts/ethereum/snapshot_contracts/!trie_db!0xc17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce112 index 3df07eb62..743b4b2c4 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xe69b153a9921031b7c31adc26b0f7a6f3500829e1e40ca55ae0cc441b555b570 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce112 @@ -1 +1 @@ -"0xf869943a04a8fb90242fb7e1db7d1f51e268a03b7f93a5b852f850028c1d14a0219e54822427ef9316a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850028c1d14a0219e54822427ef9316a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xc1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 b/scripts/ethereum/snapshot_contracts/!trie_db!0xc1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 new file mode 100644 index 000000000..6daaa233a --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 @@ -0,0 +1 @@ +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850058c1d14a0219e54822427ca8424a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xc1e84b1ced1f6a5739782f01d0fb7e534a949d6d9207cb292737f07019369469 b/scripts/ethereum/snapshot_contracts/!trie_db!0xc1e84b1ced1f6a5739782f01d0fb7e534a949d6d9207cb292737f07019369469 new file mode 100644 index 000000000..21eca8398 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc1e84b1ced1f6a5739782f01d0fb7e534a949d6d9207cb292737f07019369469 @@ -0,0 +1 @@ +"0xf869943061e1eb461eabe512759aa18a201b20fe90631db852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0x4fdfd84d423d0bc877a23814b350e761a8f2891a4c65baef164937979b4fcaf2 b/scripts/ethereum/snapshot_contracts/!trie_db!0xc1f06abdf0215cd997b6af23c4102f4e69ef24e50076dadc16a3e72185b26b4a similarity index 70% rename from scripts/ethereum/snapshot_contracts/!trie_db!0x4fdfd84d423d0bc877a23814b350e761a8f2891a4c65baef164937979b4fcaf2 rename to scripts/ethereum/snapshot_contracts/!trie_db!0xc1f06abdf0215cd997b6af23c4102f4e69ef24e50076dadc16a3e72185b26b4a index 90e2fd8d6..33d2c4093 100644 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0x4fdfd84d423d0bc877a23814b350e761a8f2891a4c65baef164937979b4fcaf2 +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc1f06abdf0215cd997b6af23c4102f4e69ef24e50076dadc16a3e72185b26b4a @@ -1 +1 @@ -"0xf869943a04a8fb90242fb7e1db7d1f51e268a03b7f93a5b852f850018c1d14a0219e54822427f64d4da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850018c1d14a0219e54822427f64d4da056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xc7eb3855d51b2af45536e5d2def376867f85b6c3b9f661dce266bc8704fc0fbc b/scripts/ethereum/snapshot_contracts/!trie_db!0xc7eb3855d51b2af45536e5d2def376867f85b6c3b9f661dce266bc8704fc0fbc new file mode 100644 index 000000000..55d61b25e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc7eb3855d51b2af45536e5d2def376867f85b6c3b9f661dce266bc8704fc0fbc @@ -0,0 +1 @@ +"0xe210a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6d" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xc7f7274e7b08e74ef6cb683a5672841d4d4a558029869773a5c66e8f1ef024ee b/scripts/ethereum/snapshot_contracts/!trie_db!0xc7f7274e7b08e74ef6cb683a5672841d4d4a558029869773a5c66e8f1ef024ee new file mode 100644 index 000000000..8ebd1724d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc7f7274e7b08e74ef6cb683a5672841d4d4a558029869773a5c66e8f1ef024ee @@ -0,0 +1 @@ +"0xf8689335891a570af9e5a962f181c219468a6c9eb4e1b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e b/scripts/ethereum/snapshot_contracts/!trie_db!0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e new file mode 100644 index 000000000..a4e77c5b0 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e @@ -0,0 +1 @@ +"0xf90171a048b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xcd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 b/scripts/ethereum/snapshot_contracts/!trie_db!0xcd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 new file mode 100644 index 000000000..5f1f01344 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xcd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 @@ -0,0 +1 @@ +"0xf851a095d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f38038080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xceda4c757ca8cd81688985a199baba371ccfadb89020a77764e25fbe3f93f2ed b/scripts/ethereum/snapshot_contracts/!trie_db!0xceda4c757ca8cd81688985a199baba371ccfadb89020a77764e25fbe3f93f2ed new file mode 100644 index 000000000..d12d47a10 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xceda4c757ca8cd81688985a199baba371ccfadb89020a77764e25fbe3f93f2ed @@ -0,0 +1 @@ +"0xf871a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c68080808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xcfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca b/scripts/ethereum/snapshot_contracts/!trie_db!0xcfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca new file mode 100644 index 000000000..95b0327bc --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xcfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca @@ -0,0 +1 @@ +"0xf869943cbada2d5830d1875ae3d2de207a1363b316df2fb852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xd0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 b/scripts/ethereum/snapshot_contracts/!trie_db!0xd0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 new file mode 100644 index 000000000..52156a410 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xd0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 @@ -0,0 +1 @@ +"0xf85120b84ef84c8088a688906bd8fa1de4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xd14b6255465f64a3da0c938fb019f0282fc6dee1fff9a9d9fabd7bece08f96f1 b/scripts/ethereum/snapshot_contracts/!trie_db!0xd14b6255465f64a3da0c938fb019f0282fc6dee1fff9a9d9fabd7bece08f96f1 new file mode 100644 index 000000000..731f4366d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xd14b6255465f64a3da0c938fb019f0282fc6dee1fff9a9d9fabd7bece08f96f1 @@ -0,0 +1 @@ +"0xf8b1a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98808080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xd6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f b/scripts/ethereum/snapshot_contracts/!trie_db!0xd6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f new file mode 100644 index 000000000..6ba2fb37e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xd6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f @@ -0,0 +1 @@ +"0xf86994204b95383a46d30f056ace085d8f453fcf4ed66db852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xd75ec380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a b/scripts/ethereum/snapshot_contracts/!trie_db!0xd75ec380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a new file mode 100644 index 000000000..fb49b85c4 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xd75ec380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a @@ -0,0 +1 @@ +"0xf90191a0950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2ca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa029a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c237280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xe201e856162e65a1be23db8a0f237e865facbc02ef266cd02c2ebb2b17b48cd4 b/scripts/ethereum/snapshot_contracts/!trie_db!0xe201e856162e65a1be23db8a0f237e865facbc02ef266cd02c2ebb2b17b48cd4 deleted file mode 100644 index de950884e..000000000 --- a/scripts/ethereum/snapshot_contracts/!trie_db!0xe201e856162e65a1be23db8a0f237e865facbc02ef266cd02c2ebb2b17b48cd4 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0e147ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b80808080808080808080808080a04acd48b7145b7aa9b7d86b74ab7407e8d403aa786cedf3226266a587ff28336d8080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xe544b89bac09c69fd0920504dff9b26411caf0323a7bbb44c190ce7ff6da3357 b/scripts/ethereum/snapshot_contracts/!trie_db!0xe544b89bac09c69fd0920504dff9b26411caf0323a7bbb44c190ce7ff6da3357 new file mode 100644 index 000000000..de5175374 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xe544b89bac09c69fd0920504dff9b26411caf0323a7bbb44c190ce7ff6da3357 @@ -0,0 +1 @@ +"0xf90151a086d3f4f7bc976ff5a5432d417435391e784b0dafff11087848cb191a4693d0ada0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xe93f5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 b/scripts/ethereum/snapshot_contracts/!trie_db!0xe93f5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 new file mode 100644 index 000000000..1ef150227 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xe93f5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 @@ -0,0 +1 @@ +"0xf90191a07e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0cd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf135380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xeae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 b/scripts/ethereum/snapshot_contracts/!trie_db!0xeae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 new file mode 100644 index 000000000..9c0915cc0 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xeae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 @@ -0,0 +1 @@ +"0xf59310000000000000000000000000000000000000a020526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xeb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278 b/scripts/ethereum/snapshot_contracts/!trie_db!0xeb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278 new file mode 100644 index 000000000..504c205f5 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xeb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278 @@ -0,0 +1 @@ +"0xf85180808080808080808080808080a002782737994a149b90b005a67ef4448abb4181af6980c89dba723cbf8d119b2580a0947653df00965e4734868df4cca6f231070662d39a31b0c55174a4960f26a81380" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xf17d0f681aab819c929b08f47cf3994440fdcdcbf18916e78faaf0119fe98db4 b/scripts/ethereum/snapshot_contracts/!trie_db!0xf17d0f681aab819c929b08f47cf3994440fdcdcbf18916e78faaf0119fe98db4 new file mode 100644 index 000000000..0f8a34d49 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xf17d0f681aab819c929b08f47cf3994440fdcdcbf18916e78faaf0119fe98db4 @@ -0,0 +1 @@ +"0xf90151a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xf391cee2e28a4ec4a37c69f9b4ee68ac8588079d2139793901f33839a0df4b16 b/scripts/ethereum/snapshot_contracts/!trie_db!0xf391cee2e28a4ec4a37c69f9b4ee68ac8588079d2139793901f33839a0df4b16 new file mode 100644 index 000000000..0bb68b742 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xf391cee2e28a4ec4a37c69f9b4ee68ac8588079d2139793901f33839a0df4b16 @@ -0,0 +1 @@ +"0xf90111a07d8e3d7ce0b06c506436e428381703762d9a85a914d27f2eeebd914942fc0d6da0745d0b4f77ec1a0d29430541b32b6488fae3d358b528b25ff17cccc72f2ee830808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a04a849cb7901d578d848892e09b10e220bd3a7b9f0fee983dbaf8e44ee8926aa080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a05c4eef8d94e0ede9983a00e44953920d676a404fe0fb15fddf937316551daa92808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts/!trie_db!0xfd1fafdc17303649183cf53c21e8d7acf4a093d34415cc57ad395c796197e74e b/scripts/ethereum/snapshot_contracts/!trie_db!0xfd1fafdc17303649183cf53c21e8d7acf4a093d34415cc57ad395c796197e74e new file mode 100644 index 000000000..9ddc9ee9f --- /dev/null +++ b/scripts/ethereum/snapshot_contracts/!trie_db!0xfd1fafdc17303649183cf53c21e8d7acf4a093d34415cc57ad395c796197e74e @@ -0,0 +1 @@ +"0xf869942061e1eb461eabe512759aa18a201b20fe90631db852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/sentry/Cargo.toml b/sentry/Cargo.toml index ccfbb8299..7ed5bc51b 100644 --- a/sentry/Cargo.toml +++ b/sentry/Cargo.toml @@ -10,7 +10,7 @@ edition = "2021" [features] -test-util = [] +test-util = ["primitives/test-util"] [dependencies] # Futures @@ -27,14 +27,26 @@ hex = "0.4" clap = "^2.33" # Server tokio = { version = "1", features = ["macros", "time", "rt-multi-thread"] } -hyper = { version = "0.14", features = ["stream", "runtime", "http1", "server"] } +hyper = { version = "0.14", features = [ + "stream", + "runtime", + "http1", + "server", +] } regex = "1" # Database redis = { version = "0.20", features = ["aio", "tokio-comp"] } deadpool = "0.8.0" deadpool-postgres = "0.9.0" -tokio-postgres = { version = "0.7.0", features = ["with-chrono-0_4", "with-serde_json-1"] } -postgres-types = { version = "0.2.1", features = ["derive", "with-chrono-0_4", "with-serde_json-1"] } +tokio-postgres = { version = "0.7.0", features = [ + "with-chrono-0_4", + "with-serde_json-1", +] } +postgres-types = { version = "0.2.1", features = [ + "derive", + "with-chrono-0_4", + "with-serde_json-1", +] } # Migrations migrant_lib = { version = "^0.32", features = ["d-postgres"] } diff --git a/sentry/src/access.rs b/sentry/src/access.rs index e02c34386..477e72c2d 100644 --- a/sentry/src/access.rs +++ b/sentry/src/access.rs @@ -360,222 +360,6 @@ mod test { assert_eq!(Err(Error::CampaignIsExpired), err_response); } - // #[tokio::test] - // async fn check_access_close_event_in_withdraw_period() { - // let (config, database) = setup().await; - - // let auth = Auth { - // era: 0, - // uid: IDS["follower"], - // }; - - // let session = Session { - // ip: Default::default(), - // referrer_header: None, - // country: None, - // os: None, - // }; - - // let rule = Rule { - // uids: None, - // rate_limit: Some(RateLimit { - // limit_type: "ip".to_string(), - // time_frame: Duration::from_millis(1), - // }), - // }; - // let mut channel = get_channel(rule); - // channel.spec.withdraw_period_start = Utc.ymd(1970, 1, 1).and_hms(12, 0, 9); - - // let ok_response = check_access( - // &database, - // &session, - // Some(&auth), - // &config.ip_rate_limit, - // &channel, - // &get_close_events(1), - // ) - // .await; - - // assert_eq!(Ok(()), ok_response); - // } - - // #[tokio::test] - // async fn check_access_close_event_and_is_creator() { - // let (config, database) = setup().await; - - // let auth = Auth { - // era: 0, - // uid: IDS["follower"], - // }; - - // let session = Session { - // ip: Default::default(), - // referrer_header: None, - // country: None, - // os: None, - // }; - - // let rule = Rule { - // uids: None, - // rate_limit: Some(RateLimit { - // limit_type: "ip".to_string(), - // time_frame: Duration::from_millis(1), - // }), - // }; - // let mut channel = get_channel(rule); - // channel.creator = IDS["follower"]; - - // let ok_response = check_access( - // &database, - // &session, - // Some(&auth), - // &config.ip_rate_limit, - // &channel, - // &get_close_events(1), - // ) - // .await; - - // assert_eq!(Ok(()), ok_response); - // } - - // #[tokio::test] - // async fn check_access_update_targeting_event_and_is_creator() { - // let (config, database) = setup().await; - - // let auth = Auth { - // era: 0, - // uid: IDS["follower"], - // }; - - // let session = Session { - // ip: Default::default(), - // referrer_header: None, - // country: None, - // os: None, - // }; - - // let rule = Rule { - // uids: None, - // rate_limit: Some(RateLimit { - // limit_type: "ip".to_string(), - // time_frame: Duration::from_millis(1), - // }), - // }; - // let mut channel = get_channel(rule); - // channel.creator = IDS["follower"]; - - // let ok_response = check_access( - // &database, - // &session, - // Some(&auth), - // &config.ip_rate_limit, - // &channel, - // &get_update_targeting_events(1), - // ) - // .await; - - // assert_eq!(Ok(()), ok_response); - // } - - // #[tokio::test] - // async fn not_creator_and_there_are_close_events() { - // let (config, database) = setup().await; - - // let auth = Auth { - // era: 0, - // uid: IDS["follower"], - // }; - - // let session = Session { - // ip: Default::default(), - // referrer_header: None, - // country: None, - // os: None, - // }; - - // let rule = Rule { - // uids: None, - // rate_limit: Some(RateLimit { - // limit_type: "ip".to_string(), - // time_frame: Duration::from_millis(1), - // }), - // }; - // let mut channel = get_channel(rule); - // channel.creator = IDS["leader"]; - // let mixed_events = vec![ - // Event::Impression { - // publisher: ADDRESSES["publisher2"], - // ad_unit: None, - // ad_slot: None, - // referrer: None, - // }, - // Event::Close, - // Event::UpdateTargeting { - // targeting_rules: Rules::new(), - // }, - // ]; - // let err_response = check_access( - // &database, - // &session, - // Some(&auth), - // &config.ip_rate_limit, - // &channel, - // &mixed_events, - // ) - // .await; - - // assert_eq!(Err(Error::OnlyCreatorCanCloseChannel), err_response); - // } - - // #[tokio::test] - // async fn not_creator_and_there_are_update_targeting_events() { - // let (config, database) = setup().await; - - // let auth = Auth { - // era: 0, - // uid: IDS["follower"], - // }; - - // let session = Session { - // ip: Default::default(), - // referrer_header: None, - // country: None, - // os: None, - // }; - - // let rule = Rule { - // uids: None, - // rate_limit: Some(RateLimit { - // limit_type: "ip".to_string(), - // time_frame: Duration::from_millis(1), - // }), - // }; - // let mut channel = get_channel(rule); - // channel.creator = IDS["leader"]; - // let mixed_events = vec![ - // Event::Impression { - // publisher: ADDRESSES["publisher2"], - // ad_unit: None, - // ad_slot: None, - // referrer: None, - // }, - // Event::UpdateTargeting { - // targeting_rules: Rules::new(), - // }, - // ]; - // let err_response = check_access( - // &database, - // &session, - // Some(&auth), - // &config.ip_rate_limit, - // &channel, - // &mixed_events, - // ) - // .await; - - // assert_eq!(Err(Error::OnlyCreatorCanUpdateTargetingRules), err_response); - // } - #[tokio::test] async fn with_forbidden_country() { let (config, database) = setup().await; diff --git a/sentry/src/application.rs b/sentry/src/application.rs index 019aab4c7..76d395061 100644 --- a/sentry/src/application.rs +++ b/sentry/src/application.rs @@ -8,7 +8,7 @@ use once_cell::sync::Lazy; use primitives::{adapter::Adapter, config::Environment}; use redis::ConnectionInfo; use serde::{Deserialize, Deserializer}; -use slog::{error, info, Logger}; +use slog::{error, info}; /// an error used when deserializing a [`Config`] instance from environment variables /// see [`Config::from_env()`] @@ -68,39 +68,30 @@ fn default_redis_url() -> ConnectionInfo { DEFAULT_REDIS_URL.clone() } -/// Starts the `hyper` `Server`. -pub async fn run(app: Application, socket_addr: SocketAddr) { - let logger = app.logger.clone(); - info!(&logger, "Listening on socket address: {}!", socket_addr); - - let make_service = make_service_fn(|_| { - let server = app.clone(); - async move { - Ok::<_, Error>(service_fn(move |req| { - let server = server.clone(); - async move { Ok::<_, Error>(server.handle_routing(req).await) } - })) +impl Application { + /// Starts the `hyper` `Server`. + pub async fn run(self, socket_addr: SocketAddr) { + let logger = self.logger.clone(); + info!(&logger, "Listening on socket address: {}!", socket_addr); + + let make_service = make_service_fn(|_| { + let server = self.clone(); + async move { + Ok::<_, Error>(service_fn(move |req| { + let server = server.clone(); + async move { Ok::<_, Error>(server.handle_routing(req).await) } + })) + } + }); + + let server = Server::bind(&socket_addr).serve(make_service); + + if let Err(e) = server.await { + error!(&logger, "server error: {}", e; "main" => "run"); } - }); - - let server = Server::bind(&socket_addr).serve(make_service); - - if let Err(e) = server.await { - error!(&logger, "server error: {}", e; "main" => "run"); } } -pub fn logger(prefix: &str) -> Logger { - use primitives::util::logging::{Async, PrefixedCompactFormat, TermDecorator}; - use slog::{o, Drain}; - - let decorator = TermDecorator::new().build(); - let drain = PrefixedCompactFormat::new(prefix, decorator).fuse(); - let drain = Async::new(drain).build().fuse(); - - Logger::root(drain, o!()) -} - #[cfg(test)] mod test { use serde_json::json; diff --git a/sentry/src/lib.rs b/sentry/src/lib.rs index 95b3aa062..5b4a3cbda 100644 --- a/sentry/src/lib.rs +++ b/sentry/src/lib.rs @@ -51,16 +51,16 @@ pub mod payout; pub mod spender; static LAST_APPROVED_BY_CHANNEL_ID: Lazy = Lazy::new(|| { - Regex::new(r"^/channel/0x([a-zA-Z0-9]{64})/last-approved/?$") + Regex::new(r"^/v5/channel/0x([a-zA-Z0-9]{64})/last-approved/?$") .expect("The regex should be valid") }); // Only the initial Regex to be matched. static CHANNEL_VALIDATOR_MESSAGES: Lazy = Lazy::new(|| { - Regex::new(r"^/channel/0x([a-zA-Z0-9]{64})/validator-messages(/.*)?$") + Regex::new(r"^/v5/channel/0x([a-zA-Z0-9]{64})/validator-messages(/.*)?$") .expect("The regex should be valid") }); static CHANNEL_EVENTS_AGGREGATES: Lazy = Lazy::new(|| { - Regex::new(r"^/channel/0x([a-zA-Z0-9]{64})/events-aggregates/?$") + Regex::new(r"^/v5/channel/0x([a-zA-Z0-9]{64})/events-aggregates/?$") .expect("The regex should be valid") }); static ANALYTICS_BY_CHANNEL_ID: Lazy = Lazy::new(|| { @@ -80,13 +80,13 @@ static CHANNEL_SPENDER_LEAF_AND_TOTAL_DEPOSITED: Lazy = Lazy::new(|| { }); static INSERT_EVENTS_BY_CAMPAIGN_ID: Lazy = Lazy::new(|| { - Regex::new(r"^/v5/campaign/0x([a-zA-Z0-9]{32})/events/?$").expect("The regex should be valid") + Regex::new(r"^/v5/campaign/(0x[a-zA-Z0-9]{32})/events/?$").expect("The regex should be valid") }); static CLOSE_CAMPAIGN_BY_CAMPAIGN_ID: Lazy = Lazy::new(|| { - Regex::new(r"^/v5/campaign/0x([a-zA-Z0-9]{32})/close/?$").expect("The regex should be valid") + Regex::new(r"^/v5/campaign/(0x[a-zA-Z0-9]{32})/close/?$").expect("The regex should be valid") }); static CAMPAIGN_UPDATE_BY_ID: Lazy = Lazy::new(|| { - Regex::new(r"^/v5/campaign/0x([a-zA-Z0-9]{32})/?$").expect("The regex should be valid") + Regex::new(r"^/v5/campaign/(0x[a-zA-Z0-9]{32})/?$").expect("The regex should be valid") }); static CHANNEL_ALL_SPENDER_LIMITS: Lazy = Lazy::new(|| { Regex::new(r"^/v5/channel/0x([a-zA-Z0-9]{64})/spender/all/?$") @@ -155,17 +155,6 @@ impl Application { let mut response = match (req.uri().path(), req.method()) { ("/cfg", &Method::GET) => config(req, self).await, ("/channel/list", &Method::GET) => channel_list(req, self).await, - // For creating campaigns - ("/v5/campaign", &Method::POST) => { - let req = match AuthRequired.call(req, self).await { - Ok(req) => req, - Err(error) => { - return map_response_error(error); - } - }; - - create_campaign(req, self).await - } (route, _) if route.starts_with("/analytics") => analytics_router(req, self).await, // This is important because it prevents us from doing // expensive regex matching for routes without /channel @@ -507,7 +496,7 @@ pub fn bad_validation_response(response_body: String) -> Response { validation: vec![response_body], }; - let body = Body::from(serde_json::to_string(&error_response).expect("serialise err response")); + let body = Body::from(serde_json::to_string(&error_response).expect("serialize err response")); let mut response = Response::new(body); response diff --git a/sentry/src/main.rs b/sentry/src/main.rs index e17dc04e2..4452e1b2f 100644 --- a/sentry/src/main.rs +++ b/sentry/src/main.rs @@ -8,11 +8,13 @@ use primitives::{ adapter::{DummyAdapterOptions, KeystoreOptions}, config::configuration, postgres::POSTGRES_CONFIG, - util::tests::prep_db::{AUTH, IDS}, + util::{ + logging::new_logger, + tests::prep_db::{AUTH, IDS}, + }, ValidatorId, }; use sentry::{ - application::{logger, run}, db::{postgres_connection, redis_connection, setup_migrations, CampaignRemaining}, Application, }; @@ -95,7 +97,7 @@ async fn main() -> Result<(), Box> { _ => panic!("You can only use `ethereum` & `dummy` adapters!"), }; - let logger = logger("sentry"); + let logger = new_logger("sentry"); let redis = redis_connection(env_config.redis_url).await?; info!(&logger, "Checking connection and applying migrations..."); // Check connection and setup migrations before setting up Postgres @@ -107,31 +109,27 @@ async fn main() -> Result<(), Box> { match adapter { AdapterTypes::EthereumAdapter(adapter) => { - run( - Application::new( - *adapter, - config, - logger, - redis, - postgres, - campaign_remaining, - ), - socket_addr, + Application::new( + *adapter, + config, + logger, + redis, + postgres, + campaign_remaining, ) + .run(socket_addr) .await } AdapterTypes::DummyAdapter(adapter) => { - run( - Application::new( - *adapter, - config, - logger, - redis, - postgres, - campaign_remaining, - ), - socket_addr, + Application::new( + *adapter, + config, + logger, + redis, + postgres, + campaign_remaining, ) + .run(socket_addr) .await } }; diff --git a/sentry/src/middleware/auth.rs b/sentry/src/middleware/auth.rs index 99c17d707..5282d7370 100644 --- a/sentry/src/middleware/auth.rs +++ b/sentry/src/middleware/auth.rs @@ -137,8 +137,10 @@ mod test { use deadpool::managed::Object; - use crate::db::redis_pool::Manager; - use crate::{db::redis_pool::TESTS_POOL, Session}; + use crate::{ + db::redis_pool::{Manager, TESTS_POOL}, + Session, + }; use super::*; diff --git a/sentry/src/middleware/channel.rs b/sentry/src/middleware/channel.rs index 9591c95a4..135aee438 100644 --- a/sentry/src/middleware/channel.rs +++ b/sentry/src/middleware/channel.rs @@ -39,6 +39,7 @@ fn channel_load<'a, A: Adapter + 'static>( let channel_id = ChannelId::from_hex(id) .map_err(|_| ResponseError::BadRequest("Wrong Channel Id".to_string()))?; + let channel = get_channel_by_id(&app.pool, &channel_id) .await? .ok_or(ResponseError::NotFound)?; diff --git a/sentry/src/payout.rs b/sentry/src/payout.rs index 7226b77b9..ab49dcd9f 100644 --- a/sentry/src/payout.rs +++ b/sentry/src/payout.rs @@ -95,6 +95,7 @@ mod test { use super::*; use primitives::{ campaign::{Pricing, PricingBounds}, + test_util::PUBLISHER, util::tests::{ discard_logger, prep_db::{ADDRESSES, DUMMY_CAMPAIGN}, @@ -155,7 +156,7 @@ mod test { }); let event = Event::Click { - publisher: ADDRESSES["leader"], + publisher: *PUBLISHER, ad_unit: None, ad_slot: None, referrer: None, @@ -170,7 +171,7 @@ mod test { let payout = get_payout(&logger, &campaign, &event, &session).expect("Should be OK"); - let expected_option = Some((ADDRESSES["leader"], 23.into())); + let expected_option = Some((*PUBLISHER, 23.into())); assert_eq!(expected_option, payout, "pricingBounds: click event"); } } diff --git a/sentry/src/spender.rs b/sentry/src/spender.rs index e0d411954..43a5ed96d 100644 --- a/sentry/src/spender.rs +++ b/sentry/src/spender.rs @@ -3,7 +3,7 @@ pub mod fee { use primitives::{Address, DomainError, UnifiedNum, ValidatorDesc}; - /// Calculates the fee for a specified validator + /// Calculates the fee for a given payout of the specified validator /// This function will return None if the provided validator is not part of the Campaign / Channel /// In the case of overflow when calculating the payout, an error will be returned pub fn calculate_fee( @@ -16,4 +16,53 @@ pub mod fee { .map(|pro_mille_fee| pro_mille_fee.div_floor(&PRO_MILLE)) .ok_or_else(|| DomainError::InvalidArgument("payout calculation overflow".to_string())) } + + #[cfg(test)] + mod test { + use primitives::{ + test_util::{DUMMY_VALIDATOR_LEADER, PUBLISHER}, + UnifiedNum, + }; + + use crate::spender::fee::calculate_fee; + + #[test] + fn test_calcualtion_of_fee() { + let dummy_leader = DUMMY_VALIDATOR_LEADER.clone(); + assert_eq!( + UnifiedNum::from(100), + dummy_leader.fee, + "Dummy validator leader fee has changed, please revisit this test!" + ); + + // normal payout - no flooring + { + // 300 * 100 / 1000 = 30 + let payout = (*PUBLISHER, UnifiedNum::from(300)); + + let validator_fee = + calculate_fee(payout, &dummy_leader).expect("Should not overflow"); + + assert_eq!(UnifiedNum::from(30), validator_fee); + } + + // payout with flooring + { + // 66 * 100 / 1000 = 6.6 = 6 + let payout = (*PUBLISHER, UnifiedNum::from(66)); + let validator_fee = + calculate_fee(payout, &dummy_leader).expect("Should not overflow"); + + assert_eq!(UnifiedNum::from(6), validator_fee); + } + + // Overflow + { + // u64::MAX * 100 (overflow) / 1000 + let payout = (*PUBLISHER, UnifiedNum::from(u64::MAX)); + + calculate_fee(payout, &dummy_leader).expect_err("Should overflow"); + } + } + } } diff --git a/test_harness/Cargo.toml b/test_harness/Cargo.toml index e5e073abe..8c05babc0 100644 --- a/test_harness/Cargo.toml +++ b/test_harness/Cargo.toml @@ -5,9 +5,10 @@ version = "0.1.0" authors = ["Ambire ", "Lachezar Lechev "] [dependencies] -primitives = { path = "../primitives", features = ["postgres"] } +primitives = { path = "../primitives", features = ["postgres", "test-util"] } adapter = { version = "0.1", path = "../adapter", features = ["test-util"] } sentry = { version = "0.1", path = "../sentry", features = ["test-util"] } +validator_worker = { version = "0.2", path = "../validator_worker" } chrono = { version = "0.4", features = ["serde"] } @@ -27,3 +28,4 @@ anyhow = { version = "1" } tokio = { version = "1", features = ["rt-multi-thread", "macros", "time"] } # probably needed for Relayer calls # wiremock = "0.5" +pretty_assertions = "^1.0" diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 1973566c8..3b339650f 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -13,7 +13,13 @@ use adapter::ethereum::{ }; use deposits::Deposit; use once_cell::sync::Lazy; -use primitives::{adapter::KeystoreOptions, config::TokenInfo, Address, Config}; +use primitives::{ + adapter::KeystoreOptions, + config::TokenInfo, + test_util::{FOLLOWER, LEADER}, + util::ApiUrl, + Address, Config, +}; use web3::{contract::Contract, transports::Http, types::H160, Web3}; pub mod deposits; @@ -24,40 +30,31 @@ pub static GANACHE_CONFIG: Lazy = Lazy::new(|| { }); /// ganache-cli setup with deployed contracts using the snapshot directory +/// Uses the [`GANACHE_CONFIG`] & [`GANACHE_URL`] statics to init the contracts pub static SNAPSHOT_CONTRACTS: Lazy = Lazy::new(|| { - use primitives::BigNum; - use std::num::NonZeroU8; - let web3 = Web3::new(Http::new(GANACHE_URL).expect("failed to init transport")); - let token_address = "0x9db7bff788522dbe8fa2e8cbd568a58c471ccd5e" - .parse::
() - .unwrap(); + let (token_address, token_info) = GANACHE_CONFIG + .token_address_whitelist + .iter() + .next() + .expect("Shanpshot token should be included in Ganache config"); + let token = ( - // copied from deploy_token_contract - TokenInfo { - min_token_units_for_deposit: BigNum::from(10_u64.pow(18)), - precision: NonZeroU8::new(18).expect("should create NonZeroU8"), - // multiplier = 10^14 - 10^18 (token precision) = 10^-4 - // min_validator_fee = 1' * 10^-4 = 0.000_1 - min_validator_fee: BigNum::from(100_000_000_000_000), - }, - token_address, + // use Ganache Config + token_info.clone(), + *token_address, Contract::from_json(web3.eth(), H160(token_address.to_bytes()), &MOCK_TOKEN_ABI).unwrap(), ); - let sweeper_address = "0xdd41b0069256a28972458199a3c9cf036384c156" - .parse::
() - .unwrap(); + let sweeper_address = Address::from(GANACHE_CONFIG.sweeper_address); let sweeper = ( sweeper_address, Contract::from_json(web3.eth(), H160(sweeper_address.to_bytes()), &SWEEPER_ABI).unwrap(), ); - let outpace_address = "0xcb097e455b7159f902e2eb45562fc397ae6b0f3d" - .parse::
() - .unwrap(); + let outpace_address = Address::from(GANACHE_CONFIG.outpace_address); let outpace = ( outpace_address, @@ -76,45 +73,57 @@ pub struct TestValidator { pub address: Address, pub keystore: KeystoreOptions, pub sentry_config: sentry::application::Config, - /// Prefix for the loggers - pub logger_prefix: String, + /// Sentry REST API url + pub sentry_url: ApiUrl, + /// Used for the _Sentry REST API_ [`sentry::Application`] as well as the _Validator worker_ [`validator_worker::worker::Args`] + pub config: Config, + /// Prefix for sentry logger + pub sentry_logger_prefix: String, + /// Prefix for validator worker logger + pub worker_logger_prefix: String, /// Postgres DB name /// The rest of the Postgres values are taken from env. variables pub db_name: String, } -pub static VALIDATORS: Lazy> = Lazy::new(|| { - use adapter::ethereum::test_util::GANACHE_KEYSTORES; +pub static VALIDATORS: Lazy> = Lazy::new(|| { + use adapter::ethereum::test_util::KEYSTORES; use primitives::config::Environment; vec![ ( - "leader", + *LEADER, TestValidator { - address: GANACHE_KEYSTORES["leader"].0, - keystore: GANACHE_KEYSTORES["leader"].1.clone(), + address: *LEADER, + keystore: KEYSTORES[&LEADER].clone(), sentry_config: sentry::application::Config { env: Environment::Development, port: 8005, ip_addr: IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), redis_url: "redis://127.0.0.1:6379/1".parse().unwrap(), }, - logger_prefix: "sentry-leader".into(), + config: GANACHE_CONFIG.clone(), + sentry_url: "http://localhost:8005".parse().expect("Valid Sentry URL"), + sentry_logger_prefix: "sentry-leader".into(), + worker_logger_prefix: "worker-leader".into(), db_name: "harness_leader".into(), }, ), ( - "follower", + *FOLLOWER, TestValidator { - address: GANACHE_KEYSTORES["follower"].0, - keystore: GANACHE_KEYSTORES["follower"].1.clone(), + address: *FOLLOWER, + keystore: KEYSTORES[&FOLLOWER].clone(), sentry_config: sentry::application::Config { env: Environment::Development, port: 8006, ip_addr: IpAddr::V4(Ipv4Addr::new(127, 0, 0, 1)), redis_url: "redis://127.0.0.1:6379/2".parse().unwrap(), }, - logger_prefix: "sentry-follower".into(), + config: GANACHE_CONFIG.clone(), + sentry_url: "http://localhost:8006".parse().expect("Valid Sentry URL"), + sentry_logger_prefix: "sentry-follower".into(), + worker_logger_prefix: "worker-follower".into(), db_name: "harness_follower".into(), }, ), @@ -204,14 +213,20 @@ mod tests { use super::*; use adapter::ethereum::{ - test_util::{GANACHE_ADDRESSES, GANACHE_KEYSTORES, GANACHE_URL}, + test_util::{GANACHE_URL, KEYSTORES}, EthereumAdapter, }; use primitives::{ - adapter::Adapter, sentry::campaign_create::CreateCampaign, util::ApiUrl, BigNum, Campaign, - Channel, ChannelId, UnifiedNum, + adapter::Adapter, + balances::CheckedState, + sentry::{campaign_create::CreateCampaign, AccountingResponse, Event, SuccessResponse}, + spender::Spender, + test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, PUBLISHER}, + util::{logging::new_logger, ApiUrl}, + Balances, BigNum, Campaign, CampaignId, Channel, ChannelId, UnifiedNum, }; use reqwest::{Client, StatusCode}; + use validator_worker::{sentry_interface::Validator, worker::Worker, SentryApi}; #[tokio::test] #[ignore = "We use a snapshot, however, we have left this test for convenience"] @@ -232,26 +247,30 @@ mod tests { }; let channel = Channel { - leader: VALIDATORS["leader"].address.into(), - follower: VALIDATORS["follower"].address.into(), - guardian: GANACHE_ADDRESSES["guardian"], + leader: VALIDATORS[&LEADER].address.into(), + follower: VALIDATORS[&FOLLOWER].address.into(), + guardian: *GUARDIAN, token: SNAPSHOT_CONTRACTS.token.1, nonce: 0_u64.into(), }; let leader_desc = ValidatorDesc { - id: VALIDATORS["leader"].address.into(), - url: "http://localhost:8005".to_string(), - // fee per 1000 (pro mille) = 0.03000000 (UnifiedNum) - fee: 3_000_000.into(), + id: VALIDATORS[&LEADER].address.into(), + url: VALIDATORS[&LEADER].sentry_url.to_string(), + // min_validator_fee for token: 0.000_010 + // fee per 1000 (pro mille) = 0.00003000 (UnifiedNum) + // fee per 1 payout: payout * fee / 1000 = payout * 0.00000003 + fee: 3_000.into(), fee_addr: None, }; let follower_desc = ValidatorDesc { - id: VALIDATORS["follower"].address.into(), - url: "http://localhost:8006".to_string(), - // fee per 1000 (pro mille) = 0.02000000 (UnifiedNum) - fee: 2_000_000.into(), + id: VALIDATORS[&FOLLOWER].address.into(), + url: VALIDATORS[&FOLLOWER].sentry_url.to_string(), + // min_validator_fee for token: 0.000_010 + // fee per 1000 (pro mille) = 0.00002000 (UnifiedNum) + // fee per 1 payout: payout * fee / 1000 = payout * 0.00000002 + fee: 2_000.into(), fee_addr: None, }; @@ -262,31 +281,31 @@ mod tests { .parse() .expect("Should parse"), channel, - creator: GANACHE_ADDRESSES["advertiser"], + creator: *ADVERTISER, // 20.00000000 budget: UnifiedNum::from(200_000_000), validators, title: Some("Dummy Campaign".to_string()), pricing_bounds: Some(PricingBounds { impression: Some(Pricing { - // 0.00000100 - // Per 1000 = 0.00100000 - min: 100.into(), - // 0.00000200 - // Per 1000 = 0.00200000 - max: 200.into(), + // 0.00003000 + // Per 1000 = 0.03000000 + min: 3_000.into(), + // 0.00005000 + // Per 1000 = 0.05000000 + max: 5_000.into(), }), click: Some(Pricing { - // 0.00000300 - // Per 1000 = 0.00300000 - min: 300.into(), - // 0.00000500 - // Per 1000 = 0.00500000 - max: 500.into(), + // 0.00006000 + // Per 1000 = 0.06000000 + min: 6_000.into(), + // 0.00010000 + // Per 1000 = 0.10000000 + max: 10_000.into(), }), }), event_submission: Some(EventSubmission { allow: vec![] }), - ad_units: vec![], + ad_units: vec![DUMMY_AD_UNITS[0].clone(), DUMMY_AD_UNITS[1].clone()], targeting_rules: Rules::new(), created: Utc.ymd(2021, 2, 1).and_hms(7, 0, 0), active: Active { @@ -311,28 +330,28 @@ mod tests { }; let channel = Channel { - leader: VALIDATORS["follower"].address.into(), - follower: VALIDATORS["leader"].address.into(), - guardian: GANACHE_ADDRESSES["guardian2"], + leader: VALIDATORS[&FOLLOWER].address.into(), + follower: VALIDATORS[&LEADER].address.into(), + guardian: *GUARDIAN_2, token: SNAPSHOT_CONTRACTS.token.1, nonce: 0_u64.into(), }; - // Uses the VALIDATORS["follower"] as the Leader for this Channel + // Uses the VALIDATORS[&FOLLOWER] as the Leader for this Channel // switches the URL as well let leader_desc = ValidatorDesc { - id: VALIDATORS["follower"].address.into(), - url: "http://localhost:8006".to_string(), + id: VALIDATORS[&FOLLOWER].address.into(), + url: VALIDATORS[&FOLLOWER].sentry_url.to_string(), // fee per 1000 (pro mille) = 0.10000000 (UnifiedNum) fee: 10_000_000.into(), fee_addr: None, }; - // Uses the VALIDATORS["leader"] as the Follower for this Channel + // Uses the VALIDATORS[&LEADER] as the Follower for this Channel // switches the URL as well let follower_desc = ValidatorDesc { - id: VALIDATORS["leader"].address.into(), - url: "http://localhost:8005".to_string(), + id: VALIDATORS[&LEADER].address.into(), + url: VALIDATORS[&LEADER].sentry_url.to_string(), // fee per 1000 (pro mille) = 0.05000000 (UnifiedNum) fee: 5_000_000.into(), fee_addr: None, @@ -345,27 +364,23 @@ mod tests { .parse() .expect("Should parse"), channel, - creator: GANACHE_ADDRESSES["advertiser"], + creator: *ADVERTISER, // 20.00000000 budget: UnifiedNum::from(2_000_000_000), validators, title: Some("Dummy Campaign".to_string()), pricing_bounds: Some(PricingBounds { impression: Some(Pricing { - // 0.00000100 - // Per 1000 = 0.00100000 - min: 100.into(), - // 0.00000200 - // Per 1000 = 0.00200000 - max: 200.into(), + // 0.00001000 + min: 1_000.into(), + // 0.00002000 + max: 2_000.into(), }), click: Some(Pricing { - // 0.00000300 - // Per 1000 = 0.00300000 - min: 300.into(), - // 0.00000500 - // Per 1000 = 0.00500000 - max: 500.into(), + // 0.00003000 + min: 3_000.into(), + // 0.00005000 + max: 5_000.into(), }), }), event_submission: Some(EventSubmission { allow: vec![] }), @@ -385,31 +400,16 @@ mod tests { let setup = Setup { web3 }; // Use snapshot contracts let contracts = SNAPSHOT_CONTRACTS.clone(); + // let contracts = setup.deploy_contracts().await; + + let leader = VALIDATORS[&LEADER].clone(); + let follower = VALIDATORS[&FOLLOWER].clone(); - let leader = VALIDATORS["leader"].clone(); - let follower = VALIDATORS["follower"].clone(); - - // let channel_1 = Channel { - // leader: leader.address.into(), - // follower: follower.address.into(), - // guardian: GANACHE_ADDRESSES["guardian"].into(), - // token: contracts.token.1, - // nonce: 0_u64.into(), - // }; - - // // switch the roles of the 2 validators & use a new guardian - // let channel_2 = Channel { - // leader: follower.address.into(), - // follower: leader.address.into(), - // guardian: GANACHE_ADDRESSES["guardian2"].into(), - // token: contracts.token.1, - // nonce: 1_u64.into(), - // }; let token_precision = contracts.token.0.precision.get(); // We use the Advertiser's `EthereumAdapter::get_auth` for authentication! let mut advertiser_adapter = - EthereumAdapter::init(GANACHE_KEYSTORES["advertiser"].1.clone(), &GANACHE_CONFIG) + EthereumAdapter::init(KEYSTORES[&ADVERTISER].clone(), &GANACHE_CONFIG) .expect("Should initialize creator adapter"); advertiser_adapter .unlock() @@ -417,8 +417,64 @@ mod tests { let advertiser_adapter = advertiser_adapter; // setup Sentry & returns Adapter - let leader_adapter = setup_sentry(leader).await; - let follower_adapter = setup_sentry(follower).await; + let leader_adapter = setup_sentry(&leader).await; + let follower_adapter = setup_sentry(&follower).await; + + let leader_sentry = { + // should get self Auth from Leader's EthereumAdapter + let leader_auth = leader_adapter + .get_auth(&leader_adapter.whoami()) + .expect("Get authentication"); + let whoami_validator = Validator { + url: leader.sentry_url.clone(), + token: leader_auth, + }; + + SentryApi::new( + leader_adapter.clone(), + new_logger(&leader.worker_logger_prefix), + leader.config.clone(), + whoami_validator, + ) + .expect("Should create new SentryApi for the Leader Worker") + }; + + let follower_sentry = { + // should get self Auth from Follower's EthereumAdapter + let follower_auth = follower_adapter + .get_auth(&follower_adapter.whoami()) + .expect("Get authentication"); + let whoami_validator = Validator { + url: follower.sentry_url.clone(), + token: follower_auth, + }; + + SentryApi::new( + follower_adapter.clone(), + new_logger(&follower.worker_logger_prefix), + follower.config.clone(), + whoami_validator, + ) + .expect("Should create new SentryApi for the Leader Worker") + }; + + // check Campaign Leader & Follower urls + // they should be the same as the test validators + { + let campaign_leader_url = CAMPAIGN_1 + .leader() + .expect("Channel.leader should match a Campaign validator!") + .try_api_url() + .expect("Valid url"); + let campaign_follower_url = CAMPAIGN_1 + .follower() + .expect("Channel.follower should match a Campaign validator!") + .try_api_url() + .expect("Valid url"); + + assert_eq!(&leader.sentry_url, &campaign_leader_url); + assert_eq!(&follower.sentry_url, &campaign_follower_url); + } // Advertiser deposits // @@ -480,8 +536,6 @@ mod tests { } let api_client = reqwest::Client::new(); - let leader_url = CAMPAIGN_1.validators[0].try_api_url().expect("Valid url"); - let follower_url = CAMPAIGN_1.validators[1].try_api_url().expect("Valid url"); // No Channel 1 - 404 // GET /v5/channel/{}/spender/all @@ -492,7 +546,7 @@ mod tests { let leader_response = get_spender_all_page_0( &api_client, - &leader_url, + &leader.sentry_url, &leader_auth, CAMPAIGN_1.channel.id(), ) @@ -516,10 +570,14 @@ mod tests { // Campaign Budget: 40 TOKENs no_budget_campaign.budget = UnifiedNum::from(4_000_000_000); - let no_budget_response = - create_campaign(&api_client, &leader_url, &leader_auth, &no_budget_campaign) - .await - .expect("Should return Response"); + let no_budget_response = create_campaign( + &api_client, + &leader.sentry_url, + &leader_auth, + &no_budget_campaign, + ) + .await + .expect("Should return Response"); let status = no_budget_response.status(); let response = no_budget_response .json::() @@ -538,20 +596,23 @@ mod tests { // Exists from the previously failed create Campaign 1 request // GET /v5/channel/{}/spender/all { - let leader_auth = advertiser_adapter - .get_auth(&leader_adapter.whoami()) - .expect("Get authentication"); + let leader_response = leader_sentry + .get_all_spenders(CAMPAIGN_1.channel.id()) + .await + .expect("Should return Response"); - let leader_response = get_spender_all_page_0( - &api_client, - &leader_url, - &leader_auth, - CAMPAIGN_1.channel.id(), - ) - .await - .expect("Should return Response"); + let expected = vec![( + advertiser_adapter.whoami().to_address(), + Spender { + // Expected: 30 TOKENs + total_deposited: UnifiedNum::from(3_000_000_000), + spender_leaf: None, + }, + )] + .into_iter() + .collect::>(); - assert_eq!(StatusCode::OK, leader_response.status()); + assert_eq!(expected, leader_response); } // Create Campaign 1 w/ Channel 1 using Advertiser @@ -564,10 +625,14 @@ mod tests { .get_auth(&leader_adapter.whoami()) .expect("Get authentication"); - let leader_response = - create_campaign(&api_client, &leader_url, &leader_token, &create_campaign_1) - .await - .expect("Should return Response"); + let leader_response = create_campaign( + &api_client, + &leader.sentry_url, + &leader_token, + &create_campaign_1, + ) + .await + .expect("Should return Response"); assert_eq!(StatusCode::OK, leader_response.status()); } @@ -579,7 +644,7 @@ mod tests { let follower_response = create_campaign( &api_client, - &follower_url, + &follower.sentry_url, &follower_token, &create_campaign_1, ) @@ -602,10 +667,14 @@ mod tests { .get_auth(&leader_adapter.whoami()) .expect("Get authentication"); - let leader_response = - create_campaign(&api_client, &leader_url, &leader_token, &create_campaign_2) - .await - .expect("Should return Response"); + let leader_response = create_campaign( + &api_client, + &leader.sentry_url, + &leader_token, + &create_campaign_2, + ) + .await + .expect("Should return Response"); let status = leader_response.status(); assert_eq!(StatusCode::OK, status); @@ -618,7 +687,7 @@ mod tests { let follower_response = create_campaign( &api_client, - &follower_url, + &follower.sentry_url, &follower_token, &create_campaign_2, ) @@ -629,29 +698,130 @@ mod tests { } } - // setup worker + let leader_worker = Worker::from_sentry(leader_sentry.clone()); + let follower_worker = Worker::from_sentry(follower_sentry.clone()); + + // leader single worker tick + leader_worker.all_channels_tick().await; + // follower single worker tick + follower_worker.all_channels_tick().await; + + // Channel 1 expected Accounting - Empty + { + let expected_accounting = AccountingResponse { + balances: Balances::::new(), + }; + let actual_accounting = leader_sentry + .get_accounting(CAMPAIGN_1.channel.id()) + .await + .expect("Should get Channel Accounting"); + + assert_eq!(expected_accounting, actual_accounting); + } + + // Add new events to sentry + { + let events = vec![ + Event::Impression { + publisher: *PUBLISHER, + ad_unit: Some( + CAMPAIGN_1 + .ad_units + .get(0) + .expect("Should exist in Campaign") + .ipfs, + ), + ad_slot: Some(DUMMY_IPFS[2]), + referrer: Some("https://adex.network".into()), + }, + Event::Click { + publisher: *PUBLISHER, + ad_unit: Some( + CAMPAIGN_1 + .ad_units + .get(0) + .expect("Should exist in Campaign") + .ipfs, + ), + ad_slot: Some(DUMMY_IPFS[2]), + referrer: Some("https://ambire.com".into()), + }, + ]; + + let response = post_new_events(&leader_sentry, CAMPAIGN_1.id, &events) + .await + .expect("Posted events"); + + assert_eq!(SuccessResponse { success: true }, response) + } + + // Channel 1 expected Accounting + // Fees are calculated based on pro mile of the payout + // event payout * fee / 1000 + // + // + // IMPRESSION: + // - Publisher payout: 3000 + // - Leader fees: 3000 * 3000 / 1 000 = 9 000 + // - Follower fees: 3000 * 2000 / 1000 = 6 000 + // + // CLICK: + // - Publisher payout: 6000 + // - Leader fees: 6000 * 3000 / 1000 = 18 000 + // - Follower fees: 6000 * 2000 / 1000 = 12 000 + // + // Creator (Advertiser) pays out: + // events_payout + leader fee + follower fee + // events_payout = 3000 (impression) + 6000 (click) = 9 000 + // 9000 + (9000 + 18000) + (6000 + 12000) = 54 000 + { + let mut expected_balances = Balances::new(); - // run worker single-tick + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.leader.to_address(), + UnifiedNum::from(27_000), + ) + .expect("Should spend for Leader"); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.follower.to_address(), + UnifiedNum::from(18_000), + ) + .expect("Should spend for Follower"); + expected_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .expect("Should spend for Publisher"); + + let expected_accounting = AccountingResponse { + balances: expected_balances, + }; + + let actual_accounting = leader_sentry + .get_accounting(CAMPAIGN_1.channel.id()) + .await + .expect("Should get Channel Accounting"); + + pretty_assertions::assert_eq!(expected_accounting, actual_accounting); + } } - async fn setup_sentry(validator: TestValidator) -> EthereumAdapter { - let mut adapter = EthereumAdapter::init(validator.keystore, &GANACHE_CONFIG) + async fn setup_sentry(validator: &TestValidator) -> EthereumAdapter { + let mut adapter = EthereumAdapter::init(validator.keystore.clone(), &GANACHE_CONFIG) .expect("EthereumAdapter::init"); adapter.unlock().expect("Unlock successfully adapter"); - run_sentry_app( - adapter.clone(), - &validator.logger_prefix, - validator.sentry_config, - &validator.db_name, - ) - .await - .expect("To run Sentry API server"); + run_sentry_app(adapter.clone(), &validator) + .await + .expect("To run Sentry API server"); adapter } + /// Used to test if it returns correct Status code on non-existing Channel. async fn get_spender_all_page_0( api_client: &Client, url: &ApiUrl, @@ -669,6 +839,38 @@ mod tests { .await?) } + /// Used to test if it returns correct Status code on non-existing Channel. + /// Authentication required! + /// Asserts: [`StatusCode::OK`] + async fn post_new_events( + sentry: &SentryApi, + campaign: CampaignId, + events: &[Event], + ) -> anyhow::Result { + let endpoint_url = sentry + .whoami + .url + .join(&format!("v5/campaign/{}/events", campaign)) + .expect("valid endpoint"); + + let request_body = vec![("events".to_string(), events)] + .into_iter() + .collect::>(); + + let response = sentry + .client + .post(endpoint_url) + .json(&request_body) + .bearer_auth(&sentry.whoami.token) + .send() + .await?; + + assert_eq!(StatusCode::OK, response.status()); + + Ok(response.json().await?) + } + + /// Authentication required! async fn create_campaign( api_client: &Client, url: &ApiUrl, @@ -691,10 +893,10 @@ pub mod run { use adapter::EthereumAdapter; use primitives::{ postgres::{POSTGRES_HOST, POSTGRES_PASSWORD, POSTGRES_PORT, POSTGRES_USER}, + util::logging::new_logger, ToETHChecksum, ValidatorId, }; use sentry::{ - application::{logger, run}, db::{ postgres_connection, redis_connection, redis_pool::Manager, tests_postgres::setup_test_migrations, CampaignRemaining, @@ -704,15 +906,16 @@ pub mod run { use slog::info; use subprocess::{Popen, PopenConfig, Redirection}; - use crate::GANACHE_CONFIG; + use crate::{TestValidator, GANACHE_CONFIG}; pub async fn run_sentry_app( adapter: EthereumAdapter, - logger_prefix: &str, - app_config: sentry::application::Config, - db_name: &str, + validator: &TestValidator, ) -> anyhow::Result<()> { - let socket_addr = SocketAddr::new(app_config.ip_addr, app_config.port); + let socket_addr = SocketAddr::new( + validator.sentry_config.ip_addr, + validator.sentry_config.port, + ); let postgres_config = { let mut config = sentry::db::PostgresConfig::new(); @@ -722,13 +925,13 @@ pub mod run { .password(POSTGRES_PASSWORD.as_str()) .host(POSTGRES_HOST.as_str()) .port(*POSTGRES_PORT) - .dbname(db_name); + .dbname(&validator.db_name); config }; let postgres = postgres_connection(42, postgres_config).await; - let mut redis = redis_connection(app_config.redis_url).await?; + let mut redis = redis_connection(validator.sentry_config.redis_url.clone()).await?; Manager::flush_db(&mut redis) .await @@ -736,21 +939,26 @@ pub mod run { let campaign_remaining = CampaignRemaining::new(redis.clone()); - setup_test_migrations(postgres.clone()) - .await - .expect("Should run migrations"); - let app = Application::new( adapter, GANACHE_CONFIG.clone(), - logger(logger_prefix), - redis, - postgres, + new_logger(&validator.sentry_logger_prefix), + redis.clone(), + postgres.clone(), campaign_remaining, ); + // Before the tests, make sure to flush the DB from previous run of `sentry` tests + Manager::flush_db(&mut redis) + .await + .expect("Should flush redis database"); + + setup_test_migrations(postgres.clone()) + .await + .expect("Should run migrations"); + info!(&app.logger, "Spawn sentry Hyper server"); - tokio::spawn(run(app, socket_addr)); + tokio::spawn(app.run(socket_addr)); Ok(()) } diff --git a/validator_worker/src/channel.rs b/validator_worker/src/channel.rs index f62cf2323..1162d9b2a 100644 --- a/validator_worker/src/channel.rs +++ b/validator_worker/src/channel.rs @@ -1,15 +1,10 @@ use crate::{ error::{Error, TickError}, - follower, leader, - sentry_interface::{campaigns::all_campaigns, Validator, Validators}, - SentryApi, -}; -use primitives::{adapter::Adapter, config::Config, util::ApiUrl, Channel, ChannelId}; -use slog::{info, Logger}; -use std::{ - collections::{hash_map::Entry, HashSet}, - time::Duration, + follower, leader, SentryApi, }; +use primitives::{adapter::Adapter, config::Config, Channel, ChannelId}; +use slog::info; +use std::time::Duration; use tokio::time::timeout; pub async fn channel_tick( @@ -93,59 +88,3 @@ pub async fn channel_tick( } } } - -/// Fetches all `Campaign`s from Sentry and builds the `Channel`s to be processed -/// along side all the `Validator`s' url & auth token -pub async fn collect_channels( - adapter: &A, - sentry_url: &ApiUrl, - config: &Config, - _logger: &Logger, -) -> Result<(HashSet, Validators), reqwest::Error> { - let whoami = adapter.whoami(); - - let all_campaigns_timeout = Duration::from_millis(config.all_campaigns_timeout as u64); - let client = reqwest::Client::builder() - .timeout(all_campaigns_timeout) - .build()?; - let campaigns = all_campaigns(client, sentry_url, whoami).await?; - let channels = campaigns - .iter() - .map(|campaign| campaign.channel) - .collect::>(); - - let validators = campaigns - .into_iter() - .fold(Validators::new(), |mut acc, campaign| { - for validator_desc in campaign.validators.iter() { - // if Validator is already there, we can just skip it - // remember, the campaigns are ordered by `created DESC` - // so we will always get the latest Validator url first - match acc.entry(validator_desc.id) { - Entry::Occupied(_) => continue, - Entry::Vacant(entry) => { - // try to parse the url of the Validator Desc - let validator_url = validator_desc.url.parse::(); - // and also try to find the Auth token in the config - - // if there was an error with any of the operations, skip this `ValidatorDesc` - let auth_token = adapter.get_auth(&validator_desc.id); - - // only if `ApiUrl` parsing is `Ok` & Auth Token is found in the `Adapter` - if let (Ok(url), Ok(auth_token)) = (validator_url, auth_token) { - // add an entry for propagation - entry.insert(Validator { - url, - token: auth_token, - }); - } - // otherwise it will try to do the same things on the next encounter of this `ValidatorId` - } - } - } - - acc - }); - - Ok((channels, validators)) -} diff --git a/validator_worker/src/leader.rs b/validator_worker/src/leader.rs index 8e3aceb1e..a7febb576 100644 --- a/validator_worker/src/leader.rs +++ b/validator_worker/src/leader.rs @@ -44,47 +44,50 @@ pub async fn tick( token: &TokenInfo, ) -> Result> { // Check if Accounting != than latest NewState (Accounting.balances != NewState.balances) - let should_generate_new_state = { - let latest_new_state = sentry - .get_our_latest_msg(channel.id(), &["NewState"]) - .await? - .map(NewState::::try_from) - .transpose()?; + let should_generate_new_state = + { + // If the accounting is empty, then we don't need to create a NewState + if accounting_balances.earners.is_empty() || accounting_balances.spenders.is_empty() { + false + } else { + let latest_new_state = sentry + .get_our_latest_msg(channel.id(), &["NewState"]) + .await? + .map(NewState::::try_from) + .transpose()?; - match latest_new_state { - Some(new_state) => { - let check_spenders = - accounting_balances - .spenders - .iter() - .any(|(spender, accounting_balance)| { - match new_state.balances.spenders.get(spender) { - Some(prev_balance) => accounting_balance > prev_balance, - // if there is no previous balance for this Spender then it should generate a `NewState` - // this includes adding an empty Spender to be included in the MerkleTree - None => true, - } - }); + match latest_new_state { + Some(new_state) => { + let check_spenders = accounting_balances.spenders.iter().any( + |(spender, accounting_balance)| { + match new_state.balances.spenders.get(spender) { + Some(prev_balance) => accounting_balance > prev_balance, + // if there is no previous balance for this Spender then it should generate a `NewState` + // this includes adding an empty Spender to be included in the MerkleTree + None => true, + } + }, + ); - let check_earners = - accounting_balances - .earners - .iter() - .any(|(earner, accounting_balance)| { - match new_state.balances.earners.get(earner) { - Some(prev_balance) => accounting_balance > prev_balance, - // if there is no previous balance for this Earner then it should generate a `NewState` - // this includes adding an empty Earner to be included in the MerkleTree - None => true, - } - }); + let check_earners = accounting_balances.earners.iter().any( + |(earner, accounting_balance)| { + match new_state.balances.earners.get(earner) { + Some(prev_balance) => accounting_balance > prev_balance, + // if there is no previous balance for this Earner then it should generate a `NewState` + // this includes adding an empty Earner to be included in the MerkleTree + None => true, + } + }, + ); - check_spenders || check_earners + check_spenders || check_earners + } + // if no previous `NewState` (i.e. `Channel` is new) - it should generate a `NewState` + // this is only valid if the Accounting balances are not empty! + None => true, + } } - // if no previous `NewState` (i.e. `Channel` is new) - it should generate a `NewState` - None => true, - } - }; + }; // Create a `NewState` if balances have changed let new_state = if should_generate_new_state { diff --git a/validator_worker/src/lib.rs b/validator_worker/src/lib.rs index 5fc10d7f2..cb575e8ff 100644 --- a/validator_worker/src/lib.rs +++ b/validator_worker/src/lib.rs @@ -11,6 +11,7 @@ use primitives::{ use thiserror::Error; pub use self::sentry_interface::SentryApi; +pub use worker::Worker; pub mod channel; pub mod error; diff --git a/validator_worker/src/main.rs b/validator_worker/src/main.rs index f5aad8250..2b9441376 100644 --- a/validator_worker/src/main.rs +++ b/validator_worker/src/main.rs @@ -7,7 +7,7 @@ use clap::{crate_version, App, Arg}; use adapter::{AdapterTypes, DummyAdapter, EthereumAdapter}; use primitives::{ - adapter::{DummyAdapterOptions, KeystoreOptions}, + adapter::{Adapter, DummyAdapterOptions, KeystoreOptions}, config::{configuration, Environment}, util::{ logging::new_logger, @@ -15,7 +15,7 @@ use primitives::{ }, ValidatorId, }; -use validator_worker::worker::run; +use validator_worker::{sentry_interface::Validator, SentryApi, Worker}; fn main() -> Result<(), Box> { let cli = App::new("Validator worker") @@ -80,7 +80,7 @@ fn main() -> Result<(), Box> { .parse()?; let is_single_tick = cli.is_present("singleTick"); - let adapter = match cli.value_of("adapter").unwrap() { + let unlocked_adapter = match cli.value_of("adapter").unwrap() { "ethereum" => { let keystore_file = cli .value_of("keystoreFile") @@ -90,9 +90,11 @@ fn main() -> Result<(), Box> { keystore_file: keystore_file.to_string(), keystore_pwd, }; - AdapterTypes::EthereumAdapter(Box::new( - EthereumAdapter::init(keystore_options, &config).expect("failed to init adapter"), - )) + let mut adapter = EthereumAdapter::init(keystore_options, &config) + .expect("failed to init Ethereum adapter"); + + adapter.unlock().expect("failed to Unlock Ethereum adapter"); + AdapterTypes::EthereumAdapter(Box::new(adapter)) } "dummy" => { let dummy_identity = cli @@ -103,7 +105,11 @@ fn main() -> Result<(), Box> { dummy_auth: IDS.clone(), dummy_auth_tokens: AUTH.clone(), }; - AdapterTypes::DummyAdapter(Box::new(DummyAdapter::init(options, &config))) + let mut adapter = DummyAdapter::init(options, &config); + // unlock adapter + adapter.unlock().expect("failed to Unlock Dummy adapter"); + + AdapterTypes::DummyAdapter(Box::new(adapter)) } // @TODO exit gracefully _ => panic!("We don't have any other adapters implemented yet!"), @@ -111,12 +117,32 @@ fn main() -> Result<(), Box> { let logger = new_logger("validator_worker"); - match adapter { - AdapterTypes::EthereumAdapter(ethadapter) => { - run(is_single_tick, sentry_url, &config, *ethadapter, &logger) + match unlocked_adapter { + AdapterTypes::EthereumAdapter(eth_adapter) => { + let whoami = Validator { + url: sentry_url, + token: eth_adapter + .get_auth(ð_adapter.whoami()) + .expect("Failed to get Authentication token for Who am I"), + }; + + let sentry = SentryApi::new(*eth_adapter, logger.clone(), config, whoami) + .expect("Should create the SentryApi"); + + Worker::from_sentry(sentry).run(is_single_tick) } - AdapterTypes::DummyAdapter(dummyadapter) => { - run(is_single_tick, sentry_url, &config, *dummyadapter, &logger) + AdapterTypes::DummyAdapter(dummy_adapter) => { + let whoami = Validator { + url: sentry_url, + token: dummy_adapter + .get_auth(&dummy_adapter.whoami()) + .expect("Failed to get Authentication token for Who am I"), + }; + + let sentry = SentryApi::new(*dummy_adapter, logger.clone(), config, whoami) + .expect("Should create the SentryApi"); + + Worker::from_sentry(sentry).run(is_single_tick) } } } diff --git a/validator_worker/src/sentry_interface.rs b/validator_worker/src/sentry_interface.rs index 0d14ea71c..3ec364ab9 100644 --- a/validator_worker/src/sentry_interface.rs +++ b/validator_worker/src/sentry_interface.rs @@ -1,6 +1,8 @@ -use std::{collections::HashMap, time::Duration}; +use std::{ + collections::{hash_map::Entry, HashMap, HashSet}, + time::Duration, +}; -use chrono::{DateTime, Utc}; use futures::future::{join_all, try_join_all, TryFutureExt}; use reqwest::{Client, Method}; use slog::Logger; @@ -9,13 +11,13 @@ use primitives::{ adapter::Adapter, balances::{CheckedState, UncheckedState}, sentry::{ - AccountingResponse, AllSpendersResponse, EventAggregateResponse, LastApprovedResponse, - SuccessResponse, ValidatorMessageResponse, + AccountingResponse, AllSpendersResponse, LastApprovedResponse, SuccessResponse, + ValidatorMessageResponse, }, spender::Spender, util::ApiUrl, validator::MessageTypes, - Address, ChannelId, Config, ValidatorId, + Address, Channel, ChannelId, Config, ValidatorId, }; use thiserror::Error; @@ -32,42 +34,61 @@ pub struct Validator { pub token: AuthToken, } -#[derive(Debug, Clone)] -pub struct SentryApi { - pub adapter: A, - pub client: Client, - pub logger: Logger, - pub config: Config, - pub whoami: Validator, - pub propagate_to: Validators, -} - #[derive(Debug, Error)] pub enum Error { #[error("Building client: {0}")] BuildingClient(reqwest::Error), #[error("Making a request: {0}")] Request(#[from] reqwest::Error), + /// Error returned when the passed [`Validators`] to [`SentryApi::init()`] do not contain + /// the _Who am I_ a record of the [`Adapter::whoami()`] #[error( "Missing validator URL & Auth token entry for whoami {whoami:#?} in the propagation list" )] WhoamiMissing { whoami: ValidatorId }, - #[error("Failed to parse validator url: {0}")] - ValidatorUrl(#[from] primitives::util::api::ParseError), } -impl SentryApi { - pub fn init( +#[derive(Debug, Clone)] +pub struct SentryApi { + pub adapter: A, + pub client: Client, + pub logger: Logger, + pub config: Config, + pub whoami: Validator, + /// If set with [`Validators`], `propagate_to` should contain the `whoami` [`Validator`]. + pub propagate_to: P, +} + +impl SentryApi { + pub fn new( adapter: A, logger: Logger, config: Config, - propagate_to: Validators, - ) -> Result { + whoami_validator: Validator, + ) -> Result, Error> { let client = Client::builder() .timeout(Duration::from_millis(config.fetch_timeout.into())) .build() .map_err(Error::BuildingClient)?; + Ok(SentryApi { + adapter, + client, + logger, + config, + whoami: whoami_validator, + propagate_to: (), + }) + } + + /// Initialize the [`SentryApi`] and makes sure that [`Adapter::whoami()`] is present in [`Validators`]. + /// Sets the _Who am I_ [`ApiUrl`] and the Authentication Token for calls requiring authentication. + pub fn init( + adapter: A, + logger: Logger, + config: Config, + propagate_to: Validators, + ) -> Result, Error> { let whoami = propagate_to .get(&adapter.whoami()) .cloned() @@ -75,33 +96,31 @@ impl SentryApi { whoami: adapter.whoami(), })?; - Ok(Self { - adapter, - client, - logger, - config, - whoami, - propagate_to, - }) + let sentry_api = SentryApi::new(adapter, logger, config, whoami)?; + + Ok(sentry_api.with_propagate(propagate_to)) } - pub async fn propagate( - &self, - channel: ChannelId, - messages: &[&MessageTypes], - ) -> Vec { - join_all(self.propagate_to.iter().map(|(validator_id, validator)| { - propagate_to::( - &self.client, - self.config.propagation_timeout, - channel, - (*validator_id, validator), - messages, - ) - })) - .await + /// If the _Who am I_ Validator is not found in `propagate_to` it will add it. + /// Propagation should happen to all validators Sentry instances including _Who am I_ + /// i.e. the current validator + pub fn with_propagate(self, mut propagate_to: Validators) -> SentryApi { + let _ = propagate_to + .entry(self.adapter.whoami()) + .or_insert_with(|| self.whoami.clone()); + + SentryApi { + adapter: self.adapter, + client: self.client, + logger: self.logger, + config: self.config, + whoami: self.whoami, + propagate_to, + } } +} +impl SentryApi { pub async fn get_latest_msg( &self, channel: ChannelId, @@ -218,38 +237,89 @@ impl SentryApi { .join(&format!("v5/channel/{}/accounting", channel)) .expect("Should not error when creating endpoint"); - self.client + let response = self + .client .get(url) .bearer_auth(&self.whoami.token) .send() - .await? + .await?; + + assert_eq!(reqwest::StatusCode::OK, response.status()); + + response .json::>() .map_err(Error::Request) .await } - #[deprecated = "V5 no longer needs event aggregates"] - pub async fn get_event_aggregates( - &self, - after: DateTime, - ) -> Result { - let url = self - .whoami - .url - .join(&format!( - "events-aggregates?after={}", - after.timestamp_millis() - )) - .expect("Should not error when creating endpoint"); + /// Fetches all `Campaign`s from the _Who am I_ Sentry. + /// It builds the `Channel`s to be processed alongside all the `Validator`s' url & auth token. + pub async fn collect_channels(&self) -> Result<(HashSet, Validators), Error> { + let all_campaigns_timeout = Duration::from_millis(self.config.all_campaigns_timeout as u64); + let client = reqwest::Client::builder() + .timeout(all_campaigns_timeout) + .build()?; + + let campaigns = + campaigns::all_campaigns(client, &self.whoami, Some(self.adapter.whoami())).await?; + let channels = campaigns + .iter() + .map(|campaign| campaign.channel) + .collect::>(); + + let validators = campaigns + .into_iter() + .fold(Validators::new(), |mut acc, campaign| { + for validator_desc in campaign.validators.iter() { + // if Validator is already there, we can just skip it + // remember, the campaigns are ordered by `created DESC` + // so we will always get the latest Validator url first + match acc.entry(validator_desc.id) { + Entry::Occupied(_) => continue, + Entry::Vacant(entry) => { + // try to parse the url of the Validator Desc + let validator_url = validator_desc.url.parse::(); + // and also try to find the Auth token in the config + + // if there was an error with any of the operations, skip this `ValidatorDesc` + let auth_token = self.adapter.get_auth(&validator_desc.id); + + // only if `ApiUrl` parsing is `Ok` & Auth Token is found in the `Adapter` + if let (Ok(url), Ok(auth_token)) = (validator_url, auth_token) { + // add an entry for propagation + entry.insert(Validator { + url, + token: auth_token, + }); + } + // otherwise it will try to do the same things on the next encounter of this `ValidatorId` + } + } + } + + acc + }); + + Ok((channels, validators)) + } +} - self.client - .get(url) - .bearer_auth(&self.whoami.token) - .send() - .await? - .json() - .map_err(Error::Request) - .await +impl SentryApi { + pub async fn propagate( + &self, + channel: ChannelId, + messages: &[&MessageTypes], + ) -> Vec { + join_all(self.propagate_to.iter().map(|(validator_id, validator)| { + propagate_to::( + &self.client, + self.config.propagation_timeout, + channel, + (*validator_id, validator), + messages, + ) + })) + .await } } @@ -348,25 +418,28 @@ pub mod campaigns { use futures::future::try_join_all; use primitives::{ sentry::campaign::{CampaignListQuery, CampaignListResponse, ValidatorParam}, - util::ApiUrl, Campaign, ValidatorId, }; use reqwest::Client; + use super::Validator; + /// Fetches all `Campaign`s from `sentry` by going through all pages and collecting the `Campaign`s into a single `Vec` + /// You can filter by `&validator=0x...` when passing `for_validator`. + /// This will return campaigns that include the provided `for_validator` validator. pub async fn all_campaigns( client: Client, - sentry_url: &ApiUrl, - whoami: ValidatorId, + whoami: &Validator, + for_validator: Option, ) -> Result, reqwest::Error> { - let first_page = fetch_page(&client, sentry_url, 0, whoami).await?; + let first_page = fetch_page(&client, whoami, 0, for_validator).await?; if first_page.pagination.total_pages < 2 { Ok(first_page.campaigns) } else { let all = try_join_all( (1..first_page.pagination.total_pages) - .map(|i| fetch_page(&client, sentry_url, i, whoami)), + .map(|i| fetch_page(&client, whoami, i, for_validator)), ) .await?; @@ -380,18 +453,19 @@ pub mod campaigns { async fn fetch_page( client: &Client, - sentry_url: &ApiUrl, + whoami: &Validator, page: u64, - validator: ValidatorId, + for_validator: Option, ) -> Result { let query = CampaignListQuery { page, active_to_ge: Utc::now(), creator: None, - validator: Some(ValidatorParam::Validator(validator)), + validator: for_validator.map(ValidatorParam::Validator), }; - let endpoint = sentry_url + let endpoint = whoami + .url .join(&format!( "v5/campaign/list?{}", serde_urlencoded::to_string(query).expect("Should not fail to serialize") diff --git a/validator_worker/src/worker.rs b/validator_worker/src/worker.rs index 167eab9cf..e51c8bfda 100644 --- a/validator_worker/src/worker.rs +++ b/validator_worker/src/worker.rs @@ -1,8 +1,5 @@ -use crate::{ - channel::{channel_tick, collect_channels}, - SentryApi, -}; -use primitives::{adapter::Adapter, util::ApiUrl, Config}; +use crate::{channel::channel_tick, SentryApi}; +use primitives::{adapter::Adapter, Config}; use slog::{error, info, Logger}; use std::{error::Error, time::Duration}; @@ -13,92 +10,78 @@ use futures::{ use tokio::{runtime::Runtime, time::sleep}; #[derive(Debug, Clone)] -pub struct Args { - sentry_url: ApiUrl, - config: Config, - adapter: A, +pub struct Worker { + /// SentryApi with set `whoami` validator + /// Requires an unlocked adapter to create [`SentryApi`], use [`Worker::init_unlock`]. + pub sentry: SentryApi, + pub config: Config, + /// The unlocked Adapter + pub adapter: A, + pub logger: Logger, } -pub fn run( - is_single_tick: bool, - sentry_url: ApiUrl, - config: &Config, - mut adapter: A, - logger: &Logger, -) -> Result<(), Box> { - // unlock adapter - adapter.unlock()?; +impl Worker { + /// Requires an unlocked [`Adapter`] + pub fn from_sentry(sentry: SentryApi) -> Self { + Self { + config: sentry.config.clone(), + adapter: sentry.adapter.clone(), + logger: sentry.logger.clone(), + sentry, + } + } - let args = Args { - sentry_url, - config: config.to_owned(), - adapter, - }; + /// Runs the validator in a single tick or it runs infinitely. + /// Uses [`tokio::runtime::Runtime`] + pub fn run(self, is_single_tick: bool) -> Result<(), Box> { + // Create the runtime + let rt = Runtime::new()?; - // Create the runtime - let rt = Runtime::new()?; + if is_single_tick { + rt.block_on(self.all_channels_tick()); + } else { + rt.block_on(self.infinite()); + } - if is_single_tick { - rt.block_on(all_channels_tick(args, logger)); - } else { - rt.block_on(infinite(args, logger)); + Ok(()) } - Ok(()) -} - -pub async fn infinite(args: Args, logger: &Logger) { - loop { - let arg = args.clone(); - let wait_time_future = sleep(Duration::from_millis(arg.config.wait_time as u64)); + pub async fn infinite(&self) { + loop { + let wait_time_future = sleep(Duration::from_millis(self.config.wait_time as u64)); - let _result = join(all_channels_tick(arg, logger), wait_time_future).await; + let _result = join(self.all_channels_tick(), wait_time_future).await; + } } -} -pub async fn all_channels_tick(args: Args, logger: &Logger) { - let (channels, validators) = match collect_channels( - &args.adapter, - &args.sentry_url, - &args.config, - logger, - ) - .await - { - Ok(res) => res, - Err(err) => { - error!(logger, "Error collecting all channels for tick"; "collect_channels" => ?err, "main" => "all_channels_tick"); - return; - } - }; - let channels_size = channels.len(); + pub async fn all_channels_tick(&self) { + let logger = &self.logger; - // initialize SentryApi once we have all the Campaign Validators we need to propagate messages to - let sentry = match SentryApi::init( - args.adapter.clone(), - logger.clone(), - args.config.clone(), - validators.clone(), - ) { - Ok(sentry) => sentry, - Err(err) => { - error!(logger, "Failed to initialize SentryApi for all channels"; "SentryApi::init()" => ?err, "main" => "all_channels_tick"); - return; - } - }; + let (channels, validators) = match self.sentry.collect_channels().await { + Ok(res) => res, + Err(err) => { + error!(logger, "Error collecting all channels for tick"; "collect_channels" => ?err, "main" => "all_channels_tick"); + return; + } + }; + let channels_size = channels.len(); - let tick_results = join_all(channels.into_iter().map(|channel| { - channel_tick(&sentry, &args.config, channel).map_err(move |err| (channel, err)) - })) - .await; + let sentry_with_propagate = self.sentry.clone().with_propagate(validators); - for (channel, channel_err) in tick_results.into_iter().filter_map(Result::err) { - error!(logger, "Error processing Channel"; "channel" => ?channel, "error" => ?channel_err, "main" => "all_channels_tick"); - } + let tick_results = join_all(channels.into_iter().map(|channel| { + channel_tick(&sentry_with_propagate, &self.config, channel) + .map_err(move |err| (channel, err)) + })) + .await; - info!(logger, "Processed {} channels", channels_size); + for (channel, channel_err) in tick_results.into_iter().filter_map(Result::err) { + error!(logger, "Error processing Channel"; "channel" => ?channel, "error" => ?channel_err, "main" => "all_channels_tick"); + } + + info!(logger, "Processed {} channels", channels_size); - if channels_size >= args.config.max_channels as usize { - error!(logger, "WARNING: channel limit cfg.MAX_CHANNELS={} reached", &args.config.max_channels; "main" => "all_channels_tick"); + if channels_size >= self.config.max_channels as usize { + error!(logger, "WARNING: channel limit cfg.MAX_CHANNELS={} reached", &self.config.max_channels; "main" => "all_channels_tick"); + } } }