From c523b528f671731f4f312a9a6d3d94dfe0beedce Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Tue, 25 Jan 2022 14:35:03 +0200 Subject: [PATCH 01/21] validator worker: 3 test cases for leader tick, 2 test cases for follower tick --- sentry/Cargo.toml | 13 +- test_harness/src/lib.rs | 388 +++++++++++++++++++++++++++++++++++++++- 2 files changed, 393 insertions(+), 8 deletions(-) diff --git a/sentry/Cargo.toml b/sentry/Cargo.toml index 19a370d03..0c557d85e 100644 --- a/sentry/Cargo.toml +++ b/sentry/Cargo.toml @@ -27,13 +27,21 @@ 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"] } +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", @@ -56,4 +64,3 @@ once_cell = "1.5.2" [dev-dependencies] pretty_assertions = "1" - diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 3acfe16e1..b9f85ea14 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -209,16 +209,21 @@ mod tests { use super::*; use adapter::ethereum::test_util::{GANACHE_URL, KEYSTORES}; use adapter::{prelude::*, Adapter, Ethereum}; + use chrono::Utc; use primitives::{ - balances::CheckedState, + balances::{CheckedState, UncheckedState}, 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}, + validator::{ApproveState, MessageTypes, NewState}, Balances, BigNum, Campaign, CampaignId, Channel, ChannelId, UnifiedNum, }; use reqwest::{Client, StatusCode}; - use validator_worker::{sentry_interface::Validator, worker::Worker, SentryApi}; + use validator_worker::{ + follower, follower::ApproveStateResult, leader, sentry_interface::Validator, + worker::Worker, GetStateRoot, SentryApi, + }; #[tokio::test] #[ignore = "We use a snapshot, however, we have left this test for convenience"] @@ -230,7 +235,7 @@ mod tests { } static CAMPAIGN_1: Lazy = Lazy::new(|| { - use chrono::{TimeZone, Utc}; + use chrono::TimeZone; use primitives::{ campaign::{Active, Pricing, PricingBounds, Validators}, targeting::Rules, @@ -310,10 +315,10 @@ mod tests { /// This Campaign's Channel has switched leader & follower compared to [`CAMPAIGN_1`] /// /// `Channel.leader = VALIDATOR["follower"].address` - /// `Channel.follower = VALIDATOR["leader"],address` + /// `Channel.follower = VALIDATOR["leader"].address` /// See [`VALIDATORS`] for more details. static CAMPAIGN_2: Lazy = Lazy::new(|| { - use chrono::{TimeZone, Utc}; + use chrono::TimeZone; use primitives::{ campaign::{Active, Pricing, PricingBounds, Validators}, targeting::Rules, @@ -884,6 +889,379 @@ mod tests { .send() .await?) } + + #[tokio::test(flavor = "multi_thread", worker_threads = 4)] + async fn leader_and_follower_tick_test() { + // Use snapshot contracts + let contracts = SNAPSHOT_CONTRACTS.clone(); + + let leader = VALIDATORS[&LEADER].clone(); + let follower = VALIDATORS[&FOLLOWER].clone(); + + // setup Sentry & returns Adapter + let leader_adapter = setup_sentry(&leader) + .await + .unlock() + .expect("Failed to unlock Leader ethereum adapter"); + let follower_adapter = setup_sentry(&follower) + .await + .unlock() + .expect("Failed to unlock Follower ethereum adapter"); + + 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") + }; + + // leader::tick() accepts a sentry instance with validators to propagate to + let leader_sentry_with_propagate = { + let all_channels_validators = leader_sentry + .collect_channels() + .await + .expect("Should collect channels"); + + leader_sentry + .clone() + .with_propagate(all_channels_validators.1) + }; + + 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") + }; + + // follower::tick() accepts a sentry instance with validators to propagate to + let follower_sentry_with_propagate = { + let all_channels_validators = follower_sentry + .collect_channels() + .await + .expect("Should collect channels"); + + follower_sentry + .clone() + .with_propagate(all_channels_validators.1) + }; + + let api_client = reqwest::Client::new(); + let advertiser_adapter = Adapter::new( + Ethereum::init(KEYSTORES[&ADVERTISER].clone(), &GANACHE_CONFIG) + .expect("Should initialize creator adapter"), + ) + .unlock() + .expect("Should unlock advertiser's Ethereum Adapter"); + let leader_token = advertiser_adapter + .get_auth(leader_adapter.whoami()) + .expect("Get authentication"); + + let follower_token = advertiser_adapter + .get_auth(follower_adapter.whoami()) + .expect("Get authentication"); + let create_campaign_1 = CreateCampaign::from_campaign(CAMPAIGN_1.clone()); + + create_campaign( + &api_client, + &leader.sentry_url, + &leader_token, + &create_campaign_1, + ) + .await + .expect("Should return Response"); + + create_campaign( + &api_client, + &follower.sentry_url, + &follower_token, + &create_campaign_1, + ) + .await + .expect("Should return Response"); + + // Testing leader tick + // Balances is empty + // We are just testing if all the calls in the tick function go through for now + // New state should be none because we haven't propagated any message + // a heartbeat will be generated because there isn't an existing one + { + let balances = Balances::new(); + let tick_status = leader::tick( + &leader_sentry_with_propagate, + CAMPAIGN_1.channel, + balances, + &contracts.token.0, + ) + .await + .expect("should tick"); + assert!(tick_status.new_state.is_none()); + assert!(tick_status.heartbeat.is_some()); + } + + // Testing leader tick with existing balances but conditions to generate NewState aren't met + // should_generate_new_state can also be false if accounting_balance + // for spender is ≤ new_state.balances for spender AND the same is true for earners. + // No new heartbeat will be generated because we have the heartbeat from the previous test case + // A new heartbeat will be generated only if the old one is older than config.heartbeat_time + { + let accounting_balances = get_test_accounting_balances(); + + let new_state = get_new_state_msg( + &leader_sentry, + &accounting_balances, + contracts.token.0.precision.get(), + ); + + leader_sentry_with_propagate + .propagate( + CAMPAIGN_1.channel.id(), + &[&MessageTypes::NewState(new_state)], + ) + .await; + + let tick_status = leader::tick( + &leader_sentry_with_propagate, + CAMPAIGN_1.channel, + accounting_balances, + &contracts.token.0, + ) + .await + .expect("should tick"); + + assert!( + tick_status.new_state.is_none(), + "No new_state message should be generated because balances haven't changed" + ); + assert!(tick_status.heartbeat.is_none(), "No heartbeat message should be generated because the last one was generated in less time than config.heartbeat_time"); + } + + // Verify new_state and heartbeats are as expected after on_new_accounting() is called + { + let mut accounting_balances = get_test_accounting_balances(); + + let new_state = get_new_state_msg( + &leader_sentry, + &accounting_balances, + contracts.token.0.precision.get(), + ); + + leader_sentry_with_propagate + .propagate( + CAMPAIGN_1.channel.id(), + &[&MessageTypes::NewState(new_state)], + ) + .await; + + // Balances are being changed since the last propagated message ensuring that a new NewState will be generated + accounting_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .expect("Should spend for Publisher"); + + let tick_status = leader::tick( + &leader_sentry_with_propagate, + CAMPAIGN_1.channel, + accounting_balances, + &contracts.token.0, + ) + .await + .expect("should tick"); + + assert!( + tick_status.new_state.is_some(), + "A NewState message should be generated because the balances will differ" + ); + + let propagation_result = tick_status.new_state.unwrap(); + assert_eq!(propagation_result.len(), 1); + assert_eq!( + propagation_result.get(0).unwrap().as_ref().unwrap(), + &CAMPAIGN_1.channel.leader + ); + assert!(tick_status.heartbeat.is_none(), "No heartbeat message should be generated because the last one was generated in less time than config.heartbeat_time"); + } + + // Testing follower tick + // Test case where the new state state_root matches the latest and a heartbeat is generated + { + let accounting_balances = get_test_accounting_balances(); + + let new_state = get_new_state_msg( + &leader_sentry, + &accounting_balances, + contracts.token.0.precision.get(), + ); + + let approve_state = ApproveState { + state_root: new_state.state_root.clone(), + signature: new_state.signature.clone(), + is_healthy: true, + }; + + // Propagating a NewState message to the leader sentry + leader_sentry_with_propagate + .propagate( + CAMPAIGN_1.channel.id(), + &[&MessageTypes::NewState(new_state.clone())], + ) + .await; + + // Propagating an NewState/ApproveState pair to the follower sentry + follower_sentry_with_propagate + .propagate( + CAMPAIGN_1.channel.id(), + &[ + &MessageTypes::ApproveState(approve_state), + &MessageTypes::NewState(new_state), + ], + ) + .await; + + let tick_result = follower::tick( + &follower_sentry_with_propagate, + CAMPAIGN_1.channel, + HashMap::new(), + accounting_balances, + &contracts.token.0, + ) + .await + .expect("should tick"); + + assert!(tick_result.heartbeat.is_some(), "A heartbeat should be generated because one hasn't been generated yet for the follower"); + assert!(matches!( + tick_result.approve_state, + ApproveStateResult::Sent(None), + ), "State roots for latest NewState and ApproveState should match therefore we don't need to approve a NewState"); + } + + // Testing follower tick + // Test case where there is no ApproveState for the follower so one has to be generated + { + let mut accounting_balances = get_test_accounting_balances(); + + let new_state = get_new_state_msg( + &leader_sentry, + &accounting_balances, + contracts.token.0.precision.get(), + ); + + let approve_state = ApproveState { + state_root: new_state.state_root.clone(), + signature: new_state.signature.clone(), + is_healthy: true, + }; + + leader_sentry_with_propagate + .propagate( + CAMPAIGN_1.channel.id(), + &[&MessageTypes::NewState(new_state)], + ) + .await; + + follower_sentry_with_propagate + .propagate( + CAMPAIGN_1.channel.id(), + &[&MessageTypes::ApproveState(approve_state)], + ) + .await; + + accounting_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .expect("Should spend for Publisher"); + + // Propagating a new NewState so that the follower has to generate an ApproveState message + let new_state = get_new_state_msg( + &leader_sentry, + &accounting_balances, + contracts.token.0.precision.get(), + ); + + leader_sentry_with_propagate + .propagate( + CAMPAIGN_1.channel.id(), + &[&MessageTypes::NewState(new_state)], + ) + .await; + + let tick_result = follower::tick( + &follower_sentry_with_propagate, + CAMPAIGN_1.channel, + HashMap::new(), + accounting_balances, + &contracts.token.0, + ) + .await + .expect("should tick"); + + assert!(tick_result.heartbeat.is_none(), "No heartbeat should be sent as a recent one has already been generated for the followe"); + assert!( + matches!(tick_result.approve_state, ApproveStateResult::Sent(Some(_))), + "ApproveState has been sent successfully" + ); + } + } + + fn get_new_state_msg( + sentry: &SentryApi, + accounting_balances: &Balances, + precision: u8, + ) -> NewState { + let state_root = accounting_balances + .encode(CAMPAIGN_1.channel.id(), precision) + .expect("should encode"); + let signature = sentry.adapter.sign(&state_root).expect("should sign"); + NewState { + state_root: state_root.to_string(), + signature, + balances: accounting_balances.clone().into_unchecked(), + } + } + + fn get_test_accounting_balances() -> Balances { + let mut accounting_balances = Balances::new(); + accounting_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.leader.to_address(), + UnifiedNum::from(27_000), + ) + .expect("Should spend for Leader"); + accounting_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.follower.to_address(), + UnifiedNum::from(18_000), + ) + .expect("Should spend for Follower"); + accounting_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .expect("Should spend for Publisher"); + accounting_balances + } } pub mod run { use std::{env::current_dir, net::SocketAddr, path::PathBuf}; From f90e07ccea9d3009a6060e8111f2ea9b7d08d3fd Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Tue, 25 Jan 2022 15:13:42 +0200 Subject: [PATCH 02/21] additional comment to an assert --- test_harness/src/lib.rs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index b9f85ea14..68bc28dcb 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -1100,7 +1100,8 @@ mod tests { assert_eq!(propagation_result.len(), 1); assert_eq!( propagation_result.get(0).unwrap().as_ref().unwrap(), - &CAMPAIGN_1.channel.leader + &CAMPAIGN_1.channel.leader, + "The propagation result should be from the leader" ); assert!(tick_status.heartbeat.is_none(), "No heartbeat message should be generated because the last one was generated in less time than config.heartbeat_time"); } From 17c7d986bd13d5112c1d4be55ee6067a19819b4f Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Tue, 25 Jan 2022 20:15:25 +0200 Subject: [PATCH 03/21] moved campaign creation to beginning of test --- test_harness/src/lib.rs | 66 ++++++++++++++++++++--------------------- 1 file changed, 32 insertions(+), 34 deletions(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 68bc28dcb..0935caa2d 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -907,6 +907,38 @@ mod tests { .await .unlock() .expect("Failed to unlock Follower ethereum adapter"); + let create_campaign_1 = CreateCampaign::from_campaign(CAMPAIGN_1.clone()); + let api_client = reqwest::Client::new(); + let advertiser_adapter = Adapter::new( + Ethereum::init(KEYSTORES[&ADVERTISER].clone(), &GANACHE_CONFIG) + .expect("Should initialize creator adapter"), + ) + .unlock() + .expect("Should unlock advertiser's Ethereum Adapter"); + let leader_token = advertiser_adapter + .get_auth(leader_adapter.whoami()) + .expect("Get authentication"); + + let follower_token = advertiser_adapter + .get_auth(follower_adapter.whoami()) + .expect("Get authentication"); + create_campaign( + &api_client, + &leader.sentry_url, + &leader_token, + &create_campaign_1, + ) + .await + .expect("Should return Response"); + + create_campaign( + &api_client, + &follower.sentry_url, + &follower_token, + &create_campaign_1, + ) + .await + .expect("Should return Response"); let leader_sentry = { // should get self Auth from Leader's EthereumAdapter @@ -970,40 +1002,6 @@ mod tests { .with_propagate(all_channels_validators.1) }; - let api_client = reqwest::Client::new(); - let advertiser_adapter = Adapter::new( - Ethereum::init(KEYSTORES[&ADVERTISER].clone(), &GANACHE_CONFIG) - .expect("Should initialize creator adapter"), - ) - .unlock() - .expect("Should unlock advertiser's Ethereum Adapter"); - let leader_token = advertiser_adapter - .get_auth(leader_adapter.whoami()) - .expect("Get authentication"); - - let follower_token = advertiser_adapter - .get_auth(follower_adapter.whoami()) - .expect("Get authentication"); - let create_campaign_1 = CreateCampaign::from_campaign(CAMPAIGN_1.clone()); - - create_campaign( - &api_client, - &leader.sentry_url, - &leader_token, - &create_campaign_1, - ) - .await - .expect("Should return Response"); - - create_campaign( - &api_client, - &follower.sentry_url, - &follower_token, - &create_campaign_1, - ) - .await - .expect("Should return Response"); - // Testing leader tick // Balances is empty // We are just testing if all the calls in the tick function go through for now From e3fa96859b45edea0188c50757a1789bf8bbc704 Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Wed, 26 Jan 2022 18:32:14 +0200 Subject: [PATCH 04/21] moved validator worker tests within the full test --- test_harness/src/lib.rs | 94 ++++++++++++++++------------------------- 1 file changed, 36 insertions(+), 58 deletions(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 0935caa2d..26e365a6a 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -207,7 +207,10 @@ mod tests { use crate::run::run_sentry_app; use super::*; - use adapter::ethereum::test_util::{GANACHE_URL, KEYSTORES}; + use adapter::ethereum::{ + test_util::{GANACHE_URL, KEYSTORES}, + UnlockedWallet, + }; use adapter::{prelude::*, Adapter, Ethereum}; use chrono::Utc; use primitives::{ @@ -809,6 +812,15 @@ mod tests { pretty_assertions::assert_eq!(expected_accounting, actual_accounting); } + + // Running validator worker tests + leader_and_follower_tick_test( + leader_sentry, + follower_sentry, + leader_adapter, + follower_adapter, + ) + .await; } async fn setup_sentry(validator: &TestValidator) -> adapter::ethereum::LockedAdapter { @@ -890,23 +902,18 @@ mod tests { .await?) } - #[tokio::test(flavor = "multi_thread", worker_threads = 4)] - async fn leader_and_follower_tick_test() { + async fn leader_and_follower_tick_test( + leader_sentry: SentryApi, + follower_sentry: SentryApi, + leader_adapter: Adapter, UnlockedState>, + follower_adapter: Adapter, UnlockedState>, + ) { // Use snapshot contracts let contracts = SNAPSHOT_CONTRACTS.clone(); let leader = VALIDATORS[&LEADER].clone(); let follower = VALIDATORS[&FOLLOWER].clone(); - // setup Sentry & returns Adapter - let leader_adapter = setup_sentry(&leader) - .await - .unlock() - .expect("Failed to unlock Leader ethereum adapter"); - let follower_adapter = setup_sentry(&follower) - .await - .unlock() - .expect("Failed to unlock Follower ethereum adapter"); let create_campaign_1 = CreateCampaign::from_campaign(CAMPAIGN_1.clone()); let api_client = reqwest::Client::new(); let advertiser_adapter = Adapter::new( @@ -940,25 +947,6 @@ mod tests { .await .expect("Should return Response"); - 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") - }; - // leader::tick() accepts a sentry instance with validators to propagate to let leader_sentry_with_propagate = { let all_channels_validators = leader_sentry @@ -971,25 +959,6 @@ mod tests { .with_propagate(all_channels_validators.1) }; - 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") - }; - // follower::tick() accepts a sentry instance with validators to propagate to let follower_sentry_with_propagate = { let all_channels_validators = follower_sentry @@ -1018,7 +987,7 @@ mod tests { .await .expect("should tick"); assert!(tick_status.new_state.is_none()); - assert!(tick_status.heartbeat.is_some()); + // assert!(tick_status.heartbeat.is_some()); } // Testing leader tick with existing balances but conditions to generate NewState aren't met @@ -1095,12 +1064,18 @@ mod tests { ); let propagation_result = tick_status.new_state.unwrap(); - assert_eq!(propagation_result.len(), 1); assert_eq!( - propagation_result.get(0).unwrap().as_ref().unwrap(), - &CAMPAIGN_1.channel.leader, - "The propagation result should be from the leader" + propagation_result.len(), + 2, + "There should be 2 results - one for the leader and one for the follower" ); + propagation_result.into_iter().for_each(|r| { + let validator_id = r.expect("There should be a ValidatorId"); + assert!( + validator_id == CAMPAIGN_1.channel.leader + || validator_id == CAMPAIGN_1.channel.follower + ); + }); assert!(tick_status.heartbeat.is_none(), "No heartbeat message should be generated because the last one was generated in less time than config.heartbeat_time"); } @@ -1150,7 +1125,7 @@ mod tests { .await .expect("should tick"); - assert!(tick_result.heartbeat.is_some(), "A heartbeat should be generated because one hasn't been generated yet for the follower"); + // assert!(tick_result.heartbeat.is_some(), "A heartbeat should be generated because one hasn't been generated yet for the follower"); assert!(matches!( tick_result.approve_state, ApproveStateResult::Sent(None), @@ -1177,14 +1152,17 @@ mod tests { leader_sentry_with_propagate .propagate( CAMPAIGN_1.channel.id(), - &[&MessageTypes::NewState(new_state)], + &[&MessageTypes::NewState(new_state.clone())], ) .await; follower_sentry_with_propagate .propagate( CAMPAIGN_1.channel.id(), - &[&MessageTypes::ApproveState(approve_state)], + &[ + &MessageTypes::NewState(new_state), + &MessageTypes::ApproveState(approve_state), + ], ) .await; From c5ef9daa86feb6e8138cc9e16389a9dc14efeae0 Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Thu, 27 Jan 2022 20:53:37 +0200 Subject: [PATCH 05/21] Refactored tests, heartbeat can now be tested in validator worker tests --- test_harness/src/lib.rs | 68 ++++++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 32 deletions(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 26e365a6a..dcf8ba68b 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -908,13 +908,17 @@ mod tests { leader_adapter: Adapter, UnlockedState>, follower_adapter: Adapter, UnlockedState>, ) { + let mut new_channel = CAMPAIGN_1.channel.clone(); + new_channel.nonce = 1_u64.into(); + let mut campaign = CAMPAIGN_1.clone(); + campaign.channel = new_channel; // Use snapshot contracts let contracts = SNAPSHOT_CONTRACTS.clone(); let leader = VALIDATORS[&LEADER].clone(); let follower = VALIDATORS[&FOLLOWER].clone(); - let create_campaign_1 = CreateCampaign::from_campaign(CAMPAIGN_1.clone()); + let create_campaign_1 = CreateCampaign::from_campaign(campaign.clone()); let api_client = reqwest::Client::new(); let advertiser_adapter = Adapter::new( Ethereum::init(KEYSTORES[&ADVERTISER].clone(), &GANACHE_CONFIG) @@ -980,14 +984,17 @@ mod tests { let balances = Balances::new(); let tick_status = leader::tick( &leader_sentry_with_propagate, - CAMPAIGN_1.channel, + campaign.channel, balances, &contracts.token.0, ) .await .expect("should tick"); - assert!(tick_status.new_state.is_none()); - // assert!(tick_status.heartbeat.is_some()); + assert!( + tick_status.new_state.is_none(), + "No new state will be generated" + ); + assert!(tick_status.heartbeat.is_some(), "This is the first Heartbeat for this channel on this validator so it will be propagated"); } // Testing leader tick with existing balances but conditions to generate NewState aren't met @@ -1005,15 +1012,12 @@ mod tests { ); leader_sentry_with_propagate - .propagate( - CAMPAIGN_1.channel.id(), - &[&MessageTypes::NewState(new_state)], - ) + .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) .await; let tick_status = leader::tick( &leader_sentry_with_propagate, - CAMPAIGN_1.channel, + campaign.channel, accounting_balances, &contracts.token.0, ) @@ -1038,20 +1042,17 @@ mod tests { ); leader_sentry_with_propagate - .propagate( - CAMPAIGN_1.channel.id(), - &[&MessageTypes::NewState(new_state)], - ) + .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) .await; // Balances are being changed since the last propagated message ensuring that a new NewState will be generated accounting_balances - .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) .expect("Should spend for Publisher"); let tick_status = leader::tick( &leader_sentry_with_propagate, - CAMPAIGN_1.channel, + campaign.channel, accounting_balances, &contracts.token.0, ) @@ -1072,8 +1073,8 @@ mod tests { propagation_result.into_iter().for_each(|r| { let validator_id = r.expect("There should be a ValidatorId"); assert!( - validator_id == CAMPAIGN_1.channel.leader - || validator_id == CAMPAIGN_1.channel.follower + validator_id == campaign.channel.leader + || validator_id == campaign.channel.follower ); }); assert!(tick_status.heartbeat.is_none(), "No heartbeat message should be generated because the last one was generated in less time than config.heartbeat_time"); @@ -1099,7 +1100,7 @@ mod tests { // Propagating a NewState message to the leader sentry leader_sentry_with_propagate .propagate( - CAMPAIGN_1.channel.id(), + campaign.channel.id(), &[&MessageTypes::NewState(new_state.clone())], ) .await; @@ -1107,7 +1108,7 @@ mod tests { // Propagating an NewState/ApproveState pair to the follower sentry follower_sentry_with_propagate .propagate( - CAMPAIGN_1.channel.id(), + campaign.channel.id(), &[ &MessageTypes::ApproveState(approve_state), &MessageTypes::NewState(new_state), @@ -1115,9 +1116,9 @@ mod tests { ) .await; - let tick_result = follower::tick( + let tick_status = follower::tick( &follower_sentry_with_propagate, - CAMPAIGN_1.channel, + campaign.channel, HashMap::new(), accounting_balances, &contracts.token.0, @@ -1125,9 +1126,9 @@ mod tests { .await .expect("should tick"); - // assert!(tick_result.heartbeat.is_some(), "A heartbeat should be generated because one hasn't been generated yet for the follower"); + assert!(tick_status.heartbeat.is_some(), "This is the first Heartbeat for this channel on this validator so it will be propagated"); assert!(matches!( - tick_result.approve_state, + tick_status.approve_state, ApproveStateResult::Sent(None), ), "State roots for latest NewState and ApproveState should match therefore we don't need to approve a NewState"); } @@ -1151,14 +1152,14 @@ mod tests { leader_sentry_with_propagate .propagate( - CAMPAIGN_1.channel.id(), + campaign.channel.id(), &[&MessageTypes::NewState(new_state.clone())], ) .await; follower_sentry_with_propagate .propagate( - CAMPAIGN_1.channel.id(), + campaign.channel.id(), &[ &MessageTypes::NewState(new_state), &MessageTypes::ApproveState(approve_state), @@ -1167,7 +1168,7 @@ mod tests { .await; accounting_balances - .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) .expect("Should spend for Publisher"); // Propagating a new NewState so that the follower has to generate an ApproveState message @@ -1179,14 +1180,17 @@ mod tests { leader_sentry_with_propagate .propagate( - CAMPAIGN_1.channel.id(), - &[&MessageTypes::NewState(new_state)], + campaign.channel.id(), + &[&MessageTypes::NewState(new_state.clone())], ) .await; + follower_sentry_with_propagate + .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) + .await; - let tick_result = follower::tick( + let tick_status = follower::tick( &follower_sentry_with_propagate, - CAMPAIGN_1.channel, + campaign.channel, HashMap::new(), accounting_balances, &contracts.token.0, @@ -1194,9 +1198,9 @@ mod tests { .await .expect("should tick"); - assert!(tick_result.heartbeat.is_none(), "No heartbeat should be sent as a recent one has already been generated for the followe"); + assert!(tick_status.heartbeat.is_none(), "No heartbeat should be sent as a recent one has already been generated for the followe"); assert!( - matches!(tick_result.approve_state, ApproveStateResult::Sent(Some(_))), + matches!(tick_status.approve_state, ApproveStateResult::Sent(Some(_))), "ApproveState has been sent successfully" ); } From 518ba2756e16628fa05dd8389259a9c84e734e90 Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Fri, 28 Jan 2022 17:58:56 +0200 Subject: [PATCH 06/21] commented out the last test case --- test_harness/src/lib.rs | 139 ++++++++++++++++++++-------------------- 1 file changed, 70 insertions(+), 69 deletions(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index dcf8ba68b..270b04164 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -1133,77 +1133,78 @@ mod tests { ), "State roots for latest NewState and ApproveState should match therefore we don't need to approve a NewState"); } + // Note: The way the 2nd NewState message is generated makes it not pass the checks in on_new_state(), leaving test case commented out for now // Testing follower tick // Test case where there is no ApproveState for the follower so one has to be generated - { - let mut accounting_balances = get_test_accounting_balances(); - - let new_state = get_new_state_msg( - &leader_sentry, - &accounting_balances, - contracts.token.0.precision.get(), - ); - - let approve_state = ApproveState { - state_root: new_state.state_root.clone(), - signature: new_state.signature.clone(), - is_healthy: true, - }; - - leader_sentry_with_propagate - .propagate( - campaign.channel.id(), - &[&MessageTypes::NewState(new_state.clone())], - ) - .await; - - follower_sentry_with_propagate - .propagate( - campaign.channel.id(), - &[ - &MessageTypes::NewState(new_state), - &MessageTypes::ApproveState(approve_state), - ], - ) - .await; - - accounting_balances - .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) - .expect("Should spend for Publisher"); - - // Propagating a new NewState so that the follower has to generate an ApproveState message - let new_state = get_new_state_msg( - &leader_sentry, - &accounting_balances, - contracts.token.0.precision.get(), - ); - - leader_sentry_with_propagate - .propagate( - campaign.channel.id(), - &[&MessageTypes::NewState(new_state.clone())], - ) - .await; - follower_sentry_with_propagate - .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) - .await; - - let tick_status = follower::tick( - &follower_sentry_with_propagate, - campaign.channel, - HashMap::new(), - accounting_balances, - &contracts.token.0, - ) - .await - .expect("should tick"); - - assert!(tick_status.heartbeat.is_none(), "No heartbeat should be sent as a recent one has already been generated for the followe"); - assert!( - matches!(tick_status.approve_state, ApproveStateResult::Sent(Some(_))), - "ApproveState has been sent successfully" - ); - } + // { + // let mut accounting_balances = get_test_accounting_balances(); + + // let new_state = get_new_state_msg( + // &leader_sentry, + // &accounting_balances, + // contracts.token.0.precision.get(), + // ); + + // let approve_state = ApproveState { + // state_root: new_state.state_root.clone(), + // signature: new_state.signature.clone(), + // is_healthy: true, + // }; + + // leader_sentry_with_propagate + // .propagate( + // campaign.channel.id(), + // &[&MessageTypes::NewState(new_state.clone())], + // ) + // .await; + + // follower_sentry_with_propagate + // .propagate( + // campaign.channel.id(), + // &[ + // &MessageTypes::NewState(new_state), + // &MessageTypes::ApproveState(approve_state), + // ], + // ) + // .await; + + // accounting_balances + // .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) + // .expect("Should spend for Publisher"); + + // // Propagating a new NewState so that the follower has to generate an ApproveState message + // let new_state = get_new_state_msg( + // &leader_sentry, + // &accounting_balances, + // contracts.token.0.precision.get(), + // ); + + // leader_sentry_with_propagate + // .propagate( + // campaign.channel.id(), + // &[&MessageTypes::NewState(new_state.clone())], + // ) + // .await; + // follower_sentry_with_propagate + // .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) + // .await; + + // let tick_status = follower::tick( + // &follower_sentry_with_propagate, + // campaign.channel, + // HashMap::new(), + // accounting_balances, + // &contracts.token.0, + // ) + // .await + // .expect("should tick"); + + // assert!(tick_status.heartbeat.is_none(), "No heartbeat should be sent as a recent one has already been generated for the followe"); + // assert!( + // matches!(tick_status.approve_state, ApproveStateResult::Sent(Some(_))), + // "ApproveState has been sent successfully" + // ); + // } } fn get_new_state_msg( From 48d30f53fa5bff261b2514db3723cac99ecfd5f0 Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Tue, 15 Feb 2022 15:20:58 +0200 Subject: [PATCH 07/21] Refactored validator tests --- test_harness/src/lib.rs | 394 +++++++++++++++++++++++----------------- 1 file changed, 223 insertions(+), 171 deletions(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 270b04164..8dc532f95 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -223,10 +223,7 @@ mod tests { Balances, BigNum, Campaign, CampaignId, Channel, ChannelId, UnifiedNum, }; use reqwest::{Client, StatusCode}; - use validator_worker::{ - follower, follower::ApproveStateResult, leader, sentry_interface::Validator, - worker::Worker, GetStateRoot, SentryApi, - }; + use validator_worker::{sentry_interface::Validator, worker::Worker, GetStateRoot, SentryApi}; #[tokio::test] #[ignore = "We use a snapshot, however, we have left this test for convenience"] @@ -814,11 +811,13 @@ mod tests { } // Running validator worker tests - leader_and_follower_tick_test( + test_leader_and_follower_loop( leader_sentry, follower_sentry, leader_adapter, follower_adapter, + leader_worker, + follower_worker, ) .await; } @@ -902,11 +901,14 @@ mod tests { .await?) } - async fn leader_and_follower_tick_test( + // Potential TODO's: Merge both test cases into one and find a way to retrieve heartbeats + async fn test_leader_and_follower_loop( leader_sentry: SentryApi, follower_sentry: SentryApi, leader_adapter: Adapter, UnlockedState>, follower_adapter: Adapter, UnlockedState>, + leader_worker: Worker>, + follower_worker: Worker>, ) { let mut new_channel = CAMPAIGN_1.channel.clone(); new_channel.nonce = 1_u64.into(); @@ -975,63 +977,171 @@ mod tests { .with_propagate(all_channels_validators.1) }; - // Testing leader tick - // Balances is empty - // We are just testing if all the calls in the tick function go through for now - // New state should be none because we haven't propagated any message - // a heartbeat will be generated because there isn't an existing one + // Testing propagation and retrieval of NewState messages, verification of balances + // We make a NewState message, propagate it, update the balances and send a second message with the new balances { - let balances = Balances::new(); - let tick_status = leader::tick( - &leader_sentry_with_propagate, - campaign.channel, - balances, - &contracts.token.0, - ) - .await - .expect("should tick"); - assert!( - tick_status.new_state.is_none(), - "No new state will be generated" + let mut accounting_balances = get_test_accounting_balances(); + + let new_state = get_new_state_msg( + &leader_sentry, + &accounting_balances, + contracts.token.0.precision.get(), ); - assert!(tick_status.heartbeat.is_some(), "This is the first Heartbeat for this channel on this validator so it will be propagated"); - } - // Testing leader tick with existing balances but conditions to generate NewState aren't met - // should_generate_new_state can also be false if accounting_balance - // for spender is ≤ new_state.balances for spender AND the same is true for earners. - // No new heartbeat will be generated because we have the heartbeat from the previous test case - // A new heartbeat will be generated only if the old one is older than config.heartbeat_time - { - let accounting_balances = get_test_accounting_balances(); + // Propagating the NewState message to both validators + leader_sentry_with_propagate + .propagate( + new_channel.id(), + &[&MessageTypes::NewState(new_state.clone())], + ) + .await; + follower_sentry_with_propagate + .propagate(new_channel.id(), &[&MessageTypes::NewState(new_state)]) + .await; + + // leader single worker tick + leader_worker.all_channels_tick().await; + // follower single worker tick + follower_worker.all_channels_tick().await; + + // Retrieving the NewState message from both validators + let newstate = leader_sentry_with_propagate + .get_our_latest_msg(new_channel.id(), &["NewState"]) + .await + .expect("should fetch") + .unwrap(); + let newstate_follower = follower_sentry_with_propagate + .get_our_latest_msg(new_channel.id(), &["NewState"]) + .await + .expect("should fetch") + .unwrap(); + + let newstate = NewState::::try_from(newstate).expect("Should convert"); + let newstate_follower = + NewState::::try_from(newstate_follower).expect("Should convert"); + + assert_eq!( + newstate.state_root, newstate_follower.state_root, + "Leader/Follower NewStates match" + ); + assert_eq!( + newstate + .balances + .spenders + .get(&CAMPAIGN_1.creator) + .expect("Should retrieve spender balance"), + &UnifiedNum::from_u64(54000), + "Verifying correct spender balance for campaign creator" + ); + assert_eq!( + newstate + .balances + .earners + .get(&CAMPAIGN_1.channel.leader.to_address()) + .expect("Should retrieve earner balance"), + &UnifiedNum::from_u64(27000), + "Verifying correct earner balance for leader" + ); + assert_eq!( + newstate + .balances + .earners + .get(&CAMPAIGN_1.channel.follower.to_address()) + .expect("Should retrieve earner balance"), + &UnifiedNum::from_u64(18000), + "Verifying correct earner balance for follower" + ); + assert_eq!( + newstate + .balances + .earners + .get(&*PUBLISHER) + .expect("Should retrieve earner balance"), + &UnifiedNum::from_u64(9000), + "Verifying correct earner balance for publisher" + ); + // Balances are being changed since the last propagated message ensuring that a new NewState will be generated + accounting_balances + .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .expect("Should spend for Publisher"); let new_state = get_new_state_msg( &leader_sentry, &accounting_balances, contracts.token.0.precision.get(), ); + // Propagating a new NewState so that we can verify it updates properly leader_sentry_with_propagate - .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) + .propagate( + new_channel.id(), + &[&MessageTypes::NewState(new_state.clone())], + ) + .await; + follower_sentry_with_propagate + .propagate(new_channel.id(), &[&MessageTypes::NewState(new_state)]) .await; - let tick_status = leader::tick( - &leader_sentry_with_propagate, - campaign.channel, - accounting_balances, - &contracts.token.0, - ) - .await - .expect("should tick"); + let newstate = leader_sentry_with_propagate + .get_our_latest_msg(new_channel.id(), &["NewState"]) + .await + .expect("should fetch") + .unwrap(); - assert!( - tick_status.new_state.is_none(), - "No new_state message should be generated because balances haven't changed" + let newstate_follower = follower_sentry_with_propagate + .get_our_latest_msg(new_channel.id(), &["NewState"]) + .await + .expect("should fetch") + .unwrap(); + + let newstate = NewState::::try_from(newstate).expect("Should convert"); + let newstate_follower = + NewState::::try_from(newstate_follower).expect("Should convert"); + + assert_eq!( + newstate.state_root, newstate_follower.state_root, + "Stateroots of the new messages match" + ); + assert_eq!( + newstate + .balances + .spenders + .get(&CAMPAIGN_1.creator) + .expect("Should retrieve spender balance"), + &UnifiedNum::from_u64(63000), + "Campaign creator spender balances have been updated" + ); + assert_eq!( + newstate + .balances + .earners + .get(&CAMPAIGN_1.channel.leader.to_address()) + .expect("Should retrieve earner balance"), + &UnifiedNum::from_u64(27000), + "Leader earner balances have stayed the same" + ); + assert_eq!( + newstate + .balances + .earners + .get(&CAMPAIGN_1.channel.follower.to_address()) + .expect("Should retrieve earner balance"), + &UnifiedNum::from_u64(18000), + "Follower earner balances have stayed the same" + ); + assert_eq!( + newstate + .balances + .earners + .get(&*PUBLISHER) + .expect("Should retrieve earner balance"), + &UnifiedNum::from_u64(18000), + "Publisher earner balances have been updated" ); - assert!(tick_status.heartbeat.is_none(), "No heartbeat message should be generated because the last one was generated in less time than config.heartbeat_time"); } - // Verify new_state and heartbeats are as expected after on_new_accounting() is called + // Testing ApproveState propagation, ensures the validator worker and follower are running properly + // We propagate a NewState/ApproveState pair, verify they match, then we update { let mut accounting_balances = get_test_accounting_balances(); @@ -1041,50 +1151,61 @@ mod tests { contracts.token.0.precision.get(), ); + let approve_state = ApproveState { + state_root: new_state.state_root.clone(), + signature: new_state.signature.clone(), + is_healthy: true, + }; + + // Propagating a NewState message to the leader sentry leader_sentry_with_propagate - .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) + .propagate( + campaign.channel.id(), + &[&MessageTypes::NewState(new_state.clone())], + ) .await; - // Balances are being changed since the last propagated message ensuring that a new NewState will be generated - accounting_balances - .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) - .expect("Should spend for Publisher"); - - let tick_status = leader::tick( - &leader_sentry_with_propagate, - campaign.channel, - accounting_balances, - &contracts.token.0, - ) - .await - .expect("should tick"); + // Propagating an NewState and ApproveState to the follower sentry + follower_sentry_with_propagate + .propagate( + campaign.channel.id(), + &[ + &MessageTypes::ApproveState(approve_state), + &MessageTypes::NewState(new_state), + ], + ) + .await; + // leader single worker tick + leader_worker.all_channels_tick().await; + // follower single worker tick + follower_worker.all_channels_tick().await; + let res = follower_sentry_with_propagate + .get_last_approved(new_channel.id()) + .await + .expect("should retrieve"); + assert!(res.last_approved.is_some(), "We have a last_approved pair"); + let last_approved = res.last_approved.unwrap(); assert!( - tick_status.new_state.is_some(), - "A NewState message should be generated because the balances will differ" + last_approved.new_state.is_some(), + "We have a new_state in last_approved" ); - - let propagation_result = tick_status.new_state.unwrap(); + assert!( + last_approved.approve_state.is_some(), + "We have approve_state in last_approved" + ); + let new_state_root = &last_approved.new_state.unwrap().msg.state_root; + let approve_state_root = &last_approved.approve_state.unwrap().msg.state_root; assert_eq!( - propagation_result.len(), - 2, - "There should be 2 results - one for the leader and one for the follower" + new_state_root, approve_state_root, + "NewState and ApproveState state roots match" ); - propagation_result.into_iter().for_each(|r| { - let validator_id = r.expect("There should be a ValidatorId"); - assert!( - validator_id == campaign.channel.leader - || validator_id == campaign.channel.follower - ); - }); - assert!(tick_status.heartbeat.is_none(), "No heartbeat message should be generated because the last one was generated in less time than config.heartbeat_time"); - } - // Testing follower tick - // Test case where the new state state_root matches the latest and a heartbeat is generated - { - let accounting_balances = get_test_accounting_balances(); + accounting_balances + .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) + .expect("Should spend for Publisher"); + // Propagating a new NewState so that the follower has to generate an ApproveState message let new_state = get_new_state_msg( &leader_sentry, &accounting_balances, @@ -1097,114 +1218,45 @@ mod tests { is_healthy: true, }; - // Propagating a NewState message to the leader sentry leader_sentry_with_propagate .propagate( campaign.channel.id(), &[&MessageTypes::NewState(new_state.clone())], ) .await; - - // Propagating an NewState/ApproveState pair to the follower sentry follower_sentry_with_propagate .propagate( campaign.channel.id(), &[ - &MessageTypes::ApproveState(approve_state), &MessageTypes::NewState(new_state), + &MessageTypes::ApproveState(approve_state), ], ) .await; - let tick_status = follower::tick( - &follower_sentry_with_propagate, - campaign.channel, - HashMap::new(), - accounting_balances, - &contracts.token.0, - ) - .await - .expect("should tick"); + // leader single worker tick + leader_worker.all_channels_tick().await; + // follower single worker tick + follower_worker.all_channels_tick().await; - assert!(tick_status.heartbeat.is_some(), "This is the first Heartbeat for this channel on this validator so it will be propagated"); - assert!(matches!( - tick_status.approve_state, - ApproveStateResult::Sent(None), - ), "State roots for latest NewState and ApproveState should match therefore we don't need to approve a NewState"); + let res = follower_sentry_with_propagate + .get_last_approved(new_channel.id()) + .await + .expect("should retrieve"); + assert!(res.last_approved.is_some(), "We have a last_approved"); + let new_last_approved = res.last_approved.unwrap(); + + assert_ne!( + &new_last_approved.new_state.unwrap().msg.state_root, + new_state_root, + "NewState is different from the last pair" + ); + assert_ne!( + &new_last_approved.approve_state.unwrap().msg.state_root, + approve_state_root, + "ApproveState is different from the last pair" + ); } - - // Note: The way the 2nd NewState message is generated makes it not pass the checks in on_new_state(), leaving test case commented out for now - // Testing follower tick - // Test case where there is no ApproveState for the follower so one has to be generated - // { - // let mut accounting_balances = get_test_accounting_balances(); - - // let new_state = get_new_state_msg( - // &leader_sentry, - // &accounting_balances, - // contracts.token.0.precision.get(), - // ); - - // let approve_state = ApproveState { - // state_root: new_state.state_root.clone(), - // signature: new_state.signature.clone(), - // is_healthy: true, - // }; - - // leader_sentry_with_propagate - // .propagate( - // campaign.channel.id(), - // &[&MessageTypes::NewState(new_state.clone())], - // ) - // .await; - - // follower_sentry_with_propagate - // .propagate( - // campaign.channel.id(), - // &[ - // &MessageTypes::NewState(new_state), - // &MessageTypes::ApproveState(approve_state), - // ], - // ) - // .await; - - // accounting_balances - // .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) - // .expect("Should spend for Publisher"); - - // // Propagating a new NewState so that the follower has to generate an ApproveState message - // let new_state = get_new_state_msg( - // &leader_sentry, - // &accounting_balances, - // contracts.token.0.precision.get(), - // ); - - // leader_sentry_with_propagate - // .propagate( - // campaign.channel.id(), - // &[&MessageTypes::NewState(new_state.clone())], - // ) - // .await; - // follower_sentry_with_propagate - // .propagate(campaign.channel.id(), &[&MessageTypes::NewState(new_state)]) - // .await; - - // let tick_status = follower::tick( - // &follower_sentry_with_propagate, - // campaign.channel, - // HashMap::new(), - // accounting_balances, - // &contracts.token.0, - // ) - // .await - // .expect("should tick"); - - // assert!(tick_status.heartbeat.is_none(), "No heartbeat should be sent as a recent one has already been generated for the followe"); - // assert!( - // matches!(tick_status.approve_state, ApproveStateResult::Sent(Some(_))), - // "ApproveState has been sent successfully" - // ); - // } } fn get_new_state_msg( From 5c7bf06991e697d7bdf6c2aedb53e2336e4d9402 Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Tue, 15 Feb 2022 18:00:43 +0200 Subject: [PATCH 08/21] merged aip-61 branch and fixed errors --- test_harness/src/lib.rs | 22 ++++++++-------------- 1 file changed, 8 insertions(+), 14 deletions(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 8dc532f95..edc1c2364 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -990,13 +990,10 @@ mod tests { // Propagating the NewState message to both validators leader_sentry_with_propagate - .propagate( - new_channel.id(), - &[&MessageTypes::NewState(new_state.clone())], - ) + .propagate(new_channel, &[&MessageTypes::NewState(new_state.clone())]) .await; follower_sentry_with_propagate - .propagate(new_channel.id(), &[&MessageTypes::NewState(new_state)]) + .propagate(new_channel, &[&MessageTypes::NewState(new_state)]) .await; // leader single worker tick @@ -1073,13 +1070,10 @@ mod tests { // Propagating a new NewState so that we can verify it updates properly leader_sentry_with_propagate - .propagate( - new_channel.id(), - &[&MessageTypes::NewState(new_state.clone())], - ) + .propagate(new_channel, &[&MessageTypes::NewState(new_state.clone())]) .await; follower_sentry_with_propagate - .propagate(new_channel.id(), &[&MessageTypes::NewState(new_state)]) + .propagate(new_channel, &[&MessageTypes::NewState(new_state)]) .await; let newstate = leader_sentry_with_propagate @@ -1160,7 +1154,7 @@ mod tests { // Propagating a NewState message to the leader sentry leader_sentry_with_propagate .propagate( - campaign.channel.id(), + campaign.channel, &[&MessageTypes::NewState(new_state.clone())], ) .await; @@ -1168,7 +1162,7 @@ mod tests { // Propagating an NewState and ApproveState to the follower sentry follower_sentry_with_propagate .propagate( - campaign.channel.id(), + campaign.channel, &[ &MessageTypes::ApproveState(approve_state), &MessageTypes::NewState(new_state), @@ -1220,13 +1214,13 @@ mod tests { leader_sentry_with_propagate .propagate( - campaign.channel.id(), + campaign.channel, &[&MessageTypes::NewState(new_state.clone())], ) .await; follower_sentry_with_propagate .propagate( - campaign.channel.id(), + campaign.channel, &[ &MessageTypes::NewState(new_state), &MessageTypes::ApproveState(approve_state), From a4cc01be1931aa899ff8d04c18ff03e4bf6158ef Mon Sep 17 00:00:00 2001 From: Simeon Nakov Date: Fri, 1 Apr 2022 17:55:42 +0300 Subject: [PATCH 09/21] comitting current progress --- lib/protocol-eth | 2 +- test_harness/src/lib.rs | 548 ++++++++++++++++++++++++++++------------ 2 files changed, 382 insertions(+), 168 deletions(-) diff --git a/lib/protocol-eth b/lib/protocol-eth index c130e8908..4b4bfe380 160000 --- a/lib/protocol-eth +++ b/lib/protocol-eth @@ -1 +1 @@ -Subproject commit c130e8908f49fd2b3edc70e0804ce1980d6da3fb +Subproject commit 4b4bfe380ae696b241513d8e1cdfb10cc12df332 diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 19ee61926..de75d620a 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -7,7 +7,7 @@ use adapter::ethereum::{ get_counterfactual_address, test_util::{ deploy_outpace_contract, deploy_sweeper_contract, deploy_token_contract, mock_set_balance, - outpace_deposit, GANACHE_INFO_1337, MOCK_TOKEN_ABI, + outpace_deposit, GANACHE_INFO_1, GANACHE_INFO_1337, MOCK_TOKEN_ABI, }, Options, OUTPACE_ABI, SWEEPER_ABI, }; @@ -76,6 +76,54 @@ pub static SNAPSHOT_CONTRACTS_1337: Lazy = Lazy::new(|| { } }); +/// Uses Chain #1 from the [`GANACHE_CONFIG`] static to init the contracts +pub static SNAPSHOT_CONTRACTS_1: Lazy = Lazy::new(|| { + let ganache_chain_info = GANACHE_INFO_1.clone(); + + let web3 = Web3::new( + Http::new(ganache_chain_info.chain.rpc.as_str()).expect("failed to init transport"), + ); + + let token_info = ganache_chain_info + .tokens + .get("Mocked TOKEN 2") + .expect("Ganache config should contain for Chain #1 the Mocked TOKEN"); + let chain = ganache_chain_info.chain.clone(); + + let token = ( + // use Ganache Config + token_info.clone(), + token_info.address, + Contract::from_json( + web3.eth(), + H160(token_info.address.to_bytes()), + &MOCK_TOKEN_ABI, + ) + .unwrap(), + ); + + let sweeper_address = Address::from(ganache_chain_info.chain.sweeper); + + let sweeper = ( + sweeper_address, + Contract::from_json(web3.eth(), H160(sweeper_address.to_bytes()), &SWEEPER_ABI).unwrap(), + ); + + let outpace_address = Address::from(ganache_chain_info.chain.outpace); + + let outpace = ( + outpace_address, + Contract::from_json(web3.eth(), H160(outpace_address.to_bytes()), &OUTPACE_ABI).unwrap(), + ); + + Contracts { + token, + sweeper, + outpace, + chain, + } +}); + #[derive(Debug, Clone)] pub struct TestValidator { pub address: Address, @@ -235,23 +283,27 @@ mod tests { use crate::run::run_sentry_app; use super::*; - use adapter::ethereum::{ - test_util::{KEYSTORES, GANACHE_1, GANACHE_1337}, - UnlockedWallet, + use adapter::{ + ethereum::{ + test_util::{GANACHE_1, GANACHE_1337, KEYSTORES}, + UnlockedWallet, + }, + prelude::*, + primitives::ChainOf, + Adapter, Ethereum, }; - use adapter::{prelude::*, Adapter, Ethereum}; use chrono::Utc; use primitives::{ balances::{CheckedState, UncheckedState}, sentry::{campaign_create::CreateCampaign, AccountingResponse, Event, SuccessResponse}, spender::Spender, - test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, PUBLISHER}, + test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, IDS, PUBLISHER}, util::{logging::new_logger, ApiUrl}, - validator::{ApproveState, MessageTypes, NewState}, + validator::{ApproveState, NewState}, Balances, BigNum, Campaign, CampaignId, Channel, ChannelId, UnifiedNum, }; use reqwest::{Client, StatusCode}; - use validator_worker::{sentry_interface::Validator, worker::Worker, GetStateRoot, SentryApi}; + use validator_worker::{worker::Worker, GetStateRoot, SentryApi}; #[tokio::test] // #[ignore = "We use a snapshot, however, we have left this test for convenience"] @@ -324,7 +376,7 @@ mod tests { .expect("Should parse"), channel, creator: *ADVERTISER, - // 20.00000000 + // 2.00000000 budget: UnifiedNum::from(200_000_000), validators, title: Some("Dummy Campaign".to_string()), @@ -436,10 +488,87 @@ mod tests { } }); + /// This Campaign has a token from the GANACHE_1 chain instead of the GANACHE_1337 one like the others + static CAMPAIGN_3: Lazy = Lazy::new(|| { + use chrono::TimeZone; + use primitives::{ + campaign::{Active, Pricing, PricingBounds, Validators}, + targeting::Rules, + validator::ValidatorDesc, + EventSubmission, + }; + + let channel = Channel { + leader: VALIDATORS[&LEADER].address.into(), + follower: VALIDATORS[&FOLLOWER].address.into(), + guardian: *GUARDIAN, + token: SNAPSHOT_CONTRACTS_1.token.1, + nonce: 0_u64.into(), + }; + + let leader_desc = ValidatorDesc { + 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: 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, + }; + + let validators = Validators::new((leader_desc, follower_desc)); + + Campaign { + id: "0x936da01f9abd4d9d80c702af85c822a8" + .parse() + .expect("Should parse"), + channel, + 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.00003000 + // Per 1000 = 0.03000000 + min: 3_000.into(), + // 0.00005000 + // Per 1000 = 0.05000000 + max: 5_000.into(), + }), + click: Some(Pricing { + // 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![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 { + to: Utc.ymd(2099, 1, 30).and_hms(0, 0, 0), + from: None, + }, + } + }); + #[tokio::test(flavor = "multi_thread", worker_threads = 4)] async fn run_full_test() { - // for now we are running tests only on a single Chain! - // It is safe to use a single ChainOf for both Campaigns let chain = GANACHE_1337.clone(); assert_eq!(CAMPAIGN_1.channel.token, CAMPAIGN_2.channel.token); @@ -447,7 +576,12 @@ mod tests { .find_chain_of(CAMPAIGN_1.channel.token) .expect("Should find CAMPAIGN_1 channel token address in Config!"); - assert_eq!(&token_chain.chain, &chain, "CAMPAIGN_1 & CAMPAIGN_2 should be both using the same Chain which is setup in the Ganache Config"); + let second_token_chain = GANACHE_CONFIG + .find_chain_of(CAMPAIGN_3.channel.token) + .expect("Should find CAMPAIGN_3 channel token address in Config!"); + + assert_eq!(&token_chain.chain, &chain, "CAMPAIGN_1 & CAMPAIGN_2 should be both using the same #1337 Chain which is setup in the Ganache Config"); + let setup = Setup { chain: chain.clone(), logger: new_logger("test_harness"), @@ -455,6 +589,8 @@ mod tests { // Use snapshot contracts let contracts = SNAPSHOT_CONTRACTS_1337.clone(); + let contracts_1 = SNAPSHOT_CONTRACTS_1.clone(); + // let contracts = setup.deploy_contracts().await; let leader = VALIDATORS[&LEADER].clone(); @@ -497,6 +633,33 @@ mod tests { ) .expect("Should create new SentryApi for the Leader Worker"); + 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()), + }, + ]; + // check Campaign Leader & Follower urls // they should be the same as the test validators { @@ -524,6 +687,10 @@ mod tests { // Channel 2: // - Outpace: 30 TOKENs // - Counterfactual: 20 TOKENs + // + // Channel 3: + // - Outpace: 30 TOKENS + // - Counterfactual: 20 TOKENs { let advertiser_deposits = [ Deposit { @@ -540,7 +707,15 @@ mod tests { outpace_amount: BigNum::with_precision(30, token_precision), counterfactual_amount: BigNum::with_precision(20, token_precision), }, + Deposit { + channel: CAMPAIGN_3.channel, + token: contracts_1.token.0.clone(), + address: advertiser_adapter.whoami().to_address(), + outpace_amount: BigNum::with_precision(30, token_precision), + counterfactual_amount: BigNum::with_precision(20, token_precision), + }, ]; + // 1st deposit { setup.deposit(&contracts, &advertiser_deposits[0]).await; @@ -572,6 +747,22 @@ mod tests { assert_eq!(advertiser_deposits[1], eth_deposit); } + + // 3rd deposit + { + setup.deposit(&contracts_1, &advertiser_deposits[2]).await; + + // make sure we have the expected deposit returned from EthereumAdapter + let eth_deposit = leader_adapter + .get_deposit( + &second_token_chain.clone().with_channel(CAMPAIGN_3.channel), + advertiser_adapter.whoami().to_address(), + ) + .await + .expect("Should get deposit for advertiser"); + + assert_eq!(advertiser_deposits[2], eth_deposit); + } } let api_client = reqwest::Client::new(); @@ -737,6 +928,55 @@ mod tests { } } + // Create Campaign 3 w/ Channel 3 using Advertiser on a different chain + // In Leader & Follower sentries + // Response: 200 Ok + // POST /v5/campaign + { + let second_chain = GANACHE_1.clone(); + let create_campaign_3 = CreateCampaign::from_campaign(CAMPAIGN_3.clone()); + + assert_eq!( + &second_token_chain.chain, &second_chain, + "CAMPAIGN_3 should be using the #1 Chain which is setup in the Ganache Config" + ); + + { + let leader_token = advertiser_adapter + .get_auth(chain.chain_id, leader_adapter.whoami()) + .expect("Get authentication"); + + let leader_response = create_campaign( + &api_client, + &leader.sentry_url, + &leader_token, + &create_campaign_3, + ) + .await + .expect("Should return Response"); + + let status = leader_response.status(); + assert_eq!(StatusCode::OK, status); + } + + { + let follower_token = advertiser_adapter + .get_auth(token_chain.chain.chain_id, follower_adapter.whoami()) + .expect("Get authentication"); + + let follower_response = create_campaign( + &api_client, + &follower.sentry_url, + &follower_token, + &create_campaign_3, + ) + .await + .expect("Should return Response"); + + assert_eq!(StatusCode::OK, follower_response.status()); + } + } + let leader_worker = Worker::from_sentry(leader_sentry.clone()); let follower_worker = Worker::from_sentry(follower_sentry.clone()); @@ -760,33 +1000,6 @@ mod tests { // 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, token_chain.clone().with(CAMPAIGN_1.id), @@ -854,10 +1067,9 @@ mod tests { test_leader_and_follower_loop( leader_sentry, follower_sentry, - leader_adapter, - follower_adapter, leader_worker, follower_worker, + events, ) .await; } @@ -944,21 +1156,23 @@ mod tests { .await?) } - // Potential TODO's: Merge both test cases into one and find a way to retrieve heartbeats async fn test_leader_and_follower_loop( leader_sentry: SentryApi, follower_sentry: SentryApi, - leader_adapter: Adapter, UnlockedState>, - follower_adapter: Adapter, UnlockedState>, leader_worker: Worker>, follower_worker: Worker>, + events: Vec, ) { + let token_chain = GANACHE_CONFIG + .find_chain_of(CAMPAIGN_1.channel.token) + .expect("Should find CAMPAIGN_1 channel token address in Config!"); + let mut new_channel = CAMPAIGN_1.channel.clone(); new_channel.nonce = 1_u64.into(); let mut campaign = CAMPAIGN_1.clone(); campaign.channel = new_channel; // Use snapshot contracts - let contracts = SNAPSHOT_CONTRACTS.clone(); + let contracts = SNAPSHOT_CONTRACTS_1337.clone(); let leader = VALIDATORS[&LEADER].clone(); let follower = VALIDATORS[&FOLLOWER].clone(); @@ -971,12 +1185,13 @@ mod tests { ) .unlock() .expect("Should unlock advertiser's Ethereum Adapter"); + let context_of_channel = token_chain.clone().with(new_channel); let leader_token = advertiser_adapter - .get_auth(leader_adapter.whoami()) + .get_auth(context_of_channel.chain.chain_id, IDS[&LEADER]) .expect("Get authentication"); let follower_token = advertiser_adapter - .get_auth(follower_adapter.whoami()) + .get_auth(context_of_channel.chain.chain_id, IDS[&FOLLOWER]) .expect("Get authentication"); create_campaign( &api_client, @@ -1006,6 +1221,7 @@ mod tests { leader_sentry .clone() .with_propagate(all_channels_validators.1) + .expect("Should get sentry") }; // follower::tick() accepts a sentry instance with validators to propagate to @@ -1018,6 +1234,7 @@ mod tests { follower_sentry .clone() .with_propagate(all_channels_validators.1) + .expect("Should get sentry") }; // Testing propagation and retrieval of NewState messages, verification of balances @@ -1025,19 +1242,21 @@ mod tests { { let mut accounting_balances = get_test_accounting_balances(); - let new_state = get_new_state_msg( + // Posting new events + post_new_events( &leader_sentry, - &accounting_balances, - contracts.token.0.precision.get(), - ); - - // Propagating the NewState message to both validators - leader_sentry_with_propagate - .propagate(new_channel, &[&MessageTypes::NewState(new_state.clone())]) - .await; - follower_sentry_with_propagate - .propagate(new_channel, &[&MessageTypes::NewState(new_state)]) - .await; + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); + post_new_events( + &follower_sentry, + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); // leader single worker tick leader_worker.all_channels_tick().await; @@ -1055,6 +1274,12 @@ mod tests { .await .expect("should fetch") .unwrap(); + let heartbeat = leader_sentry_with_propagate + .get_our_latest_msg(new_channel.id(), &["Heartbeat"]) + .await + .expect("should fetch") + .unwrap(); + println!("Heartbeat - {:?}", heartbeat); let newstate = NewState::::try_from(newstate).expect("Should convert"); let newstate_follower = @@ -1064,41 +1289,28 @@ mod tests { newstate.state_root, newstate_follower.state_root, "Leader/Follower NewStates match" ); + let mut expected_balances = Balances::new(); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.leader.to_address(), + UnifiedNum::from_u64(27000), + ) + .expect("Should spend"); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.follower.to_address(), + UnifiedNum::from_u64(18000), + ) + .expect("Should spend"); + expected_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(9000)) + .expect("Should spend"); + assert_eq!( - newstate - .balances - .spenders - .get(&CAMPAIGN_1.creator) - .expect("Should retrieve spender balance"), - &UnifiedNum::from_u64(54000), - "Verifying correct spender balance for campaign creator" - ); - assert_eq!( - newstate - .balances - .earners - .get(&CAMPAIGN_1.channel.leader.to_address()) - .expect("Should retrieve earner balance"), - &UnifiedNum::from_u64(27000), - "Verifying correct earner balance for leader" - ); - assert_eq!( - newstate - .balances - .earners - .get(&CAMPAIGN_1.channel.follower.to_address()) - .expect("Should retrieve earner balance"), - &UnifiedNum::from_u64(18000), - "Verifying correct earner balance for follower" - ); - assert_eq!( - newstate - .balances - .earners - .get(&*PUBLISHER) - .expect("Should retrieve earner balance"), - &UnifiedNum::from_u64(9000), - "Verifying correct earner balance for publisher" + newstate.balances, expected_balances, + "Balances are as expected" ); // Balances are being changed since the last propagated message ensuring that a new NewState will be generated @@ -1111,13 +1323,26 @@ mod tests { contracts.token.0.precision.get(), ); - // Propagating a new NewState so that we can verify it updates properly - leader_sentry_with_propagate - .propagate(new_channel, &[&MessageTypes::NewState(new_state.clone())]) - .await; - follower_sentry_with_propagate - .propagate(new_channel, &[&MessageTypes::NewState(new_state)]) - .await; + // Posting new events + post_new_events( + &leader_sentry, + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); + post_new_events( + &follower_sentry, + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); + + // leader single worker tick + leader_worker.all_channels_tick().await; + // follower single worker tick + follower_worker.all_channels_tick().await; let newstate = leader_sentry_with_propagate .get_our_latest_msg(new_channel.id(), &["NewState"]) @@ -1139,41 +1364,27 @@ mod tests { newstate.state_root, newstate_follower.state_root, "Stateroots of the new messages match" ); + let mut expected_balances = Balances::new(); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.leader.to_address(), + UnifiedNum::from_u64(27000), + ) + .expect("Should spend"); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.follower.to_address(), + UnifiedNum::from_u64(18000), + ) + .expect("Should spend"); + expected_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(18000)) + .expect("Should spend"); assert_eq!( - newstate - .balances - .spenders - .get(&CAMPAIGN_1.creator) - .expect("Should retrieve spender balance"), - &UnifiedNum::from_u64(63000), - "Campaign creator spender balances have been updated" - ); - assert_eq!( - newstate - .balances - .earners - .get(&CAMPAIGN_1.channel.leader.to_address()) - .expect("Should retrieve earner balance"), - &UnifiedNum::from_u64(27000), - "Leader earner balances have stayed the same" - ); - assert_eq!( - newstate - .balances - .earners - .get(&CAMPAIGN_1.channel.follower.to_address()) - .expect("Should retrieve earner balance"), - &UnifiedNum::from_u64(18000), - "Follower earner balances have stayed the same" - ); - assert_eq!( - newstate - .balances - .earners - .get(&*PUBLISHER) - .expect("Should retrieve earner balance"), - &UnifiedNum::from_u64(18000), - "Publisher earner balances have been updated" + newstate.balances, expected_balances, + "Balances are as expected" ); } @@ -1194,24 +1405,22 @@ mod tests { is_healthy: true, }; - // Propagating a NewState message to the leader sentry - leader_sentry_with_propagate - .propagate( - campaign.channel, - &[&MessageTypes::NewState(new_state.clone())], - ) - .await; - - // Propagating an NewState and ApproveState to the follower sentry - follower_sentry_with_propagate - .propagate( - campaign.channel, - &[ - &MessageTypes::ApproveState(approve_state), - &MessageTypes::NewState(new_state), - ], - ) - .await; + // Posting new events + post_new_events( + &leader_sentry, + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); + post_new_events( + &follower_sentry, + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); + // leader single worker tick leader_worker.all_channels_tick().await; // follower single worker tick @@ -1255,21 +1464,26 @@ mod tests { is_healthy: true, }; - leader_sentry_with_propagate - .propagate( - campaign.channel, - &[&MessageTypes::NewState(new_state.clone())], - ) - .await; - follower_sentry_with_propagate - .propagate( - campaign.channel, - &[ - &MessageTypes::NewState(new_state), - &MessageTypes::ApproveState(approve_state), - ], - ) - .await; + // Posting new events + post_new_events( + &leader_sentry, + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); + post_new_events( + &follower_sentry, + token_chain.clone().with(CAMPAIGN_1.id), + &events, + ) + .await + .expect("Posted events"); + + // leader single worker tick + leader_worker.all_channels_tick().await; + // follower single worker tick + follower_worker.all_channels_tick().await; // leader single worker tick leader_worker.all_channels_tick().await; From 4bd90aaab97b09bd454a4dbdbb2d8a307ccf0d0f Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Wed, 6 Apr 2022 11:26:04 +0300 Subject: [PATCH 10/21] update protocol-eth --- lib/protocol-eth | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/protocol-eth b/lib/protocol-eth index 4b4bfe380..84fc41321 160000 --- a/lib/protocol-eth +++ b/lib/protocol-eth @@ -1 +1 @@ -Subproject commit 4b4bfe380ae696b241513d8e1cdfb10cc12df332 +Subproject commit 84fc41321f28c7100cb5dbb439f71814ccee7042 From 1d1f4b29745abf952e2e7ef2235dd3ca7221c6a7 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Mon, 11 Apr 2022 10:18:40 +0300 Subject: [PATCH 11/21] scripts - ethereum - Update snapshot of Chain #1 --- ...834943f12663482cf4c3033f271bc792adc1bd8640c9ac1e15729eb5bb0} | 0 ...32006f5f5f30e77728fc7943b7101836ecd3444aac2916c83141622d74b} | 0 ...2f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 | 1 - ...f780405d92ae500a7f6aebdbd38b62a54ce44642f055f6de0802303a8e7} | 0 ...e5427b522346b738ad7e0eb73ed67cd226593991de34c72b54ebed16d40d | 1 - ...056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 | 1 - ...7d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf | 1 - ...33e985abf098cbbb42f3980c2371f12d6b2d4ca87dc32939e18c2cc89ec} | 0 ...d549f4a5cdf7ebe245ab26a3a8bd8fc4fc450c4f2905b1c77ae6b21d0114 | 1 - ...6661307a3ff20d08ffab0337f531f8c08df06c8b8f6fbee1915774a8b774 | 1 - scripts/ethereum/snapshot_contracts_1/!blockLogs!4 | 1 - scripts/ethereum/snapshot_contracts_1/!blockLogs!5 | 1 - scripts/ethereum/snapshot_contracts_1/!blockLogs!6 | 1 - scripts/ethereum/snapshot_contracts_1/!blockLogs!7 | 1 - scripts/ethereum/snapshot_contracts_1/!blockLogs!8 | 1 - scripts/ethereum/snapshot_contracts_1/!blockLogs!9 | 1 - scripts/ethereum/snapshot_contracts_1/!blockLogs!length | 2 +- scripts/ethereum/snapshot_contracts_1/!blocks!0 | 2 +- scripts/ethereum/snapshot_contracts_1/!blocks!1 | 2 +- scripts/ethereum/snapshot_contracts_1/!blocks!2 | 2 +- scripts/ethereum/snapshot_contracts_1/!blocks!3 | 2 +- scripts/ethereum/snapshot_contracts_1/!blocks!4 | 1 - scripts/ethereum/snapshot_contracts_1/!blocks!5 | 1 - scripts/ethereum/snapshot_contracts_1/!blocks!6 | 1 - scripts/ethereum/snapshot_contracts_1/!blocks!7 | 1 - scripts/ethereum/snapshot_contracts_1/!blocks!8 | 1 - scripts/ethereum/snapshot_contracts_1/!blocks!9 | 1 - scripts/ethereum/snapshot_contracts_1/!blocks!length | 2 +- ...388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 | 1 - ...d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449} | 2 +- ...501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e | 1 - ...dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 | 1 - ...bfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 | 2 +- ...44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb | 1 - ...7cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8} | 2 +- ...8f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 | 1 - ...0b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc | 1 - ...1d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba | 1 - ...388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 | 1 - ...d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449} | 2 +- ...30ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 | 1 - ...dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 | 1 - ...bfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 | 2 +- ...7cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8} | 2 +- ...8f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 | 1 - ...0b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc | 1 - ...e0850e1225b7d19e7664e8d43445906ed79e9af19a3b5170cf130dc1f45} | 2 +- ...95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 | 1 - ...0b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b | 1 - ...f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e | 1 - ...ec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1f | 1 - ...931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa | 1 + ...a0884460124d82aa9ea864a058d435e28ced49e512eef68d835bc9e2f01} | 2 +- ...61ff2dc2461c88daef7d111a378a4c8fa872b4a5f43862b947717f01756} | 2 +- ...97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab71 | 1 - ...11b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7 | 1 - ...ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 | 1 - ...38395965ae1808b14c362d8cfdf165fea7c247273d13c181f09325a26b25 | 1 - ...dedf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec | 1 - ...fa594c79b71cf696d01d3031f0e1ef30be408c33cc2fd3133a6d22c3b8d} | 2 +- ...659d8345c4effc49c817579cc4c3f27a24a561df382e216ef959118bd83d | 1 + ...c80da089d5aaef91e16d168d7882dbfe0bdcd3c341fe6d9fb3f5fac45c1} | 2 +- ...922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e | 1 - ...5541074bf453cebbb57ba7c31ad73323e016870a9f50a221e8409536445} | 2 +- ...42346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 | 1 - ...abcb8ff41b07f81811150bae1092763276e1bb41f2bd50afba01d1e236f} | 2 +- ...c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 | 1 - ...32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0 | 1 + ...c4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 | 1 - ...bc5035fcffefa81f74cb90aacba43d56806484b4839d09166a65191629d4 | 1 + ...90aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 | 1 - ...b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 | 1 - ...cee9354cd00939efaede58cb0059d05dda05cefb78704ddd19d2adbe7840 | 1 + ...918a759d6b6b29f52a97fc24ee8534da66780f9de97d5459c404729d33e7 | 1 + ...95206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f | 1 - ...194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 | 1 - ...bb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 | 1 - ...6ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c | 1 - ...2cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 | 1 - ...418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef | 1 - ...04a08818aad3b9d3076be0b6f45043e4e0e7cf3128fdee8a460cbef42f65 | 1 - ...1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c0} | 2 +- ...e71e31a09c7eae4d15dfead6370ed7772ff6a4bea58558cc6f9aec9bc618 | 1 - ...30a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 | 1 - ...9201f8455206b263879885020aaac8dc6744f6cebe6b0b23a4fd20520c05 | 1 + ...32edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 | 1 - ...1554dc5ed2775df66d7fc5cee58ae844274155d61b9ac2da2498c78947b8 | 1 - ...c7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f | 1 - ...2bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65 | 1 - ...38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d | 1 - ...87ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e | 1 + ...f5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 | 1 - ...b8bc2ba0d66b7c6232755d71fa56d9ce1163b2c7aee385f27692c1d099dd | 1 - ...9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a | 1 - ...8f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 | 1 - ...cc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e | 1 - ...10d2ee15761d7cba58352120142a9d3cfa5451581b800f5d3bcf659c82ff | 1 - ...31db064e384be4a4d0a2c21fa30a6d003c353c59a015b1ea99ddcc76ac44 | 1 + ...8f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 | 1 - ...bc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de | 1 - ...5337d9e2071d7dde36c339c1cf67348e3274d1a88d657f850312b089a092 | 1 + ...9ba6c0767549929784ec4be6e9f9383c19547c95df28141d85f350021e73 | 1 + ...6202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac | 1 - ...b4cfd4bfc7bcf3adbff6ae1df9debf5e3f1f6194d9926f6acfdecc7c9329 | 1 - ...f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3 | 1 - ...ce8ca462139f8512b9d78543d8b7df1eea6f0f882cd6835844eb64b1b8a} | 2 +- ...8a79fea88b2003fe7d666107d9d8527af6cb498f2a12486139e4a589ba99 | 1 + ...38f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 | 1 - ...51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 | 1 - ...93414c6bdb351136bafaff3d72c7db63e7da5576cdc2cfd269f62af30eba | 1 - ...24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c | 1 - ...785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36 | 1 - ...70e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 | 1 - ...03d2045e645b29e2e5b6f5b441145457312aef51788f7bb53f9ea2cace25 | 1 - ...40762aec5b87121e4a8eb55b1671d43c6327022172365849bf3ab24765ee | 1 - ...64960357f510874c342146963ed3d811d9ef4ba3f25a6026af7357a0dacf | 1 - ...0846c555621a0f5f74893d9a6dbe5f05818ff83d97a17fbce4eca544f7b5 | 1 - ...b410b7a8eaef820bd98dabe6644968ccc50c00206a7b64639c4b819eb2c} | 2 +- ...9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b3919 | 1 - ...5b4ea97d2a21d5685f16a574e2e59f095f285aa5f4a25471f5448f367232 | 1 - ...4c470ade5e074940b32af27f578ea3e052e9b3da5d798797779d5be72330 | 1 + ...083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b | 1 - ...d94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 | 1 - ...58cd9f34cc56f19bf6923d383888dfb189a164029246a93dd4947219d4f} | 2 +- ...b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582 | 1 + ...49bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 | 1 - ...cb794fd71630a75013b9cd6a92b55c266691fb712857713546e2dbd6ccc5 | 1 + ...1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107 | 1 - ...4c8575974417addcd391882c3350b1c84be38a8323461ca9a9c4b9bccdb0 | 1 - ...0ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 | 1 - ...8c016adce35292dea603caa238e3fa8b382466484bea96ad0df02467f83d | 1 - ...af5eb304969a1219910c397fe2551deeead43bf4dc31da370b54940fd61c | 1 - ...a870a8aabce8fbb50077c86a0af992e02a18aae7cca7497041c518734ddb | 1 - ...827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e | 1 - ...6f9633f075d3c23bb9551b1470f5d56499a1f369f4f063496dac49e7aa89 | 1 - ...4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 | 1 - ...842c1f531a0e8a2af309785e0751898831fc589591dedc418678c6b30f9} | 2 +- ...d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 | 1 - ...ee7e1cecf87a621b6dd951cfe13e210fd3eaa6aa75b9bea7c980d73df66d | 1 + ...5ab873bab372f221b180181d5591f5e91496d9ba50182eb42c34bb5d0e04 | 1 - ...c380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a | 1 - ...69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0} | 2 +- ...7f0130cfa3445cb94bae8e525dc4ef929d20e5db77aecf855796ea4c34ae | 1 - ...ceb1c9415ccbc08056ca4e1b7dbb566aa29413518beccb4107f30d276292 | 1 - ...ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b | 1 - ...d4b7d7ef57ba342532091d1c93254ea0b3b9376f95f4cd9cf3a86803a7eb | 1 + ...d56037a052633ad8625cbdddbb6feeb20756896c186b703c58c57ee21d57 | 1 + ...5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 | 1 - ...dd9daa326ca6fb6597ca261fdef5a94dc13c0da20e8eac2e1831037b76c0 | 1 - ...07edecefad1bcc8838b36e17227448df648bb024974689f2c38e5c9a4981 | 1 - ...b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 | 1 - ...a3e2b763bb79ea266bfa08ee316b9e77a2a330abd3e5337f96248bd5fe40 | 1 - ...ea40f2c7ac5b9595f8d6929729201df3eed68821668d5d616d886d3f4dbe | 1 - ...c700210874fabc4f6014264c65e76153dfef82ade8b003db2e5953fc85bf | 1 - ...c6bd35446e1e7de4572527bd0be6fe9484be3ce98aaed6440112012bcbfa | 1 - ...9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82 | 1 - ...f331e5087cbb8c50fd9046e32fc7a0de95c46ffe5f945200bd81f1eaf18c | 1 + ...5262e45391e075f02c323155d245e0e21de99ac4db8c0fcf61c213609b7} | 2 +- ...ca94042e4a2698fe663f99e6a795f59a7f6e6d3501212f8853581e52ab0} | 2 +- ...2db5c8506e99d807279fae39ef8a48fa0c4bb845639da04160da6c4b20e9 | 1 + ...3e0b5470cf40f4051ebae3538ca87dc6f26ee4b7291e62354e4ab12e1c08 | 1 + 161 files changed, 48 insertions(+), 136 deletions(-) rename scripts/ethereum/snapshot_contracts_1/{!blockHashes!0x6a2b4a8a622d83801381f1723bf3e83456e57c674c0cc1a8eab8e7e950ce515a => !blockHashes!0x1dc16834943f12663482cf4c3033f271bc792adc1bd8640c9ac1e15729eb5bb0} (100%) rename scripts/ethereum/snapshot_contracts_1/{!blockHashes!0xe5a6e3ddb943f599f729e1a1a6b1f9ec38c63d50f0bfee62728a15dc8c87e5a1 => !blockHashes!0x32f4732006f5f5f30e77728fc7943b7101836ecd3444aac2916c83141622d74b} (100%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockHashes!0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 rename scripts/ethereum/snapshot_contracts_1/{!blockHashes!0x44871371a4347bcab22f55a4bee00d2b4bf73e522f310318b4828edda6761e9a => !blockHashes!0x43120f780405d92ae500a7f6aebdbd38b62a54ce44642f055f6de0802303a8e7} (100%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockHashes!0x4d10e5427b522346b738ad7e0eb73ed67cd226593991de34c72b54ebed16d40d delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockHashes!0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockHashes!0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf rename scripts/ethereum/snapshot_contracts_1/{!blockHashes!0xdedec2a7904e3c42143c03f227ae7bd286458e25a02a6fc4292f0491808898ae => !blockHashes!0x7f2a033e985abf098cbbb42f3980c2371f12d6b2d4ca87dc32939e18c2cc89ec} (100%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockHashes!0x9da0d549f4a5cdf7ebe245ab26a3a8bd8fc4fc450c4f2905b1c77ae6b21d0114 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockHashes!0xb99d6661307a3ff20d08ffab0337f531f8c08df06c8b8f6fbee1915774a8b774 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockLogs!4 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockLogs!5 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockLogs!6 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockLogs!7 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockLogs!8 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blockLogs!9 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blocks!4 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blocks!5 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blocks!6 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blocks!7 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blocks!8 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!blocks!9 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 rename scripts/ethereum/snapshot_contracts_1/{!transactionReceipts!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 => !transactionReceipts!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449} (52%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb rename scripts/ethereum/snapshot_contracts_1/{!transactionReceipts!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba => !transactionReceipts!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8} (58%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactions!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactions!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 rename scripts/ethereum/snapshot_contracts_1/{!transactions!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb => !transactions!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449} (90%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactions!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactions!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 rename scripts/ethereum/snapshot_contracts_1/{!transactions!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e => !transactions!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8} (96%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactions!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!transactions!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x20363adf6116917c20332a8cba35879000dfaaf20fda076a7ba7d4f8d617e7cf => !trie_db!0x01554e0850e1225b7d19e7664e8d43445906ed79e9af19a3b5170cf130dc1f45} (79%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x03290b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x0593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x076eec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1f create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x07b0931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0xc17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce112 => !trie_db!0x096b0a0884460124d82aa9ea864a058d435e28ced49e512eef68d835bc9e2f01} (70%) rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x20526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8 => !trie_db!0x1190861ff2dc2461c88daef7d111a378a4c8fa872b4a5f43862b947717f01756} (79%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x18cb97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab71 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x18e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x1936ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x1bd138395965ae1808b14c362d8cfdf165fea7c247273d13c181f09325a26b25 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x25aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x0d0ef40015cd8fce7f1f54f5fd79ba23611f4ed6a1d307e1f573edc99fb5cc34 => !trie_db!0x2726efa594c79b71cf696d01d3031f0e1ef30be408c33cc2fd3133a6d22c3b8d} (62%) create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x2863659d8345c4effc49c817579cc4c3f27a24a561df382e216ef959118bd83d rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x34cc33d4725479d571a9ed60422264d02dea0087ea91797cb4f7c85a9c72281c => !trie_db!0x28d58c80da089d5aaef91e16d168d7882dbfe0bdcd3c341fe6d9fb3f5fac45c1} (62%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x29a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x76ee24db42a082250df1b9213f20514e600b951ff72eba2a99ce13d3431cee62 => !trie_db!0x30d405541074bf453cebbb57ba7c31ad73323e016870a9f50a221e8409536445} (81%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x95d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f3803 => !trie_db!0x37ba4abcb8ff41b07f81811150bae1092763276e1bb41f2bd50afba01d1e236f} (70%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x3842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x397d32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x399dc4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x3ac8bc5035fcffefa81f74cb90aacba43d56806484b4839d09166a65191629d4 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x3df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x3fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x46b8cee9354cd00939efaede58cb0059d05dda05cefb78704ddd19d2adbe7840 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x482d918a759d6b6b29f52a97fc24ee8534da66780f9de97d5459c404729d33e7 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x48b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x4b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x4e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x50542cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x50b0418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x51e404a08818aad3b9d3076be0b6f45043e4e0e7cf3128fdee8a460cbef42f65 rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x7acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d613 => !trie_db!0x5380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c0} (65%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x53d6e71e31a09c7eae4d15dfead6370ed7772ff6a4bea58558cc6f9aec9bc618 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x589930a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x59599201f8455206b263879885020aaac8dc6744f6cebe6b0b23a4fd20520c05 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x59c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x5ce31554dc5ed2775df66d7fc5cee58ae844274155d61b9ac2da2498c78947b8 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x5f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x63c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x6ca087ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x6e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x6f15b8bc2ba0d66b7c6232755d71fa56d9ce1163b2c7aee385f27692c1d099dd delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x71868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d6e10d2ee15761d7cba58352120142a9d3cfa5451581b800f5d3bcf659c82ff create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d7d31db064e384be4a4d0a2c21fa30a6d003c353c59a015b1ea99ddcc76ac44 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x7e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x7f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x80425337d9e2071d7dde36c339c1cf67348e3274d1a88d657f850312b089a092 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x84fe9ba6c0767549929784ec4be6e9f9383c19547c95df28141d85f350021e73 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x85136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x8695b4cfd4bfc7bcf3adbff6ae1df9debf5e3f1f6194d9926f6acfdecc7c9329 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x8a32f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3 rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x3706dbcbfdf9b7785c30e8ec1d1a8c81d7e6ddcb28a157fca25fafe3f7545610 => !trie_db!0x8be60ce8ca462139f8512b9d78543d8b7df1eea6f0f882cd6835844eb64b1b8a} (65%) create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x8c228a79fea88b2003fe7d666107d9d8527af6cb498f2a12486139e4a589ba99 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x941993414c6bdb351136bafaff3d72c7db63e7da5576cdc2cfd269f62af30eba delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x9559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c4303d2045e645b29e2e5b6f5b441145457312aef51788f7bb53f9ea2cace25 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c9040762aec5b87121e4a8eb55b1671d43c6327022172365849bf3ab24765ee delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xa0d864960357f510874c342146963ed3d811d9ef4ba3f25a6026af7357a0dacf delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xa4240846c555621a0f5f74893d9a6dbe5f05818ff83d97a17fbce4eca544f7b5 rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x2d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9 => !trie_db!0xa594cb410b7a8eaef820bd98dabe6644968ccc50c00206a7b64639c4b819eb2c} (79%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xa6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b3919 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xa8c45b4ea97d2a21d5685f16a574e2e59f095f285aa5f4a25471f5448f367232 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xaa1b4c470ade5e074940b32af27f578ea3e052e9b3da5d798797779d5be72330 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xaf9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x46a918aa0d618d1d1dc236e5925df6dc0008a16659ca83385c69a4b35606053c => !trie_db!0xb027658cd9f34cc56f19bf6923d383888dfb189a164029246a93dd4947219d4f} (62%) create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xb862b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xbacecb794fd71630a75013b9cd6a92b55c266691fb712857713546e2dbd6ccc5 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xbdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xc0a34c8575974417addcd391882c3350b1c84be38a8323461ca9a9c4b9bccdb0 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xc1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xc33e8c016adce35292dea603caa238e3fa8b382466484bea96ad0df02467f83d delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xc3c2af5eb304969a1219910c397fe2551deeead43bf4dc31da370b54940fd61c delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xc513a870a8aabce8fbb50077c86a0af992e02a18aae7cca7497041c518734ddb delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xcc086f9633f075d3c23bb9551b1470f5d56499a1f369f4f063496dac49e7aa89 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xcd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x6a55b6d3a3fdb1233bb5ceb5522aa667230a5fb31040df20fbe56aa613dd43e7 => !trie_db!0xcded6842c1f531a0e8a2af309785e0751898831fc589591dedc418678c6b30f9} (79%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xd0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xd2e4ee7e1cecf87a621b6dd951cfe13e210fd3eaa6aa75b9bea7c980d73df66d delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xd38d5ab873bab372f221b180181d5591f5e91496d9ba50182eb42c34bb5d0e04 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xd75ec380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x2c3a0ea79ed559cee6147cc554d454335e34b36b2425f2714e051e14bce81716 => !trie_db!0xd869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0} (67%) delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xd9ec7f0130cfa3445cb94bae8e525dc4ef929d20e5db77aecf855796ea4c34ae delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xda6cceb1c9415ccbc08056ca4e1b7dbb566aa29413518beccb4107f30d276292 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xe147ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xe253d4b7d7ef57ba342532091d1c93254ea0b3b9376f95f4cd9cf3a86803a7eb create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xe8bdd56037a052633ad8625cbdddbb6feeb20756896c186b703c58c57ee21d57 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xe93f5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xea28dd9daa326ca6fb6597ca261fdef5a94dc13c0da20e8eac2e1831037b76c0 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xea7507edecefad1bcc8838b36e17227448df648bb024974689f2c38e5c9a4981 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xeae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xeaf9a3e2b763bb79ea266bfa08ee316b9e77a2a330abd3e5337f96248bd5fe40 delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xece1ea40f2c7ac5b9595f8d6929729201df3eed68821668d5d616d886d3f4dbe delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xef6fc700210874fabc4f6014264c65e76153dfef82ade8b003db2e5953fc85bf delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xf06ac6bd35446e1e7de4572527bd0be6fe9484be3ce98aaed6440112012bcbfa delete mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xf14a9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xf1daf331e5087cbb8c50fd9046e32fc7a0de95c46ffe5f945200bd81f1eaf18c rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x5242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c => !trie_db!0xf2d575262e45391e075f02c323155d245e0e21de99ac4db8c0fcf61c213609b7} (70%) rename scripts/ethereum/snapshot_contracts_1/{!trie_db!0x6909d618dcc96b7f33db90dd75b306c5418ef1346f81a9eed2dee6a289b55011 => !trie_db!0xf34bfca94042e4a2698fe663f99e6a795f59a7f6e6d3501212f8853581e52ab0} (62%) create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xf8122db5c8506e99d807279fae39ef8a48fa0c4bb845639da04160da6c4b20e9 create mode 100644 scripts/ethereum/snapshot_contracts_1/!trie_db!0xfedd3e0b5470cf40f4051ebae3538ca87dc6f26ee4b7291e62354e4ab12e1c08 diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x6a2b4a8a622d83801381f1723bf3e83456e57c674c0cc1a8eab8e7e950ce515a b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x1dc16834943f12663482cf4c3033f271bc792adc1bd8640c9ac1e15729eb5bb0 similarity index 100% rename from scripts/ethereum/snapshot_contracts_1/!blockHashes!0x6a2b4a8a622d83801381f1723bf3e83456e57c674c0cc1a8eab8e7e950ce515a rename to scripts/ethereum/snapshot_contracts_1/!blockHashes!0x1dc16834943f12663482cf4c3033f271bc792adc1bd8640c9ac1e15729eb5bb0 diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0xe5a6e3ddb943f599f729e1a1a6b1f9ec38c63d50f0bfee62728a15dc8c87e5a1 b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x32f4732006f5f5f30e77728fc7943b7101836ecd3444aac2916c83141622d74b similarity index 100% rename from scripts/ethereum/snapshot_contracts_1/!blockHashes!0xe5a6e3ddb943f599f729e1a1a6b1f9ec38c63d50f0bfee62728a15dc8c87e5a1 rename to scripts/ethereum/snapshot_contracts_1/!blockHashes!0x32f4732006f5f5f30e77728fc7943b7101836ecd3444aac2916c83141622d74b diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 deleted file mode 100644 index bf0d87ab1..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x33282f7b2454fdc24d18a51a604e19cc1b7222ef3da2c2220d99b63a09ac2336 +++ /dev/null @@ -1 +0,0 @@ -4 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x44871371a4347bcab22f55a4bee00d2b4bf73e522f310318b4828edda6761e9a b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x43120f780405d92ae500a7f6aebdbd38b62a54ce44642f055f6de0802303a8e7 similarity index 100% rename from scripts/ethereum/snapshot_contracts_1/!blockHashes!0x44871371a4347bcab22f55a4bee00d2b4bf73e522f310318b4828edda6761e9a rename to scripts/ethereum/snapshot_contracts_1/!blockHashes!0x43120f780405d92ae500a7f6aebdbd38b62a54ce44642f055f6de0802303a8e7 diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x4d10e5427b522346b738ad7e0eb73ed67cd226593991de34c72b54ebed16d40d b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x4d10e5427b522346b738ad7e0eb73ed67cd226593991de34c72b54ebed16d40d deleted file mode 100644 index f11c82a4c..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x4d10e5427b522346b738ad7e0eb73ed67cd226593991de34c72b54ebed16d40d +++ /dev/null @@ -1 +0,0 @@ -9 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 deleted file mode 100644 index 62f945751..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33 +++ /dev/null @@ -1 +0,0 @@ -6 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf deleted file mode 100644 index 7813681f5..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x6d377d8edfbb34e58195d37dee2311e1252453fcf19d76b3e47fd0f9161c04bf +++ /dev/null @@ -1 +0,0 @@ -5 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0xdedec2a7904e3c42143c03f227ae7bd286458e25a02a6fc4292f0491808898ae b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x7f2a033e985abf098cbbb42f3980c2371f12d6b2d4ca87dc32939e18c2cc89ec similarity index 100% rename from scripts/ethereum/snapshot_contracts_1/!blockHashes!0xdedec2a7904e3c42143c03f227ae7bd286458e25a02a6fc4292f0491808898ae rename to scripts/ethereum/snapshot_contracts_1/!blockHashes!0x7f2a033e985abf098cbbb42f3980c2371f12d6b2d4ca87dc32939e18c2cc89ec diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x9da0d549f4a5cdf7ebe245ab26a3a8bd8fc4fc450c4f2905b1c77ae6b21d0114 b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x9da0d549f4a5cdf7ebe245ab26a3a8bd8fc4fc450c4f2905b1c77ae6b21d0114 deleted file mode 100644 index c7930257d..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0x9da0d549f4a5cdf7ebe245ab26a3a8bd8fc4fc450c4f2905b1c77ae6b21d0114 +++ /dev/null @@ -1 +0,0 @@ -7 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0xb99d6661307a3ff20d08ffab0337f531f8c08df06c8b8f6fbee1915774a8b774 b/scripts/ethereum/snapshot_contracts_1/!blockHashes!0xb99d6661307a3ff20d08ffab0337f531f8c08df06c8b8f6fbee1915774a8b774 deleted file mode 100644 index 301160a93..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockHashes!0xb99d6661307a3ff20d08ffab0337f531f8c08df06c8b8f6fbee1915774a8b774 +++ /dev/null @@ -1 +0,0 @@ -8 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockLogs!4 b/scripts/ethereum/snapshot_contracts_1/!blockLogs!4 deleted file mode 100644 index 0637a088a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockLogs!4 +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockLogs!5 b/scripts/ethereum/snapshot_contracts_1/!blockLogs!5 deleted file mode 100644 index 0637a088a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockLogs!5 +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockLogs!6 b/scripts/ethereum/snapshot_contracts_1/!blockLogs!6 deleted file mode 100644 index 0637a088a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockLogs!6 +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockLogs!7 b/scripts/ethereum/snapshot_contracts_1/!blockLogs!7 deleted file mode 100644 index 0637a088a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockLogs!7 +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockLogs!8 b/scripts/ethereum/snapshot_contracts_1/!blockLogs!8 deleted file mode 100644 index 0637a088a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockLogs!8 +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockLogs!9 b/scripts/ethereum/snapshot_contracts_1/!blockLogs!9 deleted file mode 100644 index 0637a088a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blockLogs!9 +++ /dev/null @@ -1 +0,0 @@ -[] \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blockLogs!length b/scripts/ethereum/snapshot_contracts_1/!blockLogs!length index 9a037142a..bf0d87ab1 100644 --- a/scripts/ethereum/snapshot_contracts_1/!blockLogs!length +++ b/scripts/ethereum/snapshot_contracts_1/!blockLogs!length @@ -1 +1 @@ -10 \ No newline at end of file +4 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!0 b/scripts/ethereum/snapshot_contracts_1/!blocks!0 index 822d63084..453e3593c 100644 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!0 +++ b/scripts/ethereum/snapshot_contracts_1/!blocks!0 @@ -1 +1 @@ -{"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 +{"header":{"parentHash":"0x0000000000000000000000000000000000000000000000000000000000000000","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0xf17d0f681aab819c929b08f47cf3994440fdcdcbf18916e78faaf0119fe98db4","transactionsTrie":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","receiptTrie":"0x56e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x","gasLimit":"0x0fffffffffffff","gasUsed":"0x","timestamp":"0x62503feb","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!1 b/scripts/ethereum/snapshot_contracts_1/!blocks!1 index 724f63b22..2e72a8acb 100644 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!1 +++ b/scripts/ethereum/snapshot_contracts_1/!blocks!1 @@ -1 +1 @@ -{"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 +{"header":{"parentHash":"0x32f4732006f5f5f30e77728fc7943b7101836ecd3444aac2916c83141622d74b","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x457a58fb01052e3e436ad2059bbd05add3227aa2c7cb606aaa1d03ada9612bdd","transactionsTrie":"0xbec6ceda8b4a79286b3d01403773bc299f164130fac2be1e327a3924efc3dc3c","receiptTrie":"0x41d3cb5fd6e113debbe92b0ba67ff8c62ae8ad5b7bed3b87cf7f61a4fbe49694","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x01","gasLimit":"0x0fffffffffffff","gasUsed":"0x09b2b3","timestamp":"0x62504028","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":1649426411361}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!2 b/scripts/ethereum/snapshot_contracts_1/!blocks!2 index 284e0aabe..b30674a0f 100644 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!2 +++ b/scripts/ethereum/snapshot_contracts_1/!blocks!2 @@ -1 +1 @@ -{"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 +{"header":{"parentHash":"0x43120f780405d92ae500a7f6aebdbd38b62a54ce44642f055f6de0802303a8e7","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x8c228a79fea88b2003fe7d666107d9d8527af6cb498f2a12486139e4a589ba99","transactionsTrie":"0x82f08f90dde60f8e60007238c9f03543d67f350d69d0ba5b2d2cdc480692d6b5","receiptTrie":"0x4593fa4b87f4619acddc3d13f088c63183cfecb80a59eb56dba0a958eeedb712","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x02","gasLimit":"0x0fffffffffffff","gasUsed":"0x068070","timestamp":"0x62504028","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449","nonce":"0x1","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b506106c0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e3660046101c5565b610045565b005b60005b8151811015610108576000801b8484848481518110610069576100696102da565b602002602001015160405161007d9061010e565b6001600160a01b03938416815282518416602080830191909152830151841660408083019190915280840151851660608084019190915284015185166080808401919091529093015160a0820152921660c083015251829181900360e001906000f59050801580156100f3573d6000803e3d6000fd5b50508080610100906102b1565b915050610048565b50505050565b61036c8061031f83390190565b600082601f83011261012c57600080fd5b8135602067ffffffffffffffff80831115610149576101496102f0565b8260051b604051601f19603f8301168101818110848211171561016e5761016e6102f0565b6040528481528381019250868401828801850189101561018d57600080fd5b600092505b858310156101b95780356101a581610306565b845292840192600192909201918401610192565b50979650505050505050565b600080600083850360e08112156101db57600080fd5b84356101e681610306565b935060a0601f19820112156101fa57600080fd5b50610203610288565b602085013561021181610306565b8152604085013561022181610306565b6020820152606085013561023481610306565b6040820152608085013561024781610306565b606082015260a08501356080820152915060c084013567ffffffffffffffff81111561027257600080fd5b61027e8682870161011b565b9150509250925092565b60405160a0810167ffffffffffffffff811182821017156102ab576102ab6102f0565b60405290565b60006000198214156102d357634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461031b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161036c38038061036c83398101604081905261002f9161026f565b60608201516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561007557600080fd5b505afa158015610089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ad919061033a565b90506100c88360600151858361016660201b6100091760201c565b6040805163db6198a360e01b815284516001600160a01b03908116600483015260208601518116602483015291850151821660448201526060850151821660648201526080850151608482015283821660a482015260c481018390529085169063db6198a39060e401600060405180830381600087803b15801561014b57600080fd5b505af115801561015f573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b390604401600060405180830381600087803b1580156101b057600080fd5b505af11580156101c4573d6000803e3d6000fd5b505050506101d661022b60201b60201c565b6102265760405162461bcd60e51b815260206004820152601960248201527f5361666545524332303a20617070726f7665206661696c656400000000000000604482015260640160405180910390fd5b505050565b6000803d8015610242576020811461024b57610257565b60019150610257565b60206000803e60005191505b501515919050565b805161026a81610353565b919050565b600080600083850360e081121561028557600080fd5b845161029081610353565b935060a0601f19820112156102a457600080fd5b5060405160a081016001600160401b03811182821017156102d557634e487b7160e01b600052604160045260246000fd5b6040526102e46020860161025f565b81526102f26040860161025f565b60208201526103036060860161025f565b60408201526103146080860161025f565b606082015260a08501516080820152915061033160c0850161025f565b90509250925092565b60006020828403121561034c57600080fd5b5051919050565b6001600160a01b038116811461036857600080fd5b5056fea26469706673582212209bda0a08c5039854e5c8aa47fdd0644c803677908a9856e79538a97941fdd19964736f6c63430008070033","v":"0x25","r":"0x4236cd83f6cf05199d1edfc8109bf577993cf0133ded3dadf908f78fd6647193","s":"0x655f5116cd2e2a25218bf5b567f33971eb8e73303b2cffaa76a5a89e857bbcfa","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1649426411361}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!3 b/scripts/ethereum/snapshot_contracts_1/!blocks!3 index 6795ac4ac..b4c701dc4 100644 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!3 +++ b/scripts/ethereum/snapshot_contracts_1/!blocks!3 @@ -1 +1 @@ -{"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 +{"header":{"parentHash":"0x1dc16834943f12663482cf4c3033f271bc792adc1bd8640c9ac1e15729eb5bb0","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x2863659d8345c4effc49c817579cc4c3f27a24a561df382e216ef959118bd83d","transactionsTrie":"0x9f025f380c6a66833e3db11aebead7002270671fd713edbf71f4961f8b1787a8","receiptTrie":"0x3f5f1fba155965bae38441f29892f37e05717ad2a4a92fba8c84cdba19ceb803","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x03","gasLimit":"0x0fffffffffffff","gasUsed":"0x139ecf","timestamp":"0x62504028","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8","nonce":"0x2","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b5061164d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610166578063b716d6fa14610179578063bc1ed74c14610199578063c1e69b66146101b9578063db6198a3146101d9578063f8d682ea146101ec57600080fd5b8063056036d4146100b957806331c31bba146100d557806343f183e9146100ea5780634f1c2c31146100fd578063553721c5146101285780638126e4d214610153575b600080fd5b6100c36203f48081565b60405190815260200160405180910390f35b6100e86100e3366004611303565b6101ff565b005b6100e86100f8366004611432565b610367565b6100c361010b3660046113ad565b600360209081526000928352604080842090915290825290205481565b6100c36101363660046113ad565b600260209081526000928352604080842090915290825290205481565b6100e861016136600461147a565b610577565b6100e86101743660046113d9565b61059d565b6100c3610187366004611394565b60046020526000908152604090205481565b6100c36101a7366004611394565b60016020526000908152604090205481565b6100c36101c7366004611394565b60006020819052908152604090205481565b6100e86101e73660046113f5565b61073d565b6100e86101fa3660046113d9565b6108ac565b806102425760405162461bcd60e51b815260206004820152600e60248201526d4e4f5f5749544844524157414c5360901b60448201526064015b60405180910390fd5b6000808383600081811061025857610258611601565b905060200281019061026a919061156a565b61027b9060808101906060016112e1565b905060005b8381101561033f573685858381811061029b5761029b611601565b90506020028101906102ad919061156a565b90506001600160a01b0383166102c960808301606084016112e1565b6001600160a01b0316146103155760405162461bcd60e51b815260206004820152601360248201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b6044820152606401610239565b61031f8882610a43565b610329908561158b565b9350508080610337906115ba565b915050610280565b506001600160a01b0386163314610354578594505b61035f818684610d99565b505050505050565b60008360405160200161037a91906114b6565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906103b257506000198114155b6103f75760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b60405165726573756d6560d01b6020820152602681018390526046810182905260009060660160408051601f1981840301815291905280516020918201209150610474908290610449908901896112e1565b6040805160608181019092529089906003908390839080828437600092019190915250610e54915050565b6104b55760405162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c45414445525f53494760701b6044820152606401610239565b6104f4816104c96040890160208a016112e1565b6040805160608181019092529088906003908390839080828437600092019190915250610e54915050565b6105375760405162461bcd60e51b8152602060048201526014602482015273494e56414c49445f464f4c4c4f5745525f53494760601b6044820152606401610239565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b61059a61058a60808301606084016112e1565b336105953385610a43565b610d99565b50565b60006105af60608301604084016112e1565b9050336001600160a01b038216146105f85760405162461bcd60e51b815260206004820152600c60248201526b2727aa2fa3aaa0a92224a0a760a11b6044820152606401610239565b60008260405160200161060b91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061064357506000198114155b6106885760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b8042116106ce5760405162461bcd60e51b81526020600482015260146024820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b6044820152606401610239565b600082815260016020908152604080832080549084905591839052909120600019905561070b61070460808701606088016112e1565b8583610d99565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60008360405160200161075091906114b6565b604051602081830303815290604052805190602001209050600082116107a55760405162461bcd60e51b815260206004820152600a6024820152691393d7d1115413d4d25560b21b6044820152606401610239565b60008181526020819052604090205460001914156107f65760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b6000818152600160205260408120805484929061081490849061158b565b909155505060008181526003602090815260408083206001600160a01b03871684529091528120805484929061084b90849061158b565b9091555061086c905061086460808601606087016112e1565b333085610e7c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e49131778360405161089e91815260200190565b60405180910390a250505050565b6108b960208201826112e1565b6001600160a01b0316336001600160a01b031614806108f857506108e360408201602083016112e1565b6001600160a01b0316336001600160a01b0316145b80610923575061090e60608201604083016112e1565b6001600160a01b0316336001600160a01b0316145b6109605760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610239565b60008160405160200161097391906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156109e75760405162461bcd60e51b815260206004820152601a60248201527f4348414e4e454c5f414c52454144595f4348414c4c454e4745440000000000006044820152606401610239565b60006109f66203f4804261158b565b60008381526020818152604091829020839055905182815291925083917fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e910160405180910390a2505050565b60008082600001604051602001610a5a91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150600019811415610ac45760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b8015610ae057600082815260046020526040902060c085013590555b6040805130602082015290810183905260c0850135606082015260009060800160408051601f1981840301815291905280516020918201209150610b5a908290610b2c908801886112e1565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610e54915050565b610b935760405162461bcd60e51b815260206004820152600a6024820152694c45414445525f53494760b01b6044820152606401610239565b610bd681610ba760408801602089016112e1565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610e54915050565b610c115760405162461bcd60e51b815260206004820152600c60248201526b464f4c4c4f5745525f53494760a01b6044820152606401610239565b604080516001600160a01b03881660208083019190915260a08801358284015282518083038401815260609092019092528051910120610c9481610c596101a0890189611519565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610f40565b610cd95760405162461bcd60e51b8152602060048201526016602482015275109053105390d1549311505197d393d517d193d5539160521b6044820152606401610239565b60008481526002602090815260408083206001600160a01b038b168452909152812054610d0a9060a08901356115a3565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610d529084906115a3565b909155505060405181815285907fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec39060200160405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401600060405180830381600087803b158015610de357600080fd5b505af1158015610df7573d6000803e3d6000fd5b50505050610e03611030565b610e4f5760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c65640000000000006044820152606401610239565b505050565b6000826001600160a01b0316610e6a8584611064565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd90606401600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b50505050610eee611030565b610f3a5760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c656400006044820152606401610239565b50505050565b81516000908490825b8181101561102457858181518110610f6357610f63611601565b6020026020010151831015610fc45782868281518110610f8557610f85611601565b6020026020010151604051602001610fa7929190918252602082015260400190565b604051602081830303815290604052805190602001209250611012565b858181518110610fd657610fd6611601565b602002602001015183604051602001610ff9929190918252602082015260400190565b6040516020818303038152906040528051906020012092505b8061101c816115ba565b915050610f49565b50509091149392505050565b6000803d801561104757602081146110505761105c565b6001915061105c565b60206000803e60005191505b501515919050565b80516000908190811a600481111561107e5761107e6115eb565b90506000816004811115611094576110946115eb565b14156110a4576000915050610d93565b825160011a60028260048111156110bd576110bd6115eb565b1415611114576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101869052605c015b60405160208183030381529060405280519060200120945061122d565b6003826004811115611128576111286115eb565b1415611166576040517f19457468657265756d205369676e6564204d6573736167653a0a2000000000006020820152603b8101869052605b016110f7565b600482600481111561117a5761117a6115eb565b141561122d57604080517f19457468657265756d205369676e6564204d6573736167653a0a31303842792060208201527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f77918101919091527f6c65646765207369676e696e6720616e204164457820626964207769746820746060820152683432903430b9b41d0560b91b60808201526089810186905260a9016040516020818303038152906040528051906020012094505b60208085015160408087015181516000815293840180835289905260ff8516918401919091526060830191909152608082015260019060a0016020604051602081039080840390855afa158015611288573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b03811681146112b357600080fd5b919050565b8060608101831015610d9357600080fd5b600060a082840312156112db57600080fd5b50919050565b6000602082840312156112f357600080fd5b6112fc8261129c565b9392505050565b6000806000806060858703121561131957600080fd5b6113228561129c565b93506113306020860161129c565b9250604085013567ffffffffffffffff8082111561134d57600080fd5b818701915087601f83011261136157600080fd5b81358181111561137057600080fd5b8860208260051b850101111561138557600080fd5b95989497505060200194505050565b6000602082840312156113a657600080fd5b5035919050565b600080604083850312156113c057600080fd5b823591506113d06020840161129c565b90509250929050565b600060a082840312156113eb57600080fd5b6112fc83836112c9565b600080600060e0848603121561140a57600080fd5b61141485856112c9565b925061142260a0850161129c565b915060c084013590509250925092565b6000806000610160848603121561144857600080fd5b61145285856112c9565b92506114618560a086016112b8565b91506114718561010086016112b8565b90509250925092565b60006020828403121561148c57600080fd5b813567ffffffffffffffff8111156114a357600080fd5b82016101c081850312156112fc57600080fd5b60a081016001600160a01b03806114cc8561129c565b168352806114dc6020860161129c565b166020840152806114ef6040860161129c565b166040840152806115026060860161129c565b166060840152506080830135608083015292915050565b6000808335601e1984360301811261153057600080fd5b83018035915067ffffffffffffffff82111561154b57600080fd5b6020019150600581901b360382131561156357600080fd5b9250929050565b600082356101be1983360301811261158157600080fd5b9190910192915050565b6000821982111561159e5761159e6115d5565b500190565b6000828210156115b5576115b56115d5565b500390565b60006000198214156115ce576115ce6115d5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220dcb9cf70a226bc182c893d4ce587736ba7aee71eed1a42897fd24e55509f7eff64736f6c63430008070033","v":"0x26","r":"0xaba384579dc75cc4d8eefc30807bb71166f1cf18f5e23abc6f77230e8ce78353","s":"0x1bdfcb09452cafd36983b47cbd408cb8d4ebc04fb8718bf9ce8d962ca67b2faa","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1649426411361}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!4 b/scripts/ethereum/snapshot_contracts_1/!blocks!4 deleted file mode 100644 index 615ea97fe..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!4 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!blocks!5 b/scripts/ethereum/snapshot_contracts_1/!blocks!5 deleted file mode 100644 index 36934bb2e..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!5 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!blocks!6 b/scripts/ethereum/snapshot_contracts_1/!blocks!6 deleted file mode 100644 index b8e993a33..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!6 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!blocks!7 b/scripts/ethereum/snapshot_contracts_1/!blocks!7 deleted file mode 100644 index 64e99c2b3..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!7 +++ /dev/null @@ -1 +0,0 @@ -{"header":{"parentHash":"0x59dd056c61376c3dc4bdfa7d9179eddace016f7098328287726a0415f7683d33","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x1bd138395965ae1808b14c362d8cfdf165fea7c247273d13c181f09325a26b25","transactionsTrie":"0xe156b0e6fc470ee242a87ba3ab46b29cf10fbd1017a2c9775056471dc957ba37","receiptTrie":"0x41d3cb5fd6e113debbe92b0ba67ff8c62ae8ad5b7bed3b87cf7f61a4fbe49694","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x07","gasLimit":"0x0fffffffffffff","gasUsed":"0x09b2b3","timestamp":"0x6242d214","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968","nonce":"0x6","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x26","r":"0xfedccc2678a71aea5068e59c5d2bb1d4cf446deac241661faf7dd2b0c0227901","s":"0x7c137da31ddfca6673fe300896e6a662fee5b40cd3d06a8e6e940dbd9406889c","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1648546248174}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!8 b/scripts/ethereum/snapshot_contracts_1/!blocks!8 deleted file mode 100644 index 3d4affbfa..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!8 +++ /dev/null @@ -1 +0,0 @@ -{"header":{"parentHash":"0x9da0d549f4a5cdf7ebe245ab26a3a8bd8fc4fc450c4f2905b1c77ae6b21d0114","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x941993414c6bdb351136bafaff3d72c7db63e7da5576cdc2cfd269f62af30eba","transactionsTrie":"0xf9ca29e9cd69f3fb9156bbf8ed17e54e1b6049bafa4640a703c9a8f8b3d92385","receiptTrie":"0x4593fa4b87f4619acddc3d13f088c63183cfecb80a59eb56dba0a958eeedb712","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x08","gasLimit":"0x0fffffffffffff","gasUsed":"0x068070","timestamp":"0x6242d215","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb","nonce":"0x7","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b506106c0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e3660046101c5565b610045565b005b60005b8151811015610108576000801b8484848481518110610069576100696102da565b602002602001015160405161007d9061010e565b6001600160a01b03938416815282518416602080830191909152830151841660408083019190915280840151851660608084019190915284015185166080808401919091529093015160a0820152921660c083015251829181900360e001906000f59050801580156100f3573d6000803e3d6000fd5b50508080610100906102b1565b915050610048565b50505050565b61036c8061031f83390190565b600082601f83011261012c57600080fd5b8135602067ffffffffffffffff80831115610149576101496102f0565b8260051b604051601f19603f8301168101818110848211171561016e5761016e6102f0565b6040528481528381019250868401828801850189101561018d57600080fd5b600092505b858310156101b95780356101a581610306565b845292840192600192909201918401610192565b50979650505050505050565b600080600083850360e08112156101db57600080fd5b84356101e681610306565b935060a0601f19820112156101fa57600080fd5b50610203610288565b602085013561021181610306565b8152604085013561022181610306565b6020820152606085013561023481610306565b6040820152608085013561024781610306565b606082015260a08501356080820152915060c084013567ffffffffffffffff81111561027257600080fd5b61027e8682870161011b565b9150509250925092565b60405160a0810167ffffffffffffffff811182821017156102ab576102ab6102f0565b60405290565b60006000198214156102d357634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461031b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161036c38038061036c83398101604081905261002f9161026f565b60608201516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561007557600080fd5b505afa158015610089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ad919061033a565b90506100c88360600151858361016660201b6100091760201c565b6040805163db6198a360e01b815284516001600160a01b03908116600483015260208601518116602483015291850151821660448201526060850151821660648201526080850151608482015283821660a482015260c481018390529085169063db6198a39060e401600060405180830381600087803b15801561014b57600080fd5b505af115801561015f573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b390604401600060405180830381600087803b1580156101b057600080fd5b505af11580156101c4573d6000803e3d6000fd5b505050506101d661022b60201b60201c565b6102265760405162461bcd60e51b815260206004820152601960248201527f5361666545524332303a20617070726f7665206661696c656400000000000000604482015260640160405180910390fd5b505050565b6000803d8015610242576020811461024b57610257565b60019150610257565b60206000803e60005191505b501515919050565b805161026a81610353565b919050565b600080600083850360e081121561028557600080fd5b845161029081610353565b935060a0601f19820112156102a457600080fd5b5060405160a081016001600160401b03811182821017156102d557634e487b7160e01b600052604160045260246000fd5b6040526102e46020860161025f565b81526102f26040860161025f565b60208201526103036060860161025f565b60408201526103146080860161025f565b606082015260a08501516080820152915061033160c0850161025f565b90509250925092565b60006020828403121561034c57600080fd5b5051919050565b6001600160a01b038116811461036857600080fd5b5056fea26469706673582212209bda0a08c5039854e5c8aa47fdd0644c803677908a9856e79538a97941fdd19964736f6c63430008070033","v":"0x26","r":"0xec6f77f6b60e186d69b3cdc108d40a102280125d5139e3d8ffd08f23c58aefaf","s":"0x5cdbce7b655b5eb2e26e6d404e526f4d0f60960f96cdcbb83d6e8ea9fe4538a1","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1648546248174}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!9 b/scripts/ethereum/snapshot_contracts_1/!blocks!9 deleted file mode 100644 index 0740e95d1..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!9 +++ /dev/null @@ -1 +0,0 @@ -{"header":{"parentHash":"0xb99d6661307a3ff20d08ffab0337f531f8c08df06c8b8f6fbee1915774a8b774","uncleHash":"0x1dcc4de8dec75d7aab85b567b6ccd41ad312451b948a7413f0a142fd40d49347","coinbase":"0x0000000000000000000000000000000000000000","stateRoot":"0x6f15b8bc2ba0d66b7c6232755d71fa56d9ce1163b2c7aee385f27692c1d099dd","transactionsTrie":"0x49f036436cd6807e3307e605b900e96de4ab104234399fb2454ec1c21b18e6b4","receiptTrie":"0x3f5f1fba155965bae38441f29892f37e05717ad2a4a92fba8c84cdba19ceb803","bloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","difficulty":"0x","number":"0x09","gasLimit":"0x0fffffffffffff","gasUsed":"0x139ecf","timestamp":"0x6242d215","extraData":"0x","mixHash":"0x0000000000000000000000000000000000000000000000000000000000000000","nonce":"0x0000000000000000"},"transactions":[{"hash":"0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e","nonce":"0x8","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b5061164d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610166578063b716d6fa14610179578063bc1ed74c14610199578063c1e69b66146101b9578063db6198a3146101d9578063f8d682ea146101ec57600080fd5b8063056036d4146100b957806331c31bba146100d557806343f183e9146100ea5780634f1c2c31146100fd578063553721c5146101285780638126e4d214610153575b600080fd5b6100c36203f48081565b60405190815260200160405180910390f35b6100e86100e3366004611303565b6101ff565b005b6100e86100f8366004611432565b610367565b6100c361010b3660046113ad565b600360209081526000928352604080842090915290825290205481565b6100c36101363660046113ad565b600260209081526000928352604080842090915290825290205481565b6100e861016136600461147a565b610577565b6100e86101743660046113d9565b61059d565b6100c3610187366004611394565b60046020526000908152604090205481565b6100c36101a7366004611394565b60016020526000908152604090205481565b6100c36101c7366004611394565b60006020819052908152604090205481565b6100e86101e73660046113f5565b61073d565b6100e86101fa3660046113d9565b6108ac565b806102425760405162461bcd60e51b815260206004820152600e60248201526d4e4f5f5749544844524157414c5360901b60448201526064015b60405180910390fd5b6000808383600081811061025857610258611601565b905060200281019061026a919061156a565b61027b9060808101906060016112e1565b905060005b8381101561033f573685858381811061029b5761029b611601565b90506020028101906102ad919061156a565b90506001600160a01b0383166102c960808301606084016112e1565b6001600160a01b0316146103155760405162461bcd60e51b815260206004820152601360248201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b6044820152606401610239565b61031f8882610a43565b610329908561158b565b9350508080610337906115ba565b915050610280565b506001600160a01b0386163314610354578594505b61035f818684610d99565b505050505050565b60008360405160200161037a91906114b6565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906103b257506000198114155b6103f75760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b60405165726573756d6560d01b6020820152602681018390526046810182905260009060660160408051601f1981840301815291905280516020918201209150610474908290610449908901896112e1565b6040805160608181019092529089906003908390839080828437600092019190915250610e54915050565b6104b55760405162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c45414445525f53494760701b6044820152606401610239565b6104f4816104c96040890160208a016112e1565b6040805160608181019092529088906003908390839080828437600092019190915250610e54915050565b6105375760405162461bcd60e51b8152602060048201526014602482015273494e56414c49445f464f4c4c4f5745525f53494760601b6044820152606401610239565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b61059a61058a60808301606084016112e1565b336105953385610a43565b610d99565b50565b60006105af60608301604084016112e1565b9050336001600160a01b038216146105f85760405162461bcd60e51b815260206004820152600c60248201526b2727aa2fa3aaa0a92224a0a760a11b6044820152606401610239565b60008260405160200161060b91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061064357506000198114155b6106885760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b8042116106ce5760405162461bcd60e51b81526020600482015260146024820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b6044820152606401610239565b600082815260016020908152604080832080549084905591839052909120600019905561070b61070460808701606088016112e1565b8583610d99565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60008360405160200161075091906114b6565b604051602081830303815290604052805190602001209050600082116107a55760405162461bcd60e51b815260206004820152600a6024820152691393d7d1115413d4d25560b21b6044820152606401610239565b60008181526020819052604090205460001914156107f65760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b6000818152600160205260408120805484929061081490849061158b565b909155505060008181526003602090815260408083206001600160a01b03871684529091528120805484929061084b90849061158b565b9091555061086c905061086460808601606087016112e1565b333085610e7c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e49131778360405161089e91815260200190565b60405180910390a250505050565b6108b960208201826112e1565b6001600160a01b0316336001600160a01b031614806108f857506108e360408201602083016112e1565b6001600160a01b0316336001600160a01b0316145b80610923575061090e60608201604083016112e1565b6001600160a01b0316336001600160a01b0316145b6109605760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610239565b60008160405160200161097391906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156109e75760405162461bcd60e51b815260206004820152601a60248201527f4348414e4e454c5f414c52454144595f4348414c4c454e4745440000000000006044820152606401610239565b60006109f66203f4804261158b565b60008381526020818152604091829020839055905182815291925083917fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e910160405180910390a2505050565b60008082600001604051602001610a5a91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150600019811415610ac45760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b8015610ae057600082815260046020526040902060c085013590555b6040805130602082015290810183905260c0850135606082015260009060800160408051601f1981840301815291905280516020918201209150610b5a908290610b2c908801886112e1565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610e54915050565b610b935760405162461bcd60e51b815260206004820152600a6024820152694c45414445525f53494760b01b6044820152606401610239565b610bd681610ba760408801602089016112e1565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610e54915050565b610c115760405162461bcd60e51b815260206004820152600c60248201526b464f4c4c4f5745525f53494760a01b6044820152606401610239565b604080516001600160a01b03881660208083019190915260a08801358284015282518083038401815260609092019092528051910120610c9481610c596101a0890189611519565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610f40565b610cd95760405162461bcd60e51b8152602060048201526016602482015275109053105390d1549311505197d393d517d193d5539160521b6044820152606401610239565b60008481526002602090815260408083206001600160a01b038b168452909152812054610d0a9060a08901356115a3565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610d529084906115a3565b909155505060405181815285907fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec39060200160405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401600060405180830381600087803b158015610de357600080fd5b505af1158015610df7573d6000803e3d6000fd5b50505050610e03611030565b610e4f5760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c65640000000000006044820152606401610239565b505050565b6000826001600160a01b0316610e6a8584611064565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd90606401600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b50505050610eee611030565b610f3a5760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c656400006044820152606401610239565b50505050565b81516000908490825b8181101561102457858181518110610f6357610f63611601565b6020026020010151831015610fc45782868281518110610f8557610f85611601565b6020026020010151604051602001610fa7929190918252602082015260400190565b604051602081830303815290604052805190602001209250611012565b858181518110610fd657610fd6611601565b602002602001015183604051602001610ff9929190918252602082015260400190565b6040516020818303038152906040528051906020012092505b8061101c816115ba565b915050610f49565b50509091149392505050565b6000803d801561104757602081146110505761105c565b6001915061105c565b60206000803e60005191505b501515919050565b80516000908190811a600481111561107e5761107e6115eb565b90506000816004811115611094576110946115eb565b14156110a4576000915050610d93565b825160011a60028260048111156110bd576110bd6115eb565b1415611114576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101869052605c015b60405160208183030381529060405280519060200120945061122d565b6003826004811115611128576111286115eb565b1415611166576040517f19457468657265756d205369676e6564204d6573736167653a0a2000000000006020820152603b8101869052605b016110f7565b600482600481111561117a5761117a6115eb565b141561122d57604080517f19457468657265756d205369676e6564204d6573736167653a0a31303842792060208201527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f77918101919091527f6c65646765207369676e696e6720616e204164457820626964207769746820746060820152683432903430b9b41d0560b91b60808201526089810186905260a9016040516020818303038152906040528051906020012094505b60208085015160408087015181516000815293840180835289905260ff8516918401919091526060830191909152608082015260019060a0016020604051602081039080840390855afa158015611288573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b03811681146112b357600080fd5b919050565b8060608101831015610d9357600080fd5b600060a082840312156112db57600080fd5b50919050565b6000602082840312156112f357600080fd5b6112fc8261129c565b9392505050565b6000806000806060858703121561131957600080fd5b6113228561129c565b93506113306020860161129c565b9250604085013567ffffffffffffffff8082111561134d57600080fd5b818701915087601f83011261136157600080fd5b81358181111561137057600080fd5b8860208260051b850101111561138557600080fd5b95989497505060200194505050565b6000602082840312156113a657600080fd5b5035919050565b600080604083850312156113c057600080fd5b823591506113d06020840161129c565b90509250929050565b600060a082840312156113eb57600080fd5b6112fc83836112c9565b600080600060e0848603121561140a57600080fd5b61141485856112c9565b925061142260a0850161129c565b915060c084013590509250925092565b6000806000610160848603121561144857600080fd5b61145285856112c9565b92506114618560a086016112b8565b91506114718561010086016112b8565b90509250925092565b60006020828403121561148c57600080fd5b813567ffffffffffffffff8111156114a357600080fd5b82016101c081850312156112fc57600080fd5b60a081016001600160a01b03806114cc8561129c565b168352806114dc6020860161129c565b166020840152806114ef6040860161129c565b166040840152806115026060860161129c565b166060840152506080830135608083015292915050565b6000808335601e1984360301811261153057600080fd5b83018035915067ffffffffffffffff82111561154b57600080fd5b6020019150600581901b360382131561156357600080fd5b9250929050565b600082356101be1983360301811261158157600080fd5b9190910192915050565b6000821982111561159e5761159e6115d5565b500190565b6000828210156115b5576115b56115d5565b500390565b60006000198214156115ce576115ce6115d5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220dcb9cf70a226bc182c893d4ce587736ba7aee71eed1a42897fd24e55509f7eff64736f6c63430008070033","v":"0x26","r":"0x5eaa0334d39823c7fbb3bf0cd5001cb62c73b1fdd227c6f54933f22ab040a624","s":"0x28271c701b425569e9fab861471171e0ee65f7157d7189b7ef5825ff9a86798e","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1648546248174}}],"uncleHeaders":[]} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!blocks!length b/scripts/ethereum/snapshot_contracts_1/!blocks!length index 9a037142a..bf0d87ab1 100644 --- a/scripts/ethereum/snapshot_contracts_1/!blocks!length +++ b/scripts/ethereum/snapshot_contracts_1/!blocks!length @@ -1 +1 @@ -10 \ No newline at end of file +4 \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 deleted file mode 100644 index 6bb82e3b3..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!transactionReceipts!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449 similarity index 52% rename from scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 rename to scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449 index 19cb31b3a..12d938409 100644 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 +++ b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449 @@ -1 +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 +{"transactionHash":"0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449","transactionIndex":"0x0","blockHash":"0x1dc16834943f12663482cf4c3033f271bc792adc1bd8640c9ac1e15729eb5bb0","blockNumber":"0x2","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x68070","cumulativeGasUsed":"0x68070","contractAddress":"0x3550a85877002f79db46b01672b5f86f1037cb7c","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x25","r":"0x4236cd83f6cf05199d1edfc8109bf577993cf0133ded3dadf908f78fd6647193","s":"0x655f5116cd2e2a25218bf5b567f33971eb8e73303b2cffaa76a5a89e857bbcfa"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e deleted file mode 100644 index 3636dd80e..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e +++ /dev/null @@ -1 +0,0 @@ -{"transactionHash":"0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e","transactionIndex":"0x0","blockHash":"0x4d10e5427b522346b738ad7e0eb73ed67cd226593991de34c72b54ebed16d40d","blockNumber":"0x9","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x139ecf","cumulativeGasUsed":"0x139ecf","contractAddress":"0x671b54359be2fa82ab05a5336eb8134f782b88cd","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0x5eaa0334d39823c7fbb3bf0cd5001cb62c73b1fdd227c6f54933f22ab040a624","s":"0x28271c701b425569e9fab861471171e0ee65f7157d7189b7ef5825ff9a86798e"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 deleted file mode 100644 index aa500c939..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 +++ /dev/null @@ -1 +0,0 @@ -{"transactionHash":"0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968","transactionIndex":"0x0","blockHash":"0x9da0d549f4a5cdf7ebe245ab26a3a8bd8fc4fc450c4f2905b1c77ae6b21d0114","blockNumber":"0x7","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x9b2b3","cumulativeGasUsed":"0x9b2b3","contractAddress":"0x704d76a8c31fbaafe2b7895b13a763c7487fc0d8","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0xfedccc2678a71aea5068e59c5d2bb1d4cf446deac241661faf7dd2b0c0227901","s":"0x7c137da31ddfca6673fe300896e6a662fee5b40cd3d06a8e6e940dbd9406889c"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 index 331f056b5..b2e8614f3 100644 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 +++ b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 @@ -1 +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 +{"transactionHash":"0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01","transactionIndex":"0x0","blockHash":"0x43120f780405d92ae500a7f6aebdbd38b62a54ce44642f055f6de0802303a8e7","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_1/!transactionReceipts!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb deleted file mode 100644 index 9f1ce4ef5..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb +++ /dev/null @@ -1 +0,0 @@ -{"transactionHash":"0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb","transactionIndex":"0x0","blockHash":"0xb99d6661307a3ff20d08ffab0337f531f8c08df06c8b8f6fbee1915774a8b774","blockNumber":"0x8","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x68070","cumulativeGasUsed":"0x68070","contractAddress":"0xe37ba12d23e755138f7ea8391551b773cb2d8f5f","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0xec6f77f6b60e186d69b3cdc108d40a102280125d5139e3d8ffd08f23c58aefaf","s":"0x5cdbce7b655b5eb2e26e6d404e526f4d0f60960f96cdcbb83d6e8ea9fe4538a1"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8 similarity index 58% rename from scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba rename to scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8 index 87c16155e..219e93cbd 100644 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba +++ b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8 @@ -1 +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 +{"transactionHash":"0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8","transactionIndex":"0x0","blockHash":"0x7f2a033e985abf098cbbb42f3980c2371f12d6b2d4ca87dc32939e18c2cc89ec","blockNumber":"0x3","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"gasUsed":"0x139ecf","cumulativeGasUsed":"0x139ecf","contractAddress":"0x26cbc2eaae377f6ac4b73a982cd1125ef4cec96f","logs":[],"status":"0x1","logsBloom":"0x00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000","v":"0x26","r":"0xaba384579dc75cc4d8eefc30807bb71166f1cf18f5e23abc6f77230e8ce78353","s":"0x1bdfcb09452cafd36983b47cbd408cb8d4ebc04fb8718bf9ce8d962ca67b2faa"} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 deleted file mode 100644 index ddfc67c8e..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!transactionReceipts!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc b/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc deleted file mode 100644 index e07132b04..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactionReceipts!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!transactions!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba b/scripts/ethereum/snapshot_contracts_1/!transactions!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba deleted file mode 100644 index 26a2d3cac..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0x13e81d48030023591191835a920868c95b3811db27e7394863f40c1833fbffba +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!transactions!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 b/scripts/ethereum/snapshot_contracts_1/!transactions!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 deleted file mode 100644 index 88b07e32c..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xbabc388a6232d35f98f22b5b0767e80cedd818a1a2f6b73b6d414afe548e43a6 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!transactions!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb b/scripts/ethereum/snapshot_contracts_1/!transactions!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449 similarity index 90% rename from scripts/ethereum/snapshot_contracts_1/!transactions!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb rename to scripts/ethereum/snapshot_contracts_1/!transactions!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449 index 14b087f9c..18560e61f 100644 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb +++ b/scripts/ethereum/snapshot_contracts_1/!transactions!0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449 @@ -1 +1 @@ -{"hash":"0xd8bd44e19e08e0098a3db76b6c8d5ce992a88545be689cfbf231320ad66cddcb","nonce":"0x7","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b506106c0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e3660046101c5565b610045565b005b60005b8151811015610108576000801b8484848481518110610069576100696102da565b602002602001015160405161007d9061010e565b6001600160a01b03938416815282518416602080830191909152830151841660408083019190915280840151851660608084019190915284015185166080808401919091529093015160a0820152921660c083015251829181900360e001906000f59050801580156100f3573d6000803e3d6000fd5b50508080610100906102b1565b915050610048565b50505050565b61036c8061031f83390190565b600082601f83011261012c57600080fd5b8135602067ffffffffffffffff80831115610149576101496102f0565b8260051b604051601f19603f8301168101818110848211171561016e5761016e6102f0565b6040528481528381019250868401828801850189101561018d57600080fd5b600092505b858310156101b95780356101a581610306565b845292840192600192909201918401610192565b50979650505050505050565b600080600083850360e08112156101db57600080fd5b84356101e681610306565b935060a0601f19820112156101fa57600080fd5b50610203610288565b602085013561021181610306565b8152604085013561022181610306565b6020820152606085013561023481610306565b6040820152608085013561024781610306565b606082015260a08501356080820152915060c084013567ffffffffffffffff81111561027257600080fd5b61027e8682870161011b565b9150509250925092565b60405160a0810167ffffffffffffffff811182821017156102ab576102ab6102f0565b60405290565b60006000198214156102d357634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461031b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161036c38038061036c83398101604081905261002f9161026f565b60608201516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561007557600080fd5b505afa158015610089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ad919061033a565b90506100c88360600151858361016660201b6100091760201c565b6040805163db6198a360e01b815284516001600160a01b03908116600483015260208601518116602483015291850151821660448201526060850151821660648201526080850151608482015283821660a482015260c481018390529085169063db6198a39060e401600060405180830381600087803b15801561014b57600080fd5b505af115801561015f573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b390604401600060405180830381600087803b1580156101b057600080fd5b505af11580156101c4573d6000803e3d6000fd5b505050506101d661022b60201b60201c565b6102265760405162461bcd60e51b815260206004820152601960248201527f5361666545524332303a20617070726f7665206661696c656400000000000000604482015260640160405180910390fd5b505050565b6000803d8015610242576020811461024b57610257565b60019150610257565b60206000803e60005191505b501515919050565b805161026a81610353565b919050565b600080600083850360e081121561028557600080fd5b845161029081610353565b935060a0601f19820112156102a457600080fd5b5060405160a081016001600160401b03811182821017156102d557634e487b7160e01b600052604160045260246000fd5b6040526102e46020860161025f565b81526102f26040860161025f565b60208201526103036060860161025f565b60408201526103146080860161025f565b606082015260a08501516080820152915061033160c0850161025f565b90509250925092565b60006020828403121561034c57600080fd5b5051919050565b6001600160a01b038116811461036857600080fd5b5056fea26469706673582212209bda0a08c5039854e5c8aa47fdd0644c803677908a9856e79538a97941fdd19964736f6c63430008070033","v":"0x26","r":"0xec6f77f6b60e186d69b3cdc108d40a102280125d5139e3d8ffd08f23c58aefaf","s":"0x5cdbce7b655b5eb2e26e6d404e526f4d0f60960f96cdcbb83d6e8ea9fe4538a1","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1648546248174}} \ No newline at end of file +{"hash":"0xbba51d4832e6166a242b96e18b376dbc6822f44bc53ff6d9411d9226b9d78449","nonce":"0x1","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b506106c0806100206000396000f3fe608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e3660046101c5565b610045565b005b60005b8151811015610108576000801b8484848481518110610069576100696102da565b602002602001015160405161007d9061010e565b6001600160a01b03938416815282518416602080830191909152830151841660408083019190915280840151851660608084019190915284015185166080808401919091529093015160a0820152921660c083015251829181900360e001906000f59050801580156100f3573d6000803e3d6000fd5b50508080610100906102b1565b915050610048565b50505050565b61036c8061031f83390190565b600082601f83011261012c57600080fd5b8135602067ffffffffffffffff80831115610149576101496102f0565b8260051b604051601f19603f8301168101818110848211171561016e5761016e6102f0565b6040528481528381019250868401828801850189101561018d57600080fd5b600092505b858310156101b95780356101a581610306565b845292840192600192909201918401610192565b50979650505050505050565b600080600083850360e08112156101db57600080fd5b84356101e681610306565b935060a0601f19820112156101fa57600080fd5b50610203610288565b602085013561021181610306565b8152604085013561022181610306565b6020820152606085013561023481610306565b6040820152608085013561024781610306565b606082015260a08501356080820152915060c084013567ffffffffffffffff81111561027257600080fd5b61027e8682870161011b565b9150509250925092565b60405160a0810167ffffffffffffffff811182821017156102ab576102ab6102f0565b60405290565b60006000198214156102d357634e487b7160e01b600052601160045260246000fd5b5060010190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461031b57600080fd5b5056fe608060405234801561001057600080fd5b5060405161036c38038061036c83398101604081905261002f9161026f565b60608201516040516370a0823160e01b81523060048201526000916001600160a01b0316906370a082319060240160206040518083038186803b15801561007557600080fd5b505afa158015610089573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100ad919061033a565b90506100c88360600151858361016660201b6100091760201c565b6040805163db6198a360e01b815284516001600160a01b03908116600483015260208601518116602483015291850151821660448201526060850151821660648201526080850151608482015283821660a482015260c481018390529085169063db6198a39060e401600060405180830381600087803b15801561014b57600080fd5b505af115801561015f573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0383811660048301526024820183905284169063095ea7b390604401600060405180830381600087803b1580156101b057600080fd5b505af11580156101c4573d6000803e3d6000fd5b505050506101d661022b60201b60201c565b6102265760405162461bcd60e51b815260206004820152601960248201527f5361666545524332303a20617070726f7665206661696c656400000000000000604482015260640160405180910390fd5b505050565b6000803d8015610242576020811461024b57610257565b60019150610257565b60206000803e60005191505b501515919050565b805161026a81610353565b919050565b600080600083850360e081121561028557600080fd5b845161029081610353565b935060a0601f19820112156102a457600080fd5b5060405160a081016001600160401b03811182821017156102d557634e487b7160e01b600052604160045260246000fd5b6040526102e46020860161025f565b81526102f26040860161025f565b60208201526103036060860161025f565b60408201526103146080860161025f565b606082015260a08501516080820152915061033160c0850161025f565b90509250925092565b60006020828403121561034c57600080fd5b5051919050565b6001600160a01b038116811461036857600080fd5b5056fea26469706673582212209bda0a08c5039854e5c8aa47fdd0644c803677908a9856e79538a97941fdd19964736f6c63430008070033","v":"0x25","r":"0x4236cd83f6cf05199d1edfc8109bf577993cf0133ded3dadf908f78fd6647193","s":"0x655f5116cd2e2a25218bf5b567f33971eb8e73303b2cffaa76a5a89e857bbcfa","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1649426411361}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactions!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 b/scripts/ethereum/snapshot_contracts_1/!transactions!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 deleted file mode 100644 index 38bb80861..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xbd4830ec2b81f62bddb5f56766d14b61ffd92a14a1b89bfd9e729d2a13f5fc57 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!transactions!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 b/scripts/ethereum/snapshot_contracts_1/!transactions!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 deleted file mode 100644 index 92b435737..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968 +++ /dev/null @@ -1 +0,0 @@ -{"hash":"0xccc3dc16394f6e49334fbbb8160d3b0504699a8411cd050411fe494edb84d968","nonce":"0x6","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b50610a8f806100206000396000f3fe608060405234801561001057600080fd5b50600436106100625760003560e01c8063095ea7b31461006757806323b872dd1461009757806370a08231146100c7578063a2b0a1c7146100f7578063a9059cbb14610113578063dd62ed3e14610143575b600080fd5b610081600480360381019061007c919061081d565b610173565b60405161008e919061089a565b60405180910390f35b6100b160048036038101906100ac91906107ce565b6101c3565b6040516100be919061089a565b60405180910390f35b6100e160048036038101906100dc9190610769565b61045c565b6040516100ee91906108d5565b60405180910390f35b610111600480360381019061010c919061081d565b6104a4565b005b61012d6004803603810190610128919061081d565b6104eb565b60405161013a919061089a565b60405180910390f35b61015d60048036038101906101589190610792565b6106f5565b60405161016a91906108d5565b60405180910390f35b600081600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506001905092915050565b6000816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541015610246576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161023d906108b5565b60405180910390fd5b816000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546102909190610957565b6000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461031c9190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205411156103ec576000600160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b8273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161044991906108d5565b60405180910390a3600190509392505050565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505050565b6000816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054101561056e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610565906108b5565b60405180910390fd5b816000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546105b89190610957565b6000803373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546106449190610901565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516106e391906108d5565b60405180910390a36001905092915050565b6000600160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b60008135905061074e81610a2b565b92915050565b60008135905061076381610a42565b92915050565b60006020828403121561077b57600080fd5b60006107898482850161073f565b91505092915050565b600080604083850312156107a557600080fd5b60006107b38582860161073f565b92505060206107c48582860161073f565b9150509250929050565b6000806000606084860312156107e357600080fd5b60006107f18682870161073f565b93505060206108028682870161073f565b925050604061081386828701610754565b9150509250925092565b6000806040838503121561083057600080fd5b600061083e8582860161073f565b925050602061084f85828601610754565b9150509250929050565b6108628161099d565b82525050565b60006108756012836108f0565b915061088082610a02565b602082019050919050565b610894816109c9565b82525050565b60006020820190506108af6000830184610859565b92915050565b600060208201905081810360008301526108ce81610868565b9050919050565b60006020820190506108ea600083018461088b565b92915050565b600082825260208201905092915050565b600061090c826109c9565b9150610917836109c9565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561094c5761094b6109d3565b5b828201905092915050565b6000610962826109c9565b915061096d836109c9565b9250828210156109805761097f6109d3565b5b828203905092915050565b6000610996826109a9565b9050919050565b60008115159050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f494e53554646494349454e545f46554e44530000000000000000000000000000600082015250565b610a348161098b565b8114610a3f57600080fd5b50565b610a4b816109c9565b8114610a5657600080fd5b5056fea264697066735822122012d9e565a541ef14f604411fe60ee4679227706bb736ccd2d5aeb4962f73033e64736f6c63430008010033","v":"0x26","r":"0xfedccc2678a71aea5068e59c5d2bb1d4cf446deac241661faf7dd2b0c0227901","s":"0x7c137da31ddfca6673fe300896e6a662fee5b40cd3d06a8e6e940dbd9406889c","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1648546248174}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactions!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 b/scripts/ethereum/snapshot_contracts_1/!transactions!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 index d051e49c9..1db923bf8 100644 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 +++ b/scripts/ethereum/snapshot_contracts_1/!transactions!0xcf3dbfa532b367a583180e60a4a65a36dd03a5d62419fb891d4a97a737a42b01 @@ -1 +1 @@ -{"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 +{"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":1649426411361}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactions!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e b/scripts/ethereum/snapshot_contracts_1/!transactions!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8 similarity index 96% rename from scripts/ethereum/snapshot_contracts_1/!transactions!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e rename to scripts/ethereum/snapshot_contracts_1/!transactions!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8 index bc93788c3..759198bf6 100644 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e +++ b/scripts/ethereum/snapshot_contracts_1/!transactions!0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8 @@ -1 +1 @@ -{"hash":"0xc922501fe4c64cb5943182fcaa6ff6aec1cee7e51bcdff40531f916e7904b53e","nonce":"0x8","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b5061164d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610166578063b716d6fa14610179578063bc1ed74c14610199578063c1e69b66146101b9578063db6198a3146101d9578063f8d682ea146101ec57600080fd5b8063056036d4146100b957806331c31bba146100d557806343f183e9146100ea5780634f1c2c31146100fd578063553721c5146101285780638126e4d214610153575b600080fd5b6100c36203f48081565b60405190815260200160405180910390f35b6100e86100e3366004611303565b6101ff565b005b6100e86100f8366004611432565b610367565b6100c361010b3660046113ad565b600360209081526000928352604080842090915290825290205481565b6100c36101363660046113ad565b600260209081526000928352604080842090915290825290205481565b6100e861016136600461147a565b610577565b6100e86101743660046113d9565b61059d565b6100c3610187366004611394565b60046020526000908152604090205481565b6100c36101a7366004611394565b60016020526000908152604090205481565b6100c36101c7366004611394565b60006020819052908152604090205481565b6100e86101e73660046113f5565b61073d565b6100e86101fa3660046113d9565b6108ac565b806102425760405162461bcd60e51b815260206004820152600e60248201526d4e4f5f5749544844524157414c5360901b60448201526064015b60405180910390fd5b6000808383600081811061025857610258611601565b905060200281019061026a919061156a565b61027b9060808101906060016112e1565b905060005b8381101561033f573685858381811061029b5761029b611601565b90506020028101906102ad919061156a565b90506001600160a01b0383166102c960808301606084016112e1565b6001600160a01b0316146103155760405162461bcd60e51b815260206004820152601360248201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b6044820152606401610239565b61031f8882610a43565b610329908561158b565b9350508080610337906115ba565b915050610280565b506001600160a01b0386163314610354578594505b61035f818684610d99565b505050505050565b60008360405160200161037a91906114b6565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906103b257506000198114155b6103f75760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b60405165726573756d6560d01b6020820152602681018390526046810182905260009060660160408051601f1981840301815291905280516020918201209150610474908290610449908901896112e1565b6040805160608181019092529089906003908390839080828437600092019190915250610e54915050565b6104b55760405162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c45414445525f53494760701b6044820152606401610239565b6104f4816104c96040890160208a016112e1565b6040805160608181019092529088906003908390839080828437600092019190915250610e54915050565b6105375760405162461bcd60e51b8152602060048201526014602482015273494e56414c49445f464f4c4c4f5745525f53494760601b6044820152606401610239565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b61059a61058a60808301606084016112e1565b336105953385610a43565b610d99565b50565b60006105af60608301604084016112e1565b9050336001600160a01b038216146105f85760405162461bcd60e51b815260206004820152600c60248201526b2727aa2fa3aaa0a92224a0a760a11b6044820152606401610239565b60008260405160200161060b91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061064357506000198114155b6106885760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b8042116106ce5760405162461bcd60e51b81526020600482015260146024820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b6044820152606401610239565b600082815260016020908152604080832080549084905591839052909120600019905561070b61070460808701606088016112e1565b8583610d99565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60008360405160200161075091906114b6565b604051602081830303815290604052805190602001209050600082116107a55760405162461bcd60e51b815260206004820152600a6024820152691393d7d1115413d4d25560b21b6044820152606401610239565b60008181526020819052604090205460001914156107f65760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b6000818152600160205260408120805484929061081490849061158b565b909155505060008181526003602090815260408083206001600160a01b03871684529091528120805484929061084b90849061158b565b9091555061086c905061086460808601606087016112e1565b333085610e7c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e49131778360405161089e91815260200190565b60405180910390a250505050565b6108b960208201826112e1565b6001600160a01b0316336001600160a01b031614806108f857506108e360408201602083016112e1565b6001600160a01b0316336001600160a01b0316145b80610923575061090e60608201604083016112e1565b6001600160a01b0316336001600160a01b0316145b6109605760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610239565b60008160405160200161097391906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156109e75760405162461bcd60e51b815260206004820152601a60248201527f4348414e4e454c5f414c52454144595f4348414c4c454e4745440000000000006044820152606401610239565b60006109f66203f4804261158b565b60008381526020818152604091829020839055905182815291925083917fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e910160405180910390a2505050565b60008082600001604051602001610a5a91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150600019811415610ac45760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b8015610ae057600082815260046020526040902060c085013590555b6040805130602082015290810183905260c0850135606082015260009060800160408051601f1981840301815291905280516020918201209150610b5a908290610b2c908801886112e1565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610e54915050565b610b935760405162461bcd60e51b815260206004820152600a6024820152694c45414445525f53494760b01b6044820152606401610239565b610bd681610ba760408801602089016112e1565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610e54915050565b610c115760405162461bcd60e51b815260206004820152600c60248201526b464f4c4c4f5745525f53494760a01b6044820152606401610239565b604080516001600160a01b03881660208083019190915260a08801358284015282518083038401815260609092019092528051910120610c9481610c596101a0890189611519565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610f40565b610cd95760405162461bcd60e51b8152602060048201526016602482015275109053105390d1549311505197d393d517d193d5539160521b6044820152606401610239565b60008481526002602090815260408083206001600160a01b038b168452909152812054610d0a9060a08901356115a3565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610d529084906115a3565b909155505060405181815285907fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec39060200160405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401600060405180830381600087803b158015610de357600080fd5b505af1158015610df7573d6000803e3d6000fd5b50505050610e03611030565b610e4f5760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c65640000000000006044820152606401610239565b505050565b6000826001600160a01b0316610e6a8584611064565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd90606401600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b50505050610eee611030565b610f3a5760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c656400006044820152606401610239565b50505050565b81516000908490825b8181101561102457858181518110610f6357610f63611601565b6020026020010151831015610fc45782868281518110610f8557610f85611601565b6020026020010151604051602001610fa7929190918252602082015260400190565b604051602081830303815290604052805190602001209250611012565b858181518110610fd657610fd6611601565b602002602001015183604051602001610ff9929190918252602082015260400190565b6040516020818303038152906040528051906020012092505b8061101c816115ba565b915050610f49565b50509091149392505050565b6000803d801561104757602081146110505761105c565b6001915061105c565b60206000803e60005191505b501515919050565b80516000908190811a600481111561107e5761107e6115eb565b90506000816004811115611094576110946115eb565b14156110a4576000915050610d93565b825160011a60028260048111156110bd576110bd6115eb565b1415611114576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101869052605c015b60405160208183030381529060405280519060200120945061122d565b6003826004811115611128576111286115eb565b1415611166576040517f19457468657265756d205369676e6564204d6573736167653a0a2000000000006020820152603b8101869052605b016110f7565b600482600481111561117a5761117a6115eb565b141561122d57604080517f19457468657265756d205369676e6564204d6573736167653a0a31303842792060208201527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f77918101919091527f6c65646765207369676e696e6720616e204164457820626964207769746820746060820152683432903430b9b41d0560b91b60808201526089810186905260a9016040516020818303038152906040528051906020012094505b60208085015160408087015181516000815293840180835289905260ff8516918401919091526060830191909152608082015260019060a0016020604051602081039080840390855afa158015611288573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b03811681146112b357600080fd5b919050565b8060608101831015610d9357600080fd5b600060a082840312156112db57600080fd5b50919050565b6000602082840312156112f357600080fd5b6112fc8261129c565b9392505050565b6000806000806060858703121561131957600080fd5b6113228561129c565b93506113306020860161129c565b9250604085013567ffffffffffffffff8082111561134d57600080fd5b818701915087601f83011261136157600080fd5b81358181111561137057600080fd5b8860208260051b850101111561138557600080fd5b95989497505060200194505050565b6000602082840312156113a657600080fd5b5035919050565b600080604083850312156113c057600080fd5b823591506113d06020840161129c565b90509250929050565b600060a082840312156113eb57600080fd5b6112fc83836112c9565b600080600060e0848603121561140a57600080fd5b61141485856112c9565b925061142260a0850161129c565b915060c084013590509250925092565b6000806000610160848603121561144857600080fd5b61145285856112c9565b92506114618560a086016112b8565b91506114718561010086016112b8565b90509250925092565b60006020828403121561148c57600080fd5b813567ffffffffffffffff8111156114a357600080fd5b82016101c081850312156112fc57600080fd5b60a081016001600160a01b03806114cc8561129c565b168352806114dc6020860161129c565b166020840152806114ef6040860161129c565b166040840152806115026060860161129c565b166060840152506080830135608083015292915050565b6000808335601e1984360301811261153057600080fd5b83018035915067ffffffffffffffff82111561154b57600080fd5b6020019150600581901b360382131561156357600080fd5b9250929050565b600082356101be1983360301811261158157600080fd5b9190910192915050565b6000821982111561159e5761159e6115d5565b500190565b6000828210156115b5576115b56115d5565b500390565b60006000198214156115ce576115ce6115d5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220dcb9cf70a226bc182c893d4ce587736ba7aee71eed1a42897fd24e55509f7eff64736f6c63430008070033","v":"0x26","r":"0x5eaa0334d39823c7fbb3bf0cd5001cb62c73b1fdd227c6f54933f22ab040a624","s":"0x28271c701b425569e9fab861471171e0ee65f7157d7189b7ef5825ff9a86798e","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1648546248174}} \ No newline at end of file +{"hash":"0xde4d87cf482fccb4381767a16cb32fab06369083ad5a6d08faa953d0b532cce8","nonce":"0x2","from":"0x80690751969b234697e9059e04ed72195c3507fa","to":null,"value":"0x0","gas":"0x6691b7","gasPrice":"0x1","data":"608060405234801561001057600080fd5b5061164d806100206000396000f3fe608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610166578063b716d6fa14610179578063bc1ed74c14610199578063c1e69b66146101b9578063db6198a3146101d9578063f8d682ea146101ec57600080fd5b8063056036d4146100b957806331c31bba146100d557806343f183e9146100ea5780634f1c2c31146100fd578063553721c5146101285780638126e4d214610153575b600080fd5b6100c36203f48081565b60405190815260200160405180910390f35b6100e86100e3366004611303565b6101ff565b005b6100e86100f8366004611432565b610367565b6100c361010b3660046113ad565b600360209081526000928352604080842090915290825290205481565b6100c36101363660046113ad565b600260209081526000928352604080842090915290825290205481565b6100e861016136600461147a565b610577565b6100e86101743660046113d9565b61059d565b6100c3610187366004611394565b60046020526000908152604090205481565b6100c36101a7366004611394565b60016020526000908152604090205481565b6100c36101c7366004611394565b60006020819052908152604090205481565b6100e86101e73660046113f5565b61073d565b6100e86101fa3660046113d9565b6108ac565b806102425760405162461bcd60e51b815260206004820152600e60248201526d4e4f5f5749544844524157414c5360901b60448201526064015b60405180910390fd5b6000808383600081811061025857610258611601565b905060200281019061026a919061156a565b61027b9060808101906060016112e1565b905060005b8381101561033f573685858381811061029b5761029b611601565b90506020028101906102ad919061156a565b90506001600160a01b0383166102c960808301606084016112e1565b6001600160a01b0316146103155760405162461bcd60e51b815260206004820152601360248201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b6044820152606401610239565b61031f8882610a43565b610329908561158b565b9350508080610337906115ba565b915050610280565b506001600160a01b0386163314610354578594505b61035f818684610d99565b505050505050565b60008360405160200161037a91906114b6565b60408051601f19818403018152918152815160209283012060008181529283905291205490915080158015906103b257506000198114155b6103f75760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b60405165726573756d6560d01b6020820152602681018390526046810182905260009060660160408051601f1981840301815291905280516020918201209150610474908290610449908901896112e1565b6040805160608181019092529089906003908390839080828437600092019190915250610e54915050565b6104b55760405162461bcd60e51b8152602060048201526012602482015271494e56414c49445f4c45414445525f53494760701b6044820152606401610239565b6104f4816104c96040890160208a016112e1565b6040805160608181019092529088906003908390839080828437600092019190915250610e54915050565b6105375760405162461bcd60e51b8152602060048201526014602482015273494e56414c49445f464f4c4c4f5745525f53494760601b6044820152606401610239565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b61059a61058a60808301606084016112e1565b336105953385610a43565b610d99565b50565b60006105af60608301604084016112e1565b9050336001600160a01b038216146105f85760405162461bcd60e51b815260206004820152600c60248201526b2727aa2fa3aaa0a92224a0a760a11b6044820152606401610239565b60008260405160200161060b91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061064357506000198114155b6106885760405162461bcd60e51b815260206004820152601660248201527510d2105393915317d393d517d0d2105313115391d15160521b6044820152606401610239565b8042116106ce5760405162461bcd60e51b81526020600482015260146024820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b6044820152606401610239565b600082815260016020908152604080832080549084905591839052909120600019905561070b61070460808701606088016112e1565b8583610d99565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60008360405160200161075091906114b6565b604051602081830303815290604052805190602001209050600082116107a55760405162461bcd60e51b815260206004820152600a6024820152691393d7d1115413d4d25560b21b6044820152606401610239565b60008181526020819052604090205460001914156107f65760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b6000818152600160205260408120805484929061081490849061158b565b909155505060008181526003602090815260408083206001600160a01b03871684529091528120805484929061084b90849061158b565b9091555061086c905061086460808601606087016112e1565b333085610e7c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e49131778360405161089e91815260200190565b60405180910390a250505050565b6108b960208201826112e1565b6001600160a01b0316336001600160a01b031614806108f857506108e360408201602083016112e1565b6001600160a01b0316336001600160a01b0316145b80610923575061090e60608201604083016112e1565b6001600160a01b0316336001600160a01b0316145b6109605760405162461bcd60e51b815260206004820152600e60248201526d1393d517d055551213d49256915160921b6044820152606401610239565b60008160405160200161097391906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150156109e75760405162461bcd60e51b815260206004820152601a60248201527f4348414e4e454c5f414c52454144595f4348414c4c454e4745440000000000006044820152606401610239565b60006109f66203f4804261158b565b60008381526020818152604091829020839055905182815291925083917fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e910160405180910390a2505050565b60008082600001604051602001610a5a91906114b6565b60408051601f198184030181529181528151602092830120600081815292839052912054909150600019811415610ac45760405162461bcd60e51b815260206004820152600e60248201526d10d2105393915317d0d313d4d15160921b6044820152606401610239565b8015610ae057600082815260046020526040902060c085013590555b6040805130602082015290810183905260c0850135606082015260009060800160408051601f1981840301815291905280516020918201209150610b5a908290610b2c908801886112e1565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610e54915050565b610b935760405162461bcd60e51b815260206004820152600a6024820152694c45414445525f53494760b01b6044820152606401610239565b610bd681610ba760408801602089016112e1565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610e54915050565b610c115760405162461bcd60e51b815260206004820152600c60248201526b464f4c4c4f5745525f53494760a01b6044820152606401610239565b604080516001600160a01b03881660208083019190915260a08801358284015282518083038401815260609092019092528051910120610c9481610c596101a0890189611519565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610f40565b610cd95760405162461bcd60e51b8152602060048201526016602482015275109053105390d1549311505197d393d517d193d5539160521b6044820152606401610239565b60008481526002602090815260408083206001600160a01b038b168452909152812054610d0a9060a08901356115a3565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610d529084906115a3565b909155505060405181815285907fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec39060200160405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0383811660048301526024820183905284169063a9059cbb90604401600060405180830381600087803b158015610de357600080fd5b505af1158015610df7573d6000803e3d6000fd5b50505050610e03611030565b610e4f5760405162461bcd60e51b815260206004820152601a60248201527f5361666545524332303a207472616e73666572206661696c65640000000000006044820152606401610239565b505050565b6000826001600160a01b0316610e6a8584611064565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b0384811660048301528381166024830152604482018390528516906323b872dd90606401600060405180830381600087803b158015610ece57600080fd5b505af1158015610ee2573d6000803e3d6000fd5b50505050610eee611030565b610f3a5760405162461bcd60e51b815260206004820152601e60248201527f5361666545524332303a207472616e7366657246726f6d206661696c656400006044820152606401610239565b50505050565b81516000908490825b8181101561102457858181518110610f6357610f63611601565b6020026020010151831015610fc45782868281518110610f8557610f85611601565b6020026020010151604051602001610fa7929190918252602082015260400190565b604051602081830303815290604052805190602001209250611012565b858181518110610fd657610fd6611601565b602002602001015183604051602001610ff9929190918252602082015260400190565b6040516020818303038152906040528051906020012092505b8061101c816115ba565b915050610f49565b50509091149392505050565b6000803d801561104757602081146110505761105c565b6001915061105c565b60206000803e60005191505b501515919050565b80516000908190811a600481111561107e5761107e6115eb565b90506000816004811115611094576110946115eb565b14156110a4576000915050610d93565b825160011a60028260048111156110bd576110bd6115eb565b1415611114576040517f19457468657265756d205369676e6564204d6573736167653a0a3332000000006020820152603c8101869052605c015b60405160208183030381529060405280519060200120945061122d565b6003826004811115611128576111286115eb565b1415611166576040517f19457468657265756d205369676e6564204d6573736167653a0a2000000000006020820152603b8101869052605b016110f7565b600482600481111561117a5761117a6115eb565b141561122d57604080517f19457468657265756d205369676e6564204d6573736167653a0a31303842792060208201527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f77918101919091527f6c65646765207369676e696e6720616e204164457820626964207769746820746060820152683432903430b9b41d0560b91b60808201526089810186905260a9016040516020818303038152906040528051906020012094505b60208085015160408087015181516000815293840180835289905260ff8516918401919091526060830191909152608082015260019060a0016020604051602081039080840390855afa158015611288573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b03811681146112b357600080fd5b919050565b8060608101831015610d9357600080fd5b600060a082840312156112db57600080fd5b50919050565b6000602082840312156112f357600080fd5b6112fc8261129c565b9392505050565b6000806000806060858703121561131957600080fd5b6113228561129c565b93506113306020860161129c565b9250604085013567ffffffffffffffff8082111561134d57600080fd5b818701915087601f83011261136157600080fd5b81358181111561137057600080fd5b8860208260051b850101111561138557600080fd5b95989497505060200194505050565b6000602082840312156113a657600080fd5b5035919050565b600080604083850312156113c057600080fd5b823591506113d06020840161129c565b90509250929050565b600060a082840312156113eb57600080fd5b6112fc83836112c9565b600080600060e0848603121561140a57600080fd5b61141485856112c9565b925061142260a0850161129c565b915060c084013590509250925092565b6000806000610160848603121561144857600080fd5b61145285856112c9565b92506114618560a086016112b8565b91506114718561010086016112b8565b90509250925092565b60006020828403121561148c57600080fd5b813567ffffffffffffffff8111156114a357600080fd5b82016101c081850312156112fc57600080fd5b60a081016001600160a01b03806114cc8561129c565b168352806114dc6020860161129c565b166020840152806114ef6040860161129c565b166040840152806115026060860161129c565b166060840152506080830135608083015292915050565b6000808335601e1984360301811261153057600080fd5b83018035915067ffffffffffffffff82111561154b57600080fd5b6020019150600581901b360382131561156357600080fd5b9250929050565b600082356101be1983360301811261158157600080fd5b9190910192915050565b6000821982111561159e5761159e6115d5565b500190565b6000828210156115b5576115b56115d5565b500390565b60006000198214156115ce576115ce6115d5565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052602160045260246000fd5b634e487b7160e01b600052603260045260246000fdfea2646970667358221220dcb9cf70a226bc182c893d4ce587736ba7aee71eed1a42897fd24e55509f7eff64736f6c63430008070033","v":"0x26","r":"0xaba384579dc75cc4d8eefc30807bb71166f1cf18f5e23abc6f77230e8ce78353","s":"0x1bdfcb09452cafd36983b47cbd408cb8d4ebc04fb8718bf9ce8d962ca67b2faa","_type":1,"_options":{"hardfork":"muirGlacier","chainId":1,"networkId":1649426411361}} \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!transactions!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 b/scripts/ethereum/snapshot_contracts_1/!transactions!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 deleted file mode 100644 index 98c98c5c0..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xf6218f0aae01531cf97be8b4b1c00f30defbf8b93e79b56ecb1d083494b52480 +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!transactions!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc b/scripts/ethereum/snapshot_contracts_1/!transactions!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc deleted file mode 100644 index aee8c84ae..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!transactions!0xf8c80b43057986dba68c383e1d1a626dd533ff42766896b9f77d8eb6a76892cc +++ /dev/null @@ -1 +0,0 @@ -{"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_1/!trie_db!0x20363adf6116917c20332a8cba35879000dfaaf20fda076a7ba7d4f8d617e7cf b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x01554e0850e1225b7d19e7664e8d43445906ed79e9af19a3b5170cf130dc1f45 similarity index 79% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x20363adf6116917c20332a8cba35879000dfaaf20fda076a7ba7d4f8d617e7cf rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x01554e0850e1225b7d19e7664e8d43445906ed79e9af19a3b5170cf130dc1f45 index e0a25a7c8..dd431b7fe 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x20363adf6116917c20332a8cba35879000dfaaf20fda076a7ba7d4f8d617e7cf +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x01554e0850e1225b7d19e7664e8d43445906ed79e9af19a3b5170cf130dc1f45 @@ -1 +1 @@ -"0xf90131a00d0ef40015cd8fce7f1f54f5fd79ba23611f4ed6a1d307e1f573edc99fb5cc34a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file +"0xf90131a0b027658cd9f34cc56f19bf6923d383888dfb189a164029246a93dd4947219d4fa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 deleted file mode 100644 index 9b98c259b..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c52 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0c1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f68080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x03290b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x03290b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b deleted file mode 100644 index f7ce90f25..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x03290b2d62ca0662f1b5fbd2d601243965d4626a2283766bbdae93588f30ba7b +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2ca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c237280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x0593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x0593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e deleted file mode 100644 index 8c0ff513d..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x0593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86e +++ /dev/null @@ -1 +0,0 @@ -"0xf851808080808080a059c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d06380808080a06e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d48080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x076eec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1f b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x076eec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1f deleted file mode 100644 index 4d2a060d5..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x076eec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1f +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0c33e8c016adce35292dea603caa238e3fa8b382466484bea96ad0df02467f83d80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x07b0931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x07b0931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa new file mode 100644 index 000000000..d742777e8 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x07b0931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa @@ -0,0 +1 @@ +"0xf851a0096b0a0884460124d82aa9ea864a058d435e28ced49e512eef68d835bc9e2f018080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce112 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x096b0a0884460124d82aa9ea864a058d435e28ced49e512eef68d835bc9e2f01 similarity index 70% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0xc17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce112 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x096b0a0884460124d82aa9ea864a058d435e28ced49e512eef68d835bc9e2f01 index 743b4b2c4..5ed01b377 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce112 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x096b0a0884460124d82aa9ea864a058d435e28ced49e512eef68d835bc9e2f01 @@ -1 +1 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850028c1d14a0219e54822427ef9316a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850028c1d14a0219e54822427efccdda056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x20526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1190861ff2dc2461c88daef7d111a378a4c8fa872b4a5f43862b947717f01756 similarity index 79% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x20526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x1190861ff2dc2461c88daef7d111a378a4c8fa872b4a5f43862b947717f01756 index 3f3f3ba14..022430d4e 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x20526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1190861ff2dc2461c88daef7d111a378a4c8fa872b4a5f43862b947717f01756 @@ -1 +1 @@ -"0xf90131a0940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file +"0xf90131a0f34bfca94042e4a2698fe663f99e6a795f59a7f6e6d3501212f8853581e52ab0a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x18cb97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab71 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x18cb97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab71 deleted file mode 100644 index 15e053a05..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x18cb97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab71 +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a09c9040762aec5b87121e4a8eb55b1671d43c6327022172365849bf3ab24765ee" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x18e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x18e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7 deleted file mode 100644 index 2d7c61e40..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x18e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7 +++ /dev/null @@ -1 +0,0 @@ -"0xf871a0fd1fafdc17303649183cf53c21e8d7acf4a093d34415cc57ad395c796197e74e8080a0ece1ea40f2c7ac5b9595f8d6929729201df3eed68821668d5d616d886d3f4dbe80808080a0681f3640fb52291d9548892fb163bbd0e36bc8f20a13610b2977d5fe34ed01e68080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1936ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1936ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 deleted file mode 100644 index 924c4dc4d..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1936ac506d065a41d5f9760264e27f481bd22949e51930366c0512bb720b02b8 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a07e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0cd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf135380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1bd138395965ae1808b14c362d8cfdf165fea7c247273d13c181f09325a26b25 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1bd138395965ae1808b14c362d8cfdf165fea7c247273d13c181f09325a26b25 deleted file mode 100644 index e2f97857f..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x1bd138395965ae1808b14c362d8cfdf165fea7c247273d13c181f09325a26b25 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a08a32f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a0da6cceb1c9415ccbc08056ca4e1b7dbb566aa29413518beccb4107f30d27629280a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x25aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x25aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec deleted file mode 100644 index 1a8604686..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x25aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1ec +++ /dev/null @@ -1 +0,0 @@ -"0xf851a018cb97dcb87e9ac5638c483f04446c6bb840ed97cd6e5143417f0e6c85f1ab7180808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x0d0ef40015cd8fce7f1f54f5fd79ba23611f4ed6a1d307e1f573edc99fb5cc34 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2726efa594c79b71cf696d01d3031f0e1ef30be408c33cc2fd3133a6d22c3b8d similarity index 62% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x0d0ef40015cd8fce7f1f54f5fd79ba23611f4ed6a1d307e1f573edc99fb5cc34 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x2726efa594c79b71cf696d01d3031f0e1ef30be408c33cc2fd3133a6d22c3b8d index 6a2697c81..a1bedd3c1 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x0d0ef40015cd8fce7f1f54f5fd79ba23611f4ed6a1d307e1f573edc99fb5cc34 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2726efa594c79b71cf696d01d3031f0e1ef30be408c33cc2fd3133a6d22c3b8d @@ -1 +1 @@ -"0xf85120b84ef84c8088f9ccd8a1c575efd6a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf85120b84ef84c80885345ea7cbc9da9f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2863659d8345c4effc49c817579cc4c3f27a24a561df382e216ef959118bd83d b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2863659d8345c4effc49c817579cc4c3f27a24a561df382e216ef959118bd83d new file mode 100644 index 000000000..9be898c77 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2863659d8345c4effc49c817579cc4c3f27a24a561df382e216ef959118bd83d @@ -0,0 +1 @@ +"0xf90191a0b862b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa0d869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a06ca087ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x34cc33d4725479d571a9ed60422264d02dea0087ea91797cb4f7c85a9c72281c b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x28d58c80da089d5aaef91e16d168d7882dbfe0bdcd3c341fe6d9fb3f5fac45c1 similarity index 62% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x34cc33d4725479d571a9ed60422264d02dea0087ea91797cb4f7c85a9c72281c rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x28d58c80da089d5aaef91e16d168d7882dbfe0bdcd3c341fe6d9fb3f5fac45c1 index 99026472b..1c961118f 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x34cc33d4725479d571a9ed60422264d02dea0087ea91797cb4f7c85a9c72281c +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x28d58c80da089d5aaef91e16d168d7882dbfe0bdcd3c341fe6d9fb3f5fac45c1 @@ -1 +1 @@ -"0xf85120b84ef84c8088de0b6b3a769a5107a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf85120b84ef84c808853444835ec7bd1f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x29a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x29a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e deleted file mode 100644 index e7a6ad18d..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x29a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383e +++ /dev/null @@ -1 +0,0 @@ -"0xf85d9436cbc2eaae377f6ac4b73a982cd1125ef4cec96fb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x76ee24db42a082250df1b9213f20514e600b951ff72eba2a99ce13d3431cee62 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x30d405541074bf453cebbb57ba7c31ad73323e016870a9f50a221e8409536445 similarity index 81% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x76ee24db42a082250df1b9213f20514e600b951ff72eba2a99ce13d3431cee62 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x30d405541074bf453cebbb57ba7c31ad73323e016870a9f50a221e8409536445 index 7a6a0e3ce..60eae25a3 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x76ee24db42a082250df1b9213f20514e600b951ff72eba2a99ce13d3431cee62 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x30d405541074bf453cebbb57ba7c31ad73323e016870a9f50a221e8409536445 @@ -1 +1 @@ -"0xf90151a048b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0bed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file +"0xf90151a0397d32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a808080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0bed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 deleted file mode 100644 index fd3079d44..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x311742346b30ea3444ea518101561bdb6a1dc5af0aa243cd72e2d9e71dd55584 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a085136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89aca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d80a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x95d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f3803 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x37ba4abcb8ff41b07f81811150bae1092763276e1bb41f2bd50afba01d1e236f similarity index 70% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x95d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f3803 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x37ba4abcb8ff41b07f81811150bae1092763276e1bb41f2bd50afba01d1e236f index bda6a4d77..5cbe29201 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x95d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f3803 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x37ba4abcb8ff41b07f81811150bae1092763276e1bb41f2bd50afba01d1e236f @@ -1 +1 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850048c1d14a0219e54822427d13e5ba056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850048c1d14a0219e52dfdd57ba560ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 deleted file mode 100644 index 666829dcf..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da0 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0c17f5dd17630207069a20859a40dadb9bd084bdbaadc973dc2d42f948fcce1128080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x397d32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x397d32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0 new file mode 100644 index 000000000..070dbac89 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x397d32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0 @@ -0,0 +1 @@ +"0xf851a0f1daf331e5087cbb8c50fd9046e32fc7a0de95c46ffe5f945200bd81f1eaf18c80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x399dc4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x399dc4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 deleted file mode 100644 index 89d15d04d..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x399dc4e778a6882f4073c10a58dd5c2614598582a6bfcfa64818fb8b35ee4200 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a085136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89aca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3ac8bc5035fcffefa81f74cb90aacba43d56806484b4839d09166a65191629d4 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3ac8bc5035fcffefa81f74cb90aacba43d56806484b4839d09166a65191629d4 new file mode 100644 index 000000000..889c68bef --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3ac8bc5035fcffefa81f74cb90aacba43d56806484b4839d09166a65191629d4 @@ -0,0 +1 @@ +"0xf90171a0b862b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a007b0931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 deleted file mode 100644 index 342ac708a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c2372 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a05242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 deleted file mode 100644 index 46048f2c1..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41 +++ /dev/null @@ -1 +0,0 @@ -"0xf85d9420c27d46a458e2e49dabfef45ca74dedbac3dd06b846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x46b8cee9354cd00939efaede58cb0059d05dda05cefb78704ddd19d2adbe7840 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x46b8cee9354cd00939efaede58cb0059d05dda05cefb78704ddd19d2adbe7840 new file mode 100644 index 000000000..dce264442 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x46b8cee9354cd00939efaede58cb0059d05dda05cefb78704ddd19d2adbe7840 @@ -0,0 +1 @@ +"0xf90191a0b862b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa0d869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a007b0931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x482d918a759d6b6b29f52a97fc24ee8534da66780f9de97d5459c404729d33e7 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x482d918a759d6b6b29f52a97fc24ee8534da66780f9de97d5459c404729d33e7 new file mode 100644 index 000000000..0c9b19e1c --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x482d918a759d6b6b29f52a97fc24ee8534da66780f9de97d5459c404729d33e7 @@ -0,0 +1 @@ +"0xf851a037ba4abcb8ff41b07f81811150bae1092763276e1bb41f2bd50afba01d1e236f8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x48b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x48b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f deleted file mode 100644 index a1b60a92b..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x48b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522f +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0e147ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 deleted file mode 100644 index 8d73c897e..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d70047927 +++ /dev/null @@ -1 +0,0 @@ -"0xf8518080808080808080808080a03fb2b435f89b71a96996fdd0ea94c29a49d5f2ea94626d98326c843283197b41a0ba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa3980808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 deleted file mode 100644 index 90b152941..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4d0dbb693c1dab0be43ac8c24adf49c08c04270799c65b2a88aa146cb13fc8e1 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a025aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1eca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa029a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c237280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c deleted file mode 100644 index d75737933..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x4e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c +++ /dev/null @@ -1 +0,0 @@ -"0xf8699420d358a3194d737880b3efd94adccd246af9f535b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x50542cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x50542cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 deleted file mode 100644 index 66b8e3337..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x50542cba58488f95afff93a5c2a3769fc2a82be1027810f9d122da0ee2ee2eb9 +++ /dev/null @@ -1 +0,0 @@ -"0xf90171a025aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1eca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x50b0418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x50b0418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef deleted file mode 100644 index 2d00a5754..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x50b0418fe08043e26c9948cbcf640e067839656a02e549df0b5ec960b5d217ef +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a025aededf4aa1383bc285c808c3e1995093aae90ec1870316ad45bf1a97a6c1eca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa029a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x51e404a08818aad3b9d3076be0b6f45043e4e0e7cf3128fdee8a460cbef42f65 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x51e404a08818aad3b9d3076be0b6f45043e4e0e7cf3128fdee8a460cbef42f65 deleted file mode 100644 index 9367211cd..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x51e404a08818aad3b9d3076be0b6f45043e4e0e7cf3128fdee8a460cbef42f65 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a07d6e10d2ee15761d7cba58352120142a9d3cfa5451581b800f5d3bcf659c82ff8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d613 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c0 similarity index 65% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x7acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d613 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x5380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c0 index 6d681a098..3a0a83757 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d613 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c0 @@ -1 +1 @@ -"0xf85d943550a85877002f79db46b01672b5f86f1037cb7cb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a09559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36" \ No newline at end of file +"0xf85d943550a85877002f79db46b01672b5f86f1037cb7cb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bffd0f5806344c4f02908a0f870c6091ec45e1a4ec159e06cbdb09ccea9736ed" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x53d6e71e31a09c7eae4d15dfead6370ed7772ff6a4bea58558cc6f9aec9bc618 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x53d6e71e31a09c7eae4d15dfead6370ed7772ff6a4bea58558cc6f9aec9bc618 deleted file mode 100644 index f1dd4f61f..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x53d6e71e31a09c7eae4d15dfead6370ed7772ff6a4bea58558cc6f9aec9bc618 +++ /dev/null @@ -1 +0,0 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850088c1d14a0219e54822427a5aef9a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x589930a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x589930a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 deleted file mode 100644 index 48e5f721d..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x589930a4de2a36764bef81805df782d31058c0463504500c48c6b18f75df9271 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a085136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89aca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c5280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x59599201f8455206b263879885020aaac8dc6744f6cebe6b0b23a4fd20520c05 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x59599201f8455206b263879885020aaac8dc6744f6cebe6b0b23a4fd20520c05 new file mode 100644 index 000000000..26e4671ff --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x59599201f8455206b263879885020aaac8dc6744f6cebe6b0b23a4fd20520c05 @@ -0,0 +1 @@ +"0xf59310000000000000000000000000000000000000a0cded6842c1f531a0e8a2af309785e0751898831fc589591dedc418678c6b30f9" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x59c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x59c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 deleted file mode 100644 index fef1a4267..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x59c432edf210de32b29a2202edcfdb8c2f9f1db00596abfd5783e5dece58d063 +++ /dev/null @@ -1 +0,0 @@ -"0xf85d9420cbc2eaae377f6ac4b73a982cd1125ef4cec96fb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5ce31554dc5ed2775df66d7fc5cee58ae844274155d61b9ac2da2498c78947b8 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5ce31554dc5ed2775df66d7fc5cee58ae844274155d61b9ac2da2498c78947b8 deleted file mode 100644 index 3b2e98ce0..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5ce31554dc5ed2775df66d7fc5cee58ae844274155d61b9ac2da2498c78947b8 +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a06a55b6d3a3fdb1233bb5ceb5522aa667230a5fb31040df20fbe56aa613dd43e7" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f deleted file mode 100644 index 28e6ee37e..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a0af9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x63c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x63c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65 deleted file mode 100644 index 7630dccba..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x63c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65 +++ /dev/null @@ -1 +0,0 @@ -"0xf871a0ea28dd9daa326ca6fb6597ca261fdef5a94dc13c0da20e8eac2e1831037b76c08080808080808080a04e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c808080a071868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d deleted file mode 100644 index 2d4fdbb8a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6ca087ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6ca087ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e new file mode 100644 index 000000000..123e2c57e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6ca087ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e @@ -0,0 +1 @@ +"0xf851a0f2d575262e45391e075f02c323155d245e0e21de99ac4db8c0fcf61c213609b78080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 deleted file mode 100644 index ac01cfa35..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6e2df5ac774e4139b7c407d733b3d75a7cda4c2919884b88d9ca2bba342a17d4 +++ /dev/null @@ -1 +0,0 @@ -"0xf85d9420caf6968aec8a3b5126fbfab5fd419da6e8ad8eb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a07dcd1b9d98f5ae1e90577b771860eb7a3efe1228557238cf41b21b9760b85917" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6f15b8bc2ba0d66b7c6232755d71fa56d9ce1163b2c7aee385f27692c1d099dd b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6f15b8bc2ba0d66b7c6232755d71fa56d9ce1163b2c7aee385f27692c1d099dd deleted file mode 100644 index a90daec91..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6f15b8bc2ba0d66b7c6232755d71fa56d9ce1163b2c7aee385f27692c1d099dd +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0f14a9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0eaf9a3e2b763bb79ea266bfa08ee316b9e77a2a330abd3e5337f96248bd5fe40a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a051e404a08818aad3b9d3076be0b6f45043e4e0e7cf3128fdee8a460cbef42f6580a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a018e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a deleted file mode 100644 index 4bbd6f93c..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a02d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x71868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x71868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 deleted file mode 100644 index 895ac7389..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x71868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34 +++ /dev/null @@ -1 +0,0 @@ -"0xf85d9420d57c0324284102a757153e18f2cb1acdb7d2bdb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a09559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e deleted file mode 100644 index b5a0aa794..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x727ccc01162c8d586d4ee36b99fedc31b36b81b4df167a24faedf7140b4bca8e +++ /dev/null @@ -1 +0,0 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850068c1d14a0219e54822427b5e21ca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d6e10d2ee15761d7cba58352120142a9d3cfa5451581b800f5d3bcf659c82ff b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d6e10d2ee15761d7cba58352120142a9d3cfa5451581b800f5d3bcf659c82ff deleted file mode 100644 index 8dc1dd736..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d6e10d2ee15761d7cba58352120142a9d3cfa5451581b800f5d3bcf659c82ff +++ /dev/null @@ -1 +0,0 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850098c1d14a0219e5482242792102aa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d7d31db064e384be4a4d0a2c21fa30a6d003c353c59a015b1ea99ddcc76ac44 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d7d31db064e384be4a4d0a2c21fa30a6d003c353c59a015b1ea99ddcc76ac44 new file mode 100644 index 000000000..4a252b90e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7d7d31db064e384be4a4d0a2c21fa30a6d003c353c59a015b1ea99ddcc76ac44 @@ -0,0 +1 @@ +"0xf90191a0e253d4b7d7ef57ba342532091d1c93254ea0b3b9376f95f4cd9cf3a86803a7eba0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa0d869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a06ca087ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 deleted file mode 100644 index 1ebd32fcc..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a05f8cc7680572f6fef4fb1fd09d2791b3a6d2e78e91352791a071c33e7498a28f80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de deleted file mode 100644 index a8dd43078..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x7f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29de +++ /dev/null @@ -1 +0,0 @@ -"0xf85120b84ef84c80888ac723048a1d7bdca056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x80425337d9e2071d7dde36c339c1cf67348e3274d1a88d657f850312b089a092 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x80425337d9e2071d7dde36c339c1cf67348e3274d1a88d657f850312b089a092 new file mode 100644 index 000000000..4e695b30c --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x80425337d9e2071d7dde36c339c1cf67348e3274d1a88d657f850312b089a092 @@ -0,0 +1 @@ +"0xf90191a0f8122db5c8506e99d807279fae39ef8a48fa0c4bb845639da04160da6c4b20e9a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa0d869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a06ca087ff3b1438a4f530a9f22529264d3361fc688df3b87b604f3920d575250e80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x84fe9ba6c0767549929784ec4be6e9f9383c19547c95df28141d85f350021e73 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x84fe9ba6c0767549929784ec4be6e9f9383c19547c95df28141d85f350021e73 new file mode 100644 index 000000000..59efa77c3 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x84fe9ba6c0767549929784ec4be6e9f9383c19547c95df28141d85f350021e73 @@ -0,0 +1 @@ +"0xf90191a0e253d4b7d7ef57ba342532091d1c93254ea0b3b9376f95f4cd9cf3a86803a7eba0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa0d869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0d2e4ee7e1cecf87a621b6dd951cfe13e210fd3eaa6aa75b9bea7c980d73df66d80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x85136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x85136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac deleted file mode 100644 index fc61c0c89..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x85136202c004c6071f5d2cf31cf1e392d771a96d9e2d72d7d6ad7642fbcd89ac +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0703c9f41cd3f9c672fb157028f69b976d53ede12200d99e03b62a44a7d52766a80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8695b4cfd4bfc7bcf3adbff6ae1df9debf5e3f1f6194d9926f6acfdecc7c9329 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8695b4cfd4bfc7bcf3adbff6ae1df9debf5e3f1f6194d9926f6acfdecc7c9329 deleted file mode 100644 index 28cddfef0..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8695b4cfd4bfc7bcf3adbff6ae1df9debf5e3f1f6194d9926f6acfdecc7c9329 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0076eec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a0a6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b391980a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8a32f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8a32f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3 deleted file mode 100644 index 81fc6bc2a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8a32f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a05ce31554dc5ed2775df66d7fc5cee58ae844274155d61b9ac2da2498c78947b880808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3706dbcbfdf9b7785c30e8ec1d1a8c81d7e6ddcb28a157fca25fafe3f7545610 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8be60ce8ca462139f8512b9d78543d8b7df1eea6f0f882cd6835844eb64b1b8a similarity index 65% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x3706dbcbfdf9b7785c30e8ec1d1a8c81d7e6ddcb28a157fca25fafe3f7545610 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0x8be60ce8ca462139f8512b9d78543d8b7df1eea6f0f882cd6835844eb64b1b8a index d668ec865..8b8e5b598 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x3706dbcbfdf9b7785c30e8ec1d1a8c81d7e6ddcb28a157fca25fafe3f7545610 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8be60ce8ca462139f8512b9d78543d8b7df1eea6f0f882cd6835844eb64b1b8a @@ -1 +1 @@ -"0xf90171a048b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0bed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file +"0xf90171a0397d32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0bed240630eb5a1d0bf852bdb2a66c05a7eaf03733efecf043b2525cc9e7090b380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8c228a79fea88b2003fe7d666107d9d8527af6cb498f2a12486139e4a589ba99 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8c228a79fea88b2003fe7d666107d9d8527af6cb498f2a12486139e4a589ba99 new file mode 100644 index 000000000..10b723292 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8c228a79fea88b2003fe7d666107d9d8527af6cb498f2a12486139e4a589ba99 @@ -0,0 +1 @@ +"0xf90171a0397d32de45f6b2e8ea770ee11cf199cab44d2b49528ef3ee14175a3eea03e4a0a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a007b0931b45ae8fddeb83a6713a9acd50a62f3d04968137c9dc72fe0486f8bfaa80a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 deleted file mode 100644 index aa6f9ef36..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x8f4238f0f728aa6907f0839982da6cd493aec681a7f03c198447cc9f78644545 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a07e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0023d95f4f0cb7a8639340904fd29dabfe0d83cc582091bdb6a46af2051a23c5280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 deleted file mode 100644 index 1b74a49d4..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x940b51e92d321aff791dfc1b166185a6b7f5a15d07b2c57d8a5adaed5416d049 +++ /dev/null @@ -1 +0,0 @@ -"0xf85120b84ef84c80886f05b59d3b4ec1a5a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x941993414c6bdb351136bafaff3d72c7db63e7da5576cdc2cfd269f62af30eba b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x941993414c6bdb351136bafaff3d72c7db63e7da5576cdc2cfd269f62af30eba deleted file mode 100644 index f409922fb..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x941993414c6bdb351136bafaff3d72c7db63e7da5576cdc2cfd269f62af30eba +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0076eec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a0a6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b391980a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a018e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c deleted file mode 100644 index 768b6edad..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2c +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0eae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb22980808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36 deleted file mode 100644 index 496c379a5..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9559785170faf76566504c2eb2e5c1a1e0118971b9f2e193dae541a189d19c36 +++ /dev/null @@ -1 +0,0 @@ -"0x608060405234801561001057600080fd5b506004361061002b5760003560e01c8063a41283ff14610030575b600080fd5b61004361003e36600461016a565b610045565b005b60005b81518110156100cc576000801b848484848151811061007757634e487b7160e01b600052603260045260246000fd5b602002602001015160405161008b906100d2565b6100979392919061022c565b8190604051809103906000f59050801580156100b7573d6000803e3d6000fd5b505080806100c4906102b8565b915050610048565b50505050565b6103c18061030e83390190565b600082601f8301126100ef578081fd5b8135602067ffffffffffffffff82111561010b5761010b6102df565b808202610119828201610287565b838152828101908684018388018501891015610133578687fd5b8693505b8584101561015e57803561014a816102f5565b835260019390930192918401918401610137565b50979650505050505050565b600080600083850360e081121561017f578384fd5b843561018a816102f5565b935060a0601f198201121561019d578283fd5b506101a860a0610287565b60208501356101b6816102f5565b815260408501356101c6816102f5565b602082015260608501356101d9816102f5565b604082015260808501356101ec816102f5565b606082015260a08501356080820152915060c084013567ffffffffffffffff811115610216578182fd5b610222868287016100df565b9150509250925092565b6001600160a01b039384168152825184166020808301919091528301518416604080830191909152830151841660608083019190915283015184166080808301919091529092015160a083015290911660c082015260e00190565b604051601f8201601f1916810167ffffffffffffffff811182821017156102b0576102b06102df565b604052919050565b60006000198214156102d857634e487b7160e01b81526011600452602481fd5b5060010190565b634e487b7160e01b600052604160045260246000fd5b6001600160a01b038116811461030a57600080fd5b5056fe608060405234801561001057600080fd5b506040516103c13803806103c183398101604081905261002f9161020e565b60608201516040516370a0823160e01b81526000916001600160a01b0316906370a08231906100629030906004016102ed565b60206040518083038186803b15801561007a57600080fd5b505afa15801561008e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100b291906102d5565b90506100cd8360600151858361013260201b6100091760201c565b60405163db6198a360e01b81526001600160a01b0385169063db6198a3906100fd90869086908690600401610351565b600060405180830381600087803b15801561011757600080fd5b505af115801561012b573d6000803e3d6000fd5b5050505081ff5b60405163095ea7b360e01b81526001600160a01b0384169063095ea7b3906101609085908590600401610301565b600060405180830381600087803b15801561017a57600080fd5b505af115801561018e573d6000803e3d6000fd5b505050506101a06101ca60201b60201c565b6101c55760405162461bcd60e51b81526004016101bc9061031a565b60405180910390fd5b505050565b6000803d80156101e157602081146101ea576101f6565b600191506101f6565b60206000803e60005191505b501515905090565b8051610209816103a8565b919050565b600080600083850360e0811215610223578384fd5b845161022e816103a8565b935060a0601f1982011215610241578283fd5b5060405160a081016001600160401b038111828210171561027057634e487b7160e01b84526041600452602484fd5b60405261027f602086016101fe565b815261028d604086016101fe565b602082015261029e606086016101fe565b60408201526102af608086016101fe565b606082015260a0850151608082015291506102cc60c085016101fe565b90509250925092565b6000602082840312156102e6578081fd5b5051919050565b6001600160a01b0391909116815260200190565b6001600160a01b03929092168252602082015260400190565b60208082526019908201527f5361666545524332303a20617070726f7665206661696c656400000000000000604082015260600190565b83516001600160a01b039081168252602080860151821690830152604080860151821690830152606080860151821690830152608094850151948201949094529190921660a082015260c081019190915260e00190565b6001600160a01b03811681146103bd57600080fd5b5056fea264697066735822122067959ee3a7560f3cf459a35bee2ec1208611ed45f243b2aadcc5859421f23dc464736f6c63430008010033" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 deleted file mode 100644 index f5a5169f6..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x998570e71c2279e81f1459f17764eeed4fa799d9b0b18a73ce5175e77dd0b207 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2ca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0cd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf135380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c4303d2045e645b29e2e5b6f5b441145457312aef51788f7bb53f9ea2cace25 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c4303d2045e645b29e2e5b6f5b441145457312aef51788f7bb53f9ea2cace25 deleted file mode 100644 index 8d521d6a9..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c4303d2045e645b29e2e5b6f5b441145457312aef51788f7bb53f9ea2cace25 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0f14a9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0eaf9a3e2b763bb79ea266bfa08ee316b9e77a2a330abd3e5337f96248bd5fe40a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a0a6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b391980a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a018e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c9040762aec5b87121e4a8eb55b1671d43c6327022172365849bf3ab24765ee b/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c9040762aec5b87121e4a8eb55b1671d43c6327022172365849bf3ab24765ee deleted file mode 100644 index 86ff4798b..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x9c9040762aec5b87121e4a8eb55b1671d43c6327022172365849bf3ab24765ee +++ /dev/null @@ -1 +0,0 @@ -"0xf90131a046a918aa0d618d1d1dc236e5925df6dc0008a16659ca83385c69a4b35606053ca05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa0d864960357f510874c342146963ed3d811d9ef4ba3f25a6026af7357a0dacf b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa0d864960357f510874c342146963ed3d811d9ef4ba3f25a6026af7357a0dacf deleted file mode 100644 index b56b74962..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa0d864960357f510874c342146963ed3d811d9ef4ba3f25a6026af7357a0dacf +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0076eec10c557b43a2709b82b39294d97e85081798920431c63c7044383cb5a1fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a0da6cceb1c9415ccbc08056ca4e1b7dbb566aa29413518beccb4107f30d27629280a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa4240846c555621a0f5f74893d9a6dbe5f05818ff83d97a17fbce4eca544f7b5 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa4240846c555621a0f5f74893d9a6dbe5f05818ff83d97a17fbce4eca544f7b5 deleted file mode 100644 index 2298eaf78..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa4240846c555621a0f5f74893d9a6dbe5f05818ff83d97a17fbce4eca544f7b5 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a08a32f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d80a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa594cb410b7a8eaef820bd98dabe6644968ccc50c00206a7b64639c4b819eb2c similarity index 79% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x2d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0xa594cb410b7a8eaef820bd98dabe6644968ccc50c00206a7b64639c4b819eb2c index 38e91bf0b..4bd1ada1c 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2d843d60cb1fb17d38a511a567701868cf6a0a242dbde32beb153fe17a5a0ad9 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa594cb410b7a8eaef820bd98dabe6644968ccc50c00206a7b64639c4b819eb2c @@ -1 +1 @@ -"0xf90131a0d0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file +"0xf90131a02726efa594c79b71cf696d01d3031f0e1ef30be408c33cc2fd3133a6d22c3b8da05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b3919 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b3919 deleted file mode 100644 index 4746762be..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b3919 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a053d6e71e31a09c7eae4d15dfead6370ed7772ff6a4bea58558cc6f9aec9bc6188080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa8c45b4ea97d2a21d5685f16a574e2e59f095f285aa5f4a25471f5448f367232 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa8c45b4ea97d2a21d5685f16a574e2e59f095f285aa5f4a25471f5448f367232 deleted file mode 100644 index 7482a43ac..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xa8c45b4ea97d2a21d5685f16a574e2e59f095f285aa5f4a25471f5448f367232 +++ /dev/null @@ -1 +0,0 @@ -"0xf90131a0cc086f9633f075d3c23bb9551b1470f5d56499a1f369f4f063496dac49e7aa89a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xaa1b4c470ade5e074940b32af27f578ea3e052e9b3da5d798797779d5be72330 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xaa1b4c470ade5e074940b32af27f578ea3e052e9b3da5d798797779d5be72330 new file mode 100644 index 000000000..30c9c98ee --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xaa1b4c470ade5e074940b32af27f578ea3e052e9b3da5d798797779d5be72330 @@ -0,0 +1 @@ +"0xf59310000000000000000000000000000000000000a001554e0850e1225b7d19e7664e8d43445906ed79e9af19a3b5170cf130dc1f45" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b deleted file mode 100644 index d7e351566..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5b +++ /dev/null @@ -1 +0,0 @@ -"0xf851808080808080808080a04e886ffeb627c23ca433c937073ca07621c00871df1aafd72138c4c0a93cde3c808080a071868f4ff39a84ed390a1e8440d559585fd04fcaf7dc777e16e8b26c93510f34808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xaf9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xaf9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 deleted file mode 100644 index b1047cf1d..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xaf9bd94d58e08e544b621262ca70c0ab5e1398b6476dad93af5aa59b7b3c7fd6 +++ /dev/null @@ -1 +0,0 @@ -"0xf90131a07f5abc5e81180a5beb79545108e0c5e808abecd9ccd1bbf9902b8101a06f29dea05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x46a918aa0d618d1d1dc236e5925df6dc0008a16659ca83385c69a4b35606053c b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xb027658cd9f34cc56f19bf6923d383888dfb189a164029246a93dd4947219d4f similarity index 62% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x46a918aa0d618d1d1dc236e5925df6dc0008a16659ca83385c69a4b35606053c rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0xb027658cd9f34cc56f19bf6923d383888dfb189a164029246a93dd4947219d4f index dce0ac3d5..b6a7d7fe8 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x46a918aa0d618d1d1dc236e5925df6dc0008a16659ca83385c69a4b35606053c +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xb027658cd9f34cc56f19bf6923d383888dfb189a164029246a93dd4947219d4f @@ -1 +1 @@ -"0xf85120b84ef84c808853444835ec7d0ef2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf85120b84ef84c80885345f053826f71f2a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xb862b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xb862b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582 new file mode 100644 index 000000000..1d2db1646 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xb862b26f05c39d4485bae879ee86b6e4cbe67e0986177fcf97c4158be430a582 @@ -0,0 +1 @@ +"0xf851a059599201f8455206b263879885020aaac8dc6744f6cebe6b0b23a4fd20520c0580808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 deleted file mode 100644 index 998b4b8a5..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xba4849bb4791c498132d5ca29f25ce871e710321c419511919bee9e47c21fa39 +++ /dev/null @@ -1 +0,0 @@ -"0xf8699420bada2d5830d1875ae3d2de207a1363b316df2fb852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xbacecb794fd71630a75013b9cd6a92b55c266691fb712857713546e2dbd6ccc5 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xbacecb794fd71630a75013b9cd6a92b55c266691fb712857713546e2dbd6ccc5 new file mode 100644 index 000000000..8e4084591 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xbacecb794fd71630a75013b9cd6a92b55c266691fb712857713546e2dbd6ccc5 @@ -0,0 +1 @@ +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850048c1d14a0219e52da0691e88e0ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xbdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xbdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107 deleted file mode 100644 index 24b2f9ed1..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xbdbc1a7e78f8830ac8e39d50b707cf13afaecd91e3c497120e9391307c934107 +++ /dev/null @@ -1 +0,0 @@ -"0x608060405234801561001057600080fd5b50600436106100b45760003560e01c8063b634dc1a11610071578063b634dc1a14610138578063b716d6fa1461014b578063bc1ed74c1461015e578063c1e69b6614610171578063db6198a314610184578063f8d682ea14610197576100b4565b8063056036d4146100b957806331c31bba146100d757806343f183e9146100ec5780634f1c2c31146100ff578063553721c5146101125780638126e4d214610125575b600080fd5b6100c16101aa565b6040516100ce919061132c565b60405180910390f35b6100ea6100e536600461100b565b6101b1565b005b6100ea6100fa366004611130565b6102f2565b6100c161010d3660046110ae565b61047c565b6100c16101203660046110ae565b610499565b6100ea610133366004611177565b6104b6565b6100ea6101463660046110d9565b6104dc565b6100c1610159366004611096565b61060d565b6100c161016c366004611096565b61061f565b6100c161017f366004611096565b610631565b6100ea6101923660046110f4565b610643565b6100ea6101a53660046110d9565b610772565b6203f48081565b806101d75760405162461bcd60e51b81526004016101ce9061159c565b60405180910390fd5b600080838360008181106101fb57634e487b7160e01b600052603260045260246000fd5b905060200281019061020d91906116ca565b61021e906080810190606001610fea565b905060005b838110156102ca573685858381811061024c57634e487b7160e01b600052603260045260246000fd5b905060200281019061025e91906116ca565b90506001600160a01b03831661027a6080830160608401610fea565b6001600160a01b0316146102a05760405162461bcd60e51b81526004016101ce906115c4565b6102aa88826108be565b6102b490856116ea565b93505080806102c290611719565b915050610223565b506001600160a01b03861633146102df578594505b6102ea818684610b8b565b505050505050565b6000836040516020016103059190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061033d57506000198114155b6103595760405162461bcd60e51b81526004016101ce90611404565b6000828260405160200161036e92919061127e565b60408051601f19818403018152919052805160209182012091506103c590829061039a90890189610fea565b6040805160608181019092529089906003908390839080828437600092019190915250610c14915050565b6103e15760405162461bcd60e51b81526004016101ce9061145a565b610420816103f56040890160208a01610fea565b6040805160608181019092529088906003908390839080828437600092019190915250610c14915050565b61043c5760405162461bcd60e51b81526004016101ce906113b2565b6000838152602081905260408082208290555184917f409a8212a993396d693371967374bdba995ec35612a17f889479a729a19d003691a2505050505050565b600360209081526000928352604080842090915290825290205481565b600260209081526000928352604080842090915290825290205481565b6104d96104c96080830160608401610fea565b336104d433856108be565b610b8b565b50565b60006104ee6060830160408401610fea565b9050336001600160a01b038216146105185760405162461bcd60e51b81526004016101ce90611434565b60008260405160200161052b9190611619565b60408051601f198184030181529181528151602092830120600081815292839052912054909150801580159061056357506000198114155b61057f5760405162461bcd60e51b81526004016101ce90611404565b80421161059e5760405162461bcd60e51b81526004016101ce90611511565b60008281526001602090815260408083208054908490559183905290912060001990556105db6105d46080870160608801610fea565b8583610b8b565b60405183907fe9a9ab8e37ca2b37117cbb846041a32b8f55a552541bf29fb796ad0afb7d62cf90600090a25050505050565b60046020526000908152604090205481565b60016020526000908152604090205481565b60006020819052908152604090205481565b6000836040516020016106569190611619565b6040516020818303038152906040528051906020012090506000821161068e5760405162461bcd60e51b81526004016101ce906113e0565b60008181526020819052604090205460001914156106be5760405162461bcd60e51b81526004016101ce9061138a565b600081815260016020526040812080548492906106dc9084906116ea565b909155505060008181526003602090815260408083206001600160a01b0387168452909152812080548492906107139084906116ea565b90915550610734905061072c6080860160608701610fea565b333085610c3c565b807fa765a94fd33ed0f4ebffd65738fc6efe0c9703f2eedae11f19c264f8e491317783604051610764919061132c565b60405180910390a250505050565b61077f6020820182610fea565b6001600160a01b0316336001600160a01b031614806107be57506107a96040820160208301610fea565b6001600160a01b0316336001600160a01b0316145b806107e957506107d46060820160408301610fea565b6001600160a01b0316336001600160a01b0316145b6108055760405162461bcd60e51b81526004016101ce906115f1565b6000816040516020016108189190611619565b60408051601f1981840301815291815281516020928301206000818152928390529120549091501561085c5760405162461bcd60e51b81526004016101ce90611565565b600061086b6203f480426116ea565b600083815260208190526040908190208290555190915082907fc1cd86686cbd41c5d91e32e48f9051478b1e4f51084cfe29632ed9d3fdadf23e906108b190849061132c565b60405180910390a2505050565b600080826000016040516020016108d59190611619565b60408051601f19818403018152918152815160209283012060008181529283905291205490915060001981141561091e5760405162461bcd60e51b81526004016101ce9061138a565b801561093a57600082815260046020526040902060c085013590555b600030838660c00135604051602001610955939291906112f2565b60408051601f19818403018152919052805160209182012091506109af90829061098190880188610fea565b6040805160608181019092529060e08a01906003908390839080828437600092019190915250610c14915050565b6109cb5760405162461bcd60e51b81526004016101ce90611486565b610a0e816109df6040880160208901610fea565b604080516060818101909252906101408a01906003908390839080828437600092019190915250610c14915050565b610a2a5760405162461bcd60e51b81526004016101ce9061153f565b6000868660a00135604051602001610a43929190611313565b60408051601f1981840301815291905280516020909101209050610aaa81610a6f6101a089018961167c565b8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050505060c0890135610cc8565b610ac65760405162461bcd60e51b81526004016101ce906114aa565b60008481526002602090815260408083206001600160a01b038b168452909152812054610af79060a0890135611702565b60008681526002602090815260408083206001600160a01b038d168452825280832060a08c013590558883526001909152812080549293508392909190610b3f908490611702565b92505081905550847fa37d093ea5991ef0b49761069825328a6eb46d0a2a274b55d08fd17ff16d3ec382604051610b76919061132c565b60405180910390a29450505050505b92915050565b60405163a9059cbb60e01b81526001600160a01b0384169063a9059cbb90610bb99085908590600401611313565b600060405180830381600087803b158015610bd357600080fd5b505af1158015610be7573d6000803e3d6000fd5b50505050610bf3610dd0565b610c0f5760405162461bcd60e51b81526004016101ce906114da565b505050565b6000826001600160a01b0316610c2a8584610e04565b6001600160a01b031614949350505050565b6040516323b872dd60e01b81526001600160a01b038516906323b872dd90610c6c908690869086906004016112ce565b600060405180830381600087803b158015610c8657600080fd5b505af1158015610c9a573d6000803e3d6000fd5b50505050610ca6610dd0565b610cc25760405162461bcd60e51b81526004016101ce90611353565b50505050565b81516000908490825b81811015610dc457858181518110610cf957634e487b7160e01b600052603260045260246000fd5b6020026020010151831015610d5f5782868281518110610d2957634e487b7160e01b600052603260045260246000fd5b6020026020010151604051602001610d429291906111b0565b604051602081830303815290604052805190602001209250610db2565b858181518110610d7f57634e487b7160e01b600052603260045260246000fd5b602002602001015183604051602001610d999291906111b0565b6040516020818303038152906040528051906020012092505b80610dbc81611719565b915050610cd1565b50509091149392505050565b6000803d8015610de75760208114610df057610dfc565b60019150610dfc565b60206000803e60005191505b501515905090565b80516000908190811a6004811115610e2c57634e487b7160e01b600052602160045260246000fd5b90506000816004811115610e5057634e487b7160e01b600052602160045260246000fd5b1415610e60576000915050610b85565b825160011a6002826004811115610e8757634e487b7160e01b600052602160045260246000fd5b1415610ebb5784604051602001610e9e91906111be565b604051602081830303815290604052805190602001209450610f46565b6003826004811115610edd57634e487b7160e01b600052602160045260246000fd5b1415610ef45784604051602001610e9e919061129d565b6004826004811115610f1657634e487b7160e01b600052602160045260246000fd5b1415610f465784604051602001610f2d91906111ef565b6040516020818303038152906040528051906020012094505b60208085015160408087015181516000815290930190819052600192610f70928992869290611335565b6020604051602081039080840390855afa158015610f92573d6000803e3d6000fd5b5050604051601f1901519695505050505050565b80356001600160a01b0381168114610fbd57600080fd5b919050565b8060608101831015610b8557600080fd5b600060a08284031215610fe4578081fd5b50919050565b600060208284031215610ffb578081fd5b61100482610fa6565b9392505050565b60008060008060608587031215611020578283fd5b61102985610fa6565b935061103760208601610fa6565b9250604085013567ffffffffffffffff80821115611053578384fd5b818701915087601f830112611066578384fd5b813581811115611074578485fd5b8860208083028501011115611087578485fd5b95989497505060200194505050565b6000602082840312156110a7578081fd5b5035919050565b600080604083850312156110c0578182fd5b823591506110d060208401610fa6565b90509250929050565b600060a082840312156110ea578081fd5b6110048383610fd3565b600080600060e08486031215611108578283fd5b6111128585610fd3565b925061112060a08501610fa6565b915060c084013590509250925092565b60008060006101608486031215611145578283fd5b61114f8585610fd3565b925061115e8560a08601610fc2565b915061116e856101008601610fc2565b90509250925092565b600060208284031215611188578081fd5b813567ffffffffffffffff81111561119e578182fd5b82016101c08185031215611004578182fd5b918252602082015260400190565b7f19457468657265756d205369676e6564204d6573736167653a0a3332000000008152601c810191909152603c0190565b7f19457468657265756d205369676e6564204d6573736167653a0a31303842792081527f7369676e696e672074686973206d6573736167652c20796f752061636b6e6f7760208201527f6c65646765207369676e696e6720616e204164457820626964207769746820746040820152683432903430b9b41d0560b91b6060820152606981019190915260890190565b65726573756d6560d01b81526006810192909252602682015260460190565b7f19457468657265756d205369676e6564204d6573736167653a0a2000000000008152601b810191909152603b0190565b6001600160a01b039384168152919092166020820152604081019190915260600190565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160a01b03929092168252602082015260400190565b90815260200190565b93845260ff9290921660208401526040830152606082015260800190565b6020808252601e908201527f5361666545524332303a207472616e7366657246726f6d206661696c65640000604082015260600190565b6020808252600e908201526d10d2105393915317d0d313d4d15160921b604082015260600190565b602080825260149082015273494e56414c49445f464f4c4c4f5745525f53494760601b604082015260600190565b6020808252600a90820152691393d7d1115413d4d25560b21b604082015260600190565b60208082526016908201527510d2105393915317d393d517d0d2105313115391d15160521b604082015260600190565b6020808252600c908201526b2727aa2fa3aaa0a92224a0a760a11b604082015260600190565b602080825260129082015271494e56414c49445f4c45414445525f53494760701b604082015260600190565b6020808252600a90820152694c45414445525f53494760b01b604082015260600190565b602080825260169082015275109053105390d1549311505197d393d517d193d5539160521b604082015260600190565b6020808252601a908201527f5361666545524332303a207472616e73666572206661696c6564000000000000604082015260600190565b6020808252601490820152734348414e4e454c5f4e4f545f434c4f5341424c4560601b604082015260600190565b6020808252600c908201526b464f4c4c4f5745525f53494760a01b604082015260600190565b6020808252601a908201527f4348414e4e454c5f414c52454144595f4348414c4c454e474544000000000000604082015260600190565b6020808252600e908201526d4e4f5f5749544844524157414c5360901b604082015260600190565b60208082526013908201527226aaa9aa2faaa9a2afa9a0a6a2afaa27a5a2a760691b604082015260600190565b6020808252600e908201526d1393d517d055551213d49256915160921b604082015260600190565b60a081016001600160a01b038061162f85610fa6565b1683528061163f60208601610fa6565b1660208401528061165260408601610fa6565b1660408401528061166560608601610fa6565b166060840152506080830135608083015292915050565b6000808335601e19843603018112611692578283fd5b83018035915067ffffffffffffffff8211156116ac578283fd5b60209081019250810236038213156116c357600080fd5b9250929050565b600082356101be198336030181126116e0578182fd5b9190910192915050565b600082198211156116fd576116fd611734565b500190565b60008282101561171457611714611734565b500390565b600060001982141561172d5761172d611734565b5060010190565b634e487b7160e01b600052601160045260246000fdfea26469706673582212209345b73ef3a2e6ea9d940f678a021700734cdb1466a2646358a265e947e7411264736f6c63430008010033" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc0a34c8575974417addcd391882c3350b1c84be38a8323461ca9a9c4b9bccdb0 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc0a34c8575974417addcd391882c3350b1c84be38a8323461ca9a9c4b9bccdb0 deleted file mode 100644 index 13bdd3bd5..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc0a34c8575974417addcd391882c3350b1c84be38a8323461ca9a9c4b9bccdb0 +++ /dev/null @@ -1 +0,0 @@ -"0xf85c933ba12d23e755138f7ea8391551b773cb2d8f5fb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0bffd0f5806344c4f02908a0f870c6091ec45e1a4ec159e06cbdb09ccea9736ed" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 deleted file mode 100644 index 6daaa233a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc1e30ae93283a6aa9b79fb7e844923cf2c9db48e3d6474b322ad040b37ada3f6 +++ /dev/null @@ -1 +0,0 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850058c1d14a0219e54822427ca8424a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc33e8c016adce35292dea603caa238e3fa8b382466484bea96ad0df02467f83d b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc33e8c016adce35292dea603caa238e3fa8b382466484bea96ad0df02467f83d deleted file mode 100644 index 506c04dcb..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc33e8c016adce35292dea603caa238e3fa8b382466484bea96ad0df02467f83d +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a0ea7507edecefad1bcc8838b36e17227448df648bb024974689f2c38e5c9a4981" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc3c2af5eb304969a1219910c397fe2551deeead43bf4dc31da370b54940fd61c b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc3c2af5eb304969a1219910c397fe2551deeead43bf4dc31da370b54940fd61c deleted file mode 100644 index 08b0d2ffd..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc3c2af5eb304969a1219910c397fe2551deeead43bf4dc31da370b54940fd61c +++ /dev/null @@ -1 +0,0 @@ -"0xf86893396ebd3f32092afc7d27e9ef7b67e26c49fb02b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc513a870a8aabce8fbb50077c86a0af992e02a18aae7cca7497041c518734ddb b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc513a870a8aabce8fbb50077c86a0af992e02a18aae7cca7497041c518734ddb deleted file mode 100644 index ff721f315..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc513a870a8aabce8fbb50077c86a0af992e02a18aae7cca7497041c518734ddb +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0f14a9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a0a6ec9e988178ca4e68b4e767c0e69ce5169dc014c0d1f61a97200f14018b391980a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a018e211b2c14a4881c547c6ce9a4c8b4397f008884271fc69235ee3a7be608cf7a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e deleted file mode 100644 index a4e77c5b0..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xc904827867ed5666123e4dade868316240f2427f355445a8ab7e2f67cfc20e4e +++ /dev/null @@ -1 +0,0 @@ -"0xf90171a048b595206440338b93f74ff194131a1cdb17584a6d1664ff59fbeaa94da7522fa0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423a80a07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03842c63dc96bfee3c2e621973211ae7801eb9a105783b239c1ef9f995ed43da080a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcc086f9633f075d3c23bb9551b1470f5d56499a1f369f4f063496dac49e7aa89 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcc086f9633f075d3c23bb9551b1470f5d56499a1f369f4f063496dac49e7aa89 deleted file mode 100644 index 632c04fa1..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcc086f9633f075d3c23bb9551b1470f5d56499a1f369f4f063496dac49e7aa89 +++ /dev/null @@ -1 +0,0 @@ -"0xf85120b84ef84c80883782dace9da06ceaa056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 deleted file mode 100644 index 5f1f01344..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf1353 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a095d9ccdf305b6c7bc3071e336dd4175a75ce675449032a098c9ae4c6cd1f38038080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6a55b6d3a3fdb1233bb5ceb5522aa667230a5fb31040df20fbe56aa613dd43e7 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcded6842c1f531a0e8a2af309785e0751898831fc589591dedc418678c6b30f9 similarity index 79% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x6a55b6d3a3fdb1233bb5ceb5522aa667230a5fb31040df20fbe56aa613dd43e7 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0xcded6842c1f531a0e8a2af309785e0751898831fc589591dedc418678c6b30f9 index ffe271ea1..8bd6c25b7 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6a55b6d3a3fdb1233bb5ceb5522aa667230a5fb31040df20fbe56aa613dd43e7 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xcded6842c1f531a0e8a2af309785e0751898831fc589591dedc418678c6b30f9 @@ -1 +1 @@ -"0xf90131a06909d618dcc96b7f33db90dd75b306c5418ef1346f81a9eed2dee6a289b55011a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file +"0xf90131a028d58c80da089d5aaef91e16d168d7882dbfe0bdcd3c341fe6d9fb3f5fac45c1a05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 deleted file mode 100644 index 52156a410..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd0c2d483cc12013e9ffe9f4f8d3a04b594ced31db3c966b80df14595bba1e713 +++ /dev/null @@ -1 +0,0 @@ -"0xf85120b84ef84c8088a688906bd8fa1de4a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd2e4ee7e1cecf87a621b6dd951cfe13e210fd3eaa6aa75b9bea7c980d73df66d b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd2e4ee7e1cecf87a621b6dd951cfe13e210fd3eaa6aa75b9bea7c980d73df66d new file mode 100644 index 000000000..57d61a25e --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd2e4ee7e1cecf87a621b6dd951cfe13e210fd3eaa6aa75b9bea7c980d73df66d @@ -0,0 +1 @@ +"0xf851a0bacecb794fd71630a75013b9cd6a92b55c266691fb712857713546e2dbd6ccc58080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd38d5ab873bab372f221b180181d5591f5e91496d9ba50182eb42c34bb5d0e04 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd38d5ab873bab372f221b180181d5591f5e91496d9ba50182eb42c34bb5d0e04 deleted file mode 100644 index b19b69d7a..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd38d5ab873bab372f221b180181d5591f5e91496d9ba50182eb42c34bb5d0e04 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a08a32f7d88b28e74ce6ea5e9041e382370eba03e2b97436b3b10adeb5861c3fc3a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a063c52bf638ade85398366153269ec5b8fdf708916799385eda1b667a4ece9b65a0642b38a01d2d11eb8eb747f6e9d1d22b2b87b19b86fbba267c2b21144c7a7a9d80a04b54194d955f71d295f421e8116300f00860ae21a6e510f41de9379d700479278080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd75ec380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd75ec380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a deleted file mode 100644 index fb49b85c4..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd75ec380c03eb5a496e02e6f713aaa942c46aa3f306bc5da132f4037bb30cc3a +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a0950a24255bfa30b888612bf5f8f082229e6620ffb26b0d5038d115a4303f3b2ca0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa029a0922dc087165b4b521c62f695373a94e6ed60f02b44c7029389b2547a383ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a03df390aa327ca11106d724ff798430601b15a5a3894c6219ea377527139c237280a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2c3a0ea79ed559cee6147cc554d454335e34b36b2425f2714e051e14bce81716 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0 similarity index 67% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x2c3a0ea79ed559cee6147cc554d454335e34b36b2425f2714e051e14bce81716 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0xd869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0 index b7865a231..146f029b4 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x2c3a0ea79ed559cee6147cc554d454335e34b36b2425f2714e051e14bce81716 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0 @@ -1 +1 @@ -"0xf85d94201b54359be2fa82ab05a5336eb8134f782b88cdb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a02bd3ce70c26d1c160f79711bef8d8c9fb6a55938cbbcfc573bb22a3752ac4e5b" \ No newline at end of file +"0xf85d9436cbc2eaae377f6ac4b73a982cd1125ef4cec96fb846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a02bd3ce70c26d1c160f79711bef8d8c9fb6a55938cbbcfc573bb22a3752ac4e5b" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd9ec7f0130cfa3445cb94bae8e525dc4ef929d20e5db77aecf855796ea4c34ae b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd9ec7f0130cfa3445cb94bae8e525dc4ef929d20e5db77aecf855796ea4c34ae deleted file mode 100644 index 26c6d3fbc..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xd9ec7f0130cfa3445cb94bae8e525dc4ef929d20e5db77aecf855796ea4c34ae +++ /dev/null @@ -1 +0,0 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850078c1d14a0219e54822427ac2f69a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xda6cceb1c9415ccbc08056ca4e1b7dbb566aa29413518beccb4107f30d276292 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xda6cceb1c9415ccbc08056ca4e1b7dbb566aa29413518beccb4107f30d276292 deleted file mode 100644 index ac8f8bdae..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xda6cceb1c9415ccbc08056ca4e1b7dbb566aa29413518beccb4107f30d276292 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0d9ec7f0130cfa3445cb94bae8e525dc4ef929d20e5db77aecf855796ea4c34ae8080808080808080808080a0d6eaf761af1d3d00c92dc445b5061f95d147528b9b55852df76f10a28a6b1b8f80808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe147ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe147ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b deleted file mode 100644 index 48cf5e4b7..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe147ee3766ba18c91939e10e7bdd593cab7a9c5ea522e8ac2e526ec178c97b4b +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a0a8c45b4ea97d2a21d5685f16a574e2e59f095f285aa5f4a25471f5448f367232" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe253d4b7d7ef57ba342532091d1c93254ea0b3b9376f95f4cd9cf3a86803a7eb b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe253d4b7d7ef57ba342532091d1c93254ea0b3b9376f95f4cd9cf3a86803a7eb new file mode 100644 index 000000000..868298fe9 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe253d4b7d7ef57ba342532091d1c93254ea0b3b9376f95f4cd9cf3a86803a7eb @@ -0,0 +1 @@ +"0xf851a0aa1b4c470ade5e074940b32af27f578ea3e052e9b3da5d798797779d5be7233080808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe8bdd56037a052633ad8625cbdddbb6feeb20756896c186b703c58c57ee21d57 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe8bdd56037a052633ad8625cbdddbb6feeb20756896c186b703c58c57ee21d57 new file mode 100644 index 000000000..8a2db419d --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe8bdd56037a052633ad8625cbdddbb6feeb20756896c186b703c58c57ee21d57 @@ -0,0 +1 @@ +"0xf90191a0f8122db5c8506e99d807279fae39ef8a48fa0c4bb845639da04160da6c4b20e9a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa0d869d69907dd12435329da9b9cb1384d9a93b5d2da8be8feab5219a6f0c5e6c0a05380a1576691295da8ec01aea829648436536b1d6a79dad98a780e4978b0c1c080a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a039962dd51b1d709c52a9b2651e05a3f98986224f74e9129226fed45f1b852a98a0482d918a759d6b6b29f52a97fc24ee8534da66780f9de97d5459c404729d33e780a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe93f5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe93f5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 deleted file mode 100644 index 1ef150227..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xe93f5a623fadd46aa538358feb559d72456db51aa3951fd9dcadd2a969f96a24 +++ /dev/null @@ -1 +0,0 @@ -"0xf90191a07e268f2afed164ef4eaad1a1ab27e3ea65279b7f7945bcbd4b719497688a83f4a0061ee0ff217009de92361acc7eb0a04c6e388e6cc3a3aee029d334b4af88423aa00593f39d3311050ff68084e11ed162da4409fb27741ffa95d7beb1ff9390f86ea07acf17ea82da4210bfca2f1e63d2fcc4f453def5a3035e2f3698d91f9075d61380a02ff4fe459cd7e6101f50f236412d85d3a1dfa748d3138a7d9fb5e7fbbbf288c6a0c130956c8fdc685130c28fbb7bf3aaae5e065b82f0e9eee7e8af420dd401f219a0ab81083609c235c21c7332fdad54c85c8436c31548b342924619108f50416c5ba0cd5f4a21061a78fdc660ff3f55e1c40b35e1406956a8b6ef8c0a2c2328bf135380a0cfe1d87ddf5d356d3a41eb3586d36ef34e5a9e5250dd3b38bbabefb579bf0aca8080a0eb5d8a455582872545b05ea59dfe69b5b8434a4b6d093256b14465295e8d3278a0486707da848130d9171aafab69388fdd504ac0e972b75f416d8844664bde7745a0893721b328286708fadb0089c1cfed73eebb5684316a140d5bc2177216a7810a80" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xea28dd9daa326ca6fb6597ca261fdef5a94dc13c0da20e8eac2e1831037b76c0 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xea28dd9daa326ca6fb6597ca261fdef5a94dc13c0da20e8eac2e1831037b76c0 deleted file mode 100644 index 54afc5277..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xea28dd9daa326ca6fb6597ca261fdef5a94dc13c0da20e8eac2e1831037b76c0 +++ /dev/null @@ -1 +0,0 @@ -"0xf85d94204d76a8c31fbaafe2b7895b13a763c7487fc0d8b846f8440180a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a07dcd1b9d98f5ae1e90577b771860eb7a3efe1228557238cf41b21b9760b85917" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xea7507edecefad1bcc8838b36e17227448df648bb024974689f2c38e5c9a4981 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xea7507edecefad1bcc8838b36e17227448df648bb024974689f2c38e5c9a4981 deleted file mode 100644 index 759a2af11..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xea7507edecefad1bcc8838b36e17227448df648bb024974689f2c38e5c9a4981 +++ /dev/null @@ -1 +0,0 @@ -"0xf90131a034cc33d4725479d571a9ed60422264d02dea0087ea91797cb4f7c85a9c72281ca05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554aa05911f24d96912350de50f297c2d34d5d10e136757bf4cfff5fa41bfca219554a8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xeae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xeae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 deleted file mode 100644 index 9c0915cc0..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xeae3b9772e7564847786a9a3152add13f1c1aff607f830a0987e6b27cd9eb229 +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a020526f4e392c677e547bab90a80684d354b021cdec0cf51a3d9075142371b0a8" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xeaf9a3e2b763bb79ea266bfa08ee316b9e77a2a330abd3e5337f96248bd5fe40 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xeaf9a3e2b763bb79ea266bfa08ee316b9e77a2a330abd3e5337f96248bd5fe40 deleted file mode 100644 index 9444af2bc..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xeaf9a3e2b763bb79ea266bfa08ee316b9e77a2a330abd3e5337f96248bd5fe40 +++ /dev/null @@ -1 +0,0 @@ -"0xf85180808080808080a02c3a0ea79ed559cee6147cc554d454335e34b36b2425f2714e051e14bce81716808080a0f06ac6bd35446e1e7de4572527bd0be6fe9484be3ce98aaed6440112012bcbfa8080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xece1ea40f2c7ac5b9595f8d6929729201df3eed68821668d5d616d886d3f4dbe b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xece1ea40f2c7ac5b9595f8d6929729201df3eed68821668d5d616d886d3f4dbe deleted file mode 100644 index 70e410ee3..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xece1ea40f2c7ac5b9595f8d6929729201df3eed68821668d5d616d886d3f4dbe +++ /dev/null @@ -1 +0,0 @@ -"0xf85180808080808080a0c0a34c8575974417addcd391882c3350b1c84be38a8323461ca9a9c4b9bccdb0a0c3c2af5eb304969a1219910c397fe2551deeead43bf4dc31da370b54940fd61c8080808080808080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xef6fc700210874fabc4f6014264c65e76153dfef82ade8b003db2e5953fc85bf b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xef6fc700210874fabc4f6014264c65e76153dfef82ade8b003db2e5953fc85bf deleted file mode 100644 index 1cbcdf4cc..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xef6fc700210874fabc4f6014264c65e76153dfef82ade8b003db2e5953fc85bf +++ /dev/null @@ -1 +0,0 @@ -"0xf59310000000000000000000000000000000000000a020363adf6116917c20332a8cba35879000dfaaf20fda076a7ba7d4f8d617e7cf" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf06ac6bd35446e1e7de4572527bd0be6fe9484be3ce98aaed6440112012bcbfa b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf06ac6bd35446e1e7de4572527bd0be6fe9484be3ce98aaed6440112012bcbfa deleted file mode 100644 index 3ed5680f9..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf06ac6bd35446e1e7de4572527bd0be6fe9484be3ce98aaed6440112012bcbfa +++ /dev/null @@ -1 +0,0 @@ -"0xf869942083e7d6b72c098d48968441e0d05658dc17adb9b852f850808c1d14a0219e54822428000000a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf14a9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf14a9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82 deleted file mode 100644 index 8d742e1a6..000000000 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf14a9cabec3b826fb745f80e55dd62bd85635bdc73b73e7253e600c37e601d82 +++ /dev/null @@ -1 +0,0 @@ -"0xf851a0ef6fc700210874fabc4f6014264c65e76153dfef82ade8b003db2e5953fc85bf80808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf1daf331e5087cbb8c50fd9046e32fc7a0de95c46ffe5f945200bd81f1eaf18c b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf1daf331e5087cbb8c50fd9046e32fc7a0de95c46ffe5f945200bd81f1eaf18c new file mode 100644 index 000000000..c1abd55cc --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf1daf331e5087cbb8c50fd9046e32fc7a0de95c46ffe5f945200bd81f1eaf18c @@ -0,0 +1 @@ +"0xf59310000000000000000000000000000000000000a01190861ff2dc2461c88daef7d111a378a4c8fa872b4a5f43862b947717f01756" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf2d575262e45391e075f02c323155d245e0e21de99ac4db8c0fcf61c213609b7 similarity index 70% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x5242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0xf2d575262e45391e075f02c323155d245e0e21de99ac4db8c0fcf61c213609b7 index af9274f58..6eea31460 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x5242b95f860c7d330f20ba7ee1bb6e72ca491b8235e847d20fd386f50354b63c +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf2d575262e45391e075f02c323155d245e0e21de99ac4db8c0fcf61c213609b7 @@ -1 +1 @@ -"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850038c1d14a0219e54822427daf10ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf8699420690751969b234697e9059e04ed72195c3507fab852f850038c1d14a0219e54822427dc2e0ea056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6909d618dcc96b7f33db90dd75b306c5418ef1346f81a9eed2dee6a289b55011 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf34bfca94042e4a2698fe663f99e6a795f59a7f6e6d3501212f8853581e52ab0 similarity index 62% rename from scripts/ethereum/snapshot_contracts_1/!trie_db!0x6909d618dcc96b7f33db90dd75b306c5418ef1346f81a9eed2dee6a289b55011 rename to scripts/ethereum/snapshot_contracts_1/!trie_db!0xf34bfca94042e4a2698fe663f99e6a795f59a7f6e6d3501212f8853581e52ab0 index f8f597ebd..71e0fb5f0 100644 --- a/scripts/ethereum/snapshot_contracts_1/!trie_db!0x6909d618dcc96b7f33db90dd75b306c5418ef1346f81a9eed2dee6a289b55011 +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf34bfca94042e4a2698fe663f99e6a795f59a7f6e6d3501212f8853581e52ab0 @@ -1 +1 @@ -"0xf85120b84ef84c8088c249fdd327cbd097a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file +"0xf85120b84ef84c80883782dace9da03323a056e81f171bcc55a6ff8345e692c0f86e5b48e01b996cadc001622fb5e363b421a0c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf8122db5c8506e99d807279fae39ef8a48fa0c4bb845639da04160da6c4b20e9 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf8122db5c8506e99d807279fae39ef8a48fa0c4bb845639da04160da6c4b20e9 new file mode 100644 index 000000000..a9b5bd901 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xf8122db5c8506e99d807279fae39ef8a48fa0c4bb845639da04160da6c4b20e9 @@ -0,0 +1 @@ +"0xf851a0fedd3e0b5470cf40f4051ebae3538ca87dc6f26ee4b7291e62354e4ab12e1c0880808080808080808080808080a0080392608c1dedce91b6a9246bb37ec8884ddb7198e2789b1167911b165463d88080" \ No newline at end of file diff --git a/scripts/ethereum/snapshot_contracts_1/!trie_db!0xfedd3e0b5470cf40f4051ebae3538ca87dc6f26ee4b7291e62354e4ab12e1c08 b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xfedd3e0b5470cf40f4051ebae3538ca87dc6f26ee4b7291e62354e4ab12e1c08 new file mode 100644 index 000000000..71c4bb3c0 --- /dev/null +++ b/scripts/ethereum/snapshot_contracts_1/!trie_db!0xfedd3e0b5470cf40f4051ebae3538ca87dc6f26ee4b7291e62354e4ab12e1c08 @@ -0,0 +1 @@ +"0xf59310000000000000000000000000000000000000a0a594cb410b7a8eaef820bd98dabe6644968ccc50c00206a7b64639c4b819eb2c" \ No newline at end of file From 08ab6c576ba88bc659f7c64fcfa08755860287c0 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Mon, 11 Apr 2022 10:21:15 +0300 Subject: [PATCH 12/21] config - ganache - update Chain #1 config --- docs/config/ganache.toml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/config/ganache.toml b/docs/config/ganache.toml index b0336e29f..256e04791 100644 --- a/docs/config/ganache.toml +++ b/docs/config/ganache.toml @@ -33,12 +33,12 @@ admins = ['0x80690751969B234697e9059e04ed72195c3507fa'] chain_id = 1 rpc = 'http://localhost:8545' # Ganache Snapshot address -outpace = '0x671b54359be2fa82aB05A5336EB8134F782B88Cd' +outpace = '0x26CBc2eAAe377f6Ac4b73a982CD1125eF4CEC96f' # Ganache Snapshot address -sweeper = '0xE37BA12D23e755138f7Ea8391551B773Cb2D8F5F' +sweeper = '0x3550A85877002f79db46B01672b5F86f1037cB7c' - [chain."Ganache #1".token."Mocked TOKEN 2"] - address = '0x704D76a8c31FbAafE2B7895b13A763c7487FC0D8' # checked + [chain."Ganache #1".token."Mocked TOKEN 1"] + address = '0x12a28f2bfBFfDf5842657235cC058242f40fDEa6' # checked precision = 18 # Minimum token units for the Create2 deposits to count # 1 * 10^18 = 1.0000 TOKEN @@ -57,7 +57,7 @@ outpace = '0xAbc27d46a458E2e49DaBfEf45ca74dEDBAc3DD06' # Ganache Snapshot address sweeper = '0x7dD57C0324284102A757153E18F2Cb1ACdB7d2bD' - [chain."Ganache #1337".token."Mocked TOKEN"] + [chain."Ganache #1337".token."Mocked TOKEN 1337"] address = '0x2bcaf6968aec8a3b5126fbfab5fd419da6e8ad8e' # checked precision = 18 # Minimum token units for the Create2 deposits to count From 93cc4c6a417de19d700939b188a3b74097312535 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Mon, 11 Apr 2022 10:33:32 +0300 Subject: [PATCH 13/21] adapter - ethereum - use structs for the Contracts: - Outpace - deploy & deposit - Erc20Token - deploy & set_balance - Sweeper - deploy & sweep - adapter - ethereum - add more tests --- adapter/src/ethereum/client.rs | 329 ++++++++++++++++++++++-------- adapter/src/ethereum/test_util.rs | 310 +++++++++++++++++----------- primitives/src/test_util.rs | 2 +- sentry/src/routes/channel.rs | 6 +- test_harness/src/lib.rs | 277 ++++++++++++------------- 5 files changed, 572 insertions(+), 352 deletions(-) diff --git a/adapter/src/ethereum/client.rs b/adapter/src/ethereum/client.rs index b4ecf991f..5517a02e9 100644 --- a/adapter/src/ethereum/client.rs +++ b/adapter/src/ethereum/client.rs @@ -280,7 +280,7 @@ impl Locked for Ethereum { let outpace_contract = Contract::from_json( web3.eth(), - channel_context.chain.outpace.as_bytes().into(), + H160(channel_context.chain.outpace.to_bytes()), &OUTPACE_ABI, ) .map_err(Error::ContractInitialization)?; @@ -291,7 +291,7 @@ impl Locked for Ethereum { let sweeper_contract = Contract::from_json( web3.eth(), - channel_context.chain.sweeper.as_bytes().into(), + H160(channel_context.chain.sweeper.to_bytes()), &SWEEPER_ABI, ) .map_err(Error::ContractInitialization)?; @@ -406,9 +406,13 @@ mod test { use ethstore::ethkey::Message; use primitives::{ + channel::Nonce, config::GANACHE_CONFIG, - test_util::{ADDRESS_3, ADDRESS_4, ADDRESS_5, ADVERTISER, CREATOR, LEADER}, - BigNum, ChainOf, ToHex, ValidatorId, + test_util::{ + ADDRESS_3, ADDRESS_4, ADDRESS_5, ADVERTISER, CREATOR, DUMMY_CAMPAIGN, FOLLOWER, + GUARDIAN, GUARDIAN_2, IDS, LEADER, LEADER_2, + }, + BigNum, ChainOf, Channel, ToHex, ValidatorId, }; use web3::{ contract::Options as ContractOptions, ethabi::Token, signing::keccak256, types::H160, @@ -703,78 +707,234 @@ mod test { } #[tokio::test] - async fn get_deposit_and_count_create2_when_min_tokens_received() { - let web3 = GANACHE_1337_WEB3.clone(); + async fn multi_chain_deposit_from_config() -> Result<(), Box> { + let config = GANACHE_CONFIG.clone(); - let leader_account = *LEADER; + let mut channel_1 = DUMMY_CAMPAIGN.channel.clone(); + let channel_1_token = GANACHE_INFO_1.tokens["Mocked TOKEN 1"].clone(); + channel_1.token = channel_1_token.address; - // deploy contracts - let token = deploy_token_contract(&web3, 1_000) - .await - .expect("Correct parameters are passed to the Token constructor."); - let token_address = token.1; + let chain_of = ChainOf::new(GANACHE_1.clone(), channel_1_token); - let sweeper = deploy_sweeper_contract(&web3) - .await - .expect("Correct parameters are passed to the Sweeper constructor."); + let web3_1 = chain_of + .chain + .init_web3() + .expect("Should init web3 for Chain #1"); - let outpace = deploy_outpace_contract(&web3) + let leader_adapter = Ethereum::init(KEYSTORES[&LEADER].clone(), &config) + .expect("should init ethereum adapter") + .unlock() + .expect("should unlock eth adapter"); + + let advertiser = *ADVERTISER; + + let _actual_deposit = leader_adapter + .get_deposit(&chain_of.clone().with(channel_1), advertiser) .await - .expect("Correct parameters are passed to the OUTPACE constructor."); + .expect("Should get deposit for Channel in Chain 1"); - let spender = *CREATOR; + let token = Erc20Token::new(&web3_1, chain_of.token.clone()); + let outpace = Outpace::new(&web3_1, chain_of.chain.outpace); - let (config, chain_context) = { - let mut init_chain = GANACHE_1337.clone(); - init_chain.outpace = outpace.0; - init_chain.sweeper = sweeper.0; + // OUTPACE deposit Chain #1 + // 10 tokens + { + let ten = BigNum::with_precision(10, chain_of.token.precision.into()); + token + .set_balance(LEADER.to_bytes(), advertiser.to_bytes(), &ten) + .await + .expect("Failed to set balance"); - let mut config = GANACHE_CONFIG.clone(); + outpace + .deposit(&channel_1, advertiser.to_bytes(), &ten) + .await + .expect("Should deposit funds"); - // Assert that the Ganache chain exist in the configuration - let mut config_chain = config - .chains - .values_mut() - .find(|chain_info| chain_info.chain.chain_id == init_chain.chain_id) - .expect("Should find Ganache chain in the configuration"); + let regular_deposit = leader_adapter + .get_deposit(&chain_of.clone().with(channel_1), advertiser) + .await + .expect("should get deposit"); + + assert_eq!( + Deposit { + total: ten.clone(), + still_on_create2: BigNum::from(0), + }, + regular_deposit + ); + } - // override the chain to use the outpace & sweeper addresses that were just deployed - config_chain.chain = init_chain.clone(); + Ok(()) + } + + #[tokio::test] + async fn multi_chain_deposit_from_deployed_contracts() -> Result<(), Box> + { + let chain_of_1337 = ChainOf::new( + GANACHE_1337.clone(), + GANACHE_INFO_1337.tokens["Mocked TOKEN 1337"].clone(), + ); + + let mut config = GANACHE_CONFIG.clone(); + + let channel_chain_1 = { + let web3 = GANACHE_1.init_web3().expect("Init web3"); + + // deploy contracts + let token = Erc20Token::deploy(&web3, 1_000) + .await + .expect("Correct parameters are passed to the Token constructor."); + + let sweeper = Sweeper::deploy(&web3) + .await + .expect("Correct parameters are passed to the Sweeper constructor."); + + let outpace = Outpace::deploy(&web3) + .await + .expect("Correct parameters are passed to the OUTPACE constructor."); + + // Add new "Deployed TOKEN" + let mut ganache_1 = config + .chains + .get_mut("Ganache #1") + .expect("Should have Ganache #1 already in config"); - // Assert that the token that was just deploy does not exist in the Config assert!( - config_chain + ganache_1 .tokens .values() - .find(|config_token_info| config_token_info.address == token.1) + .find(|existing_token| { existing_token.address == token.info.address }) .is_none(), - "Config should not have this token address, we've just deployed the contract." + "The deployed token address should not have existed previously in the config!" ); - let token_exists = config_chain.tokens.insert("TOKEN".into(), token.0.clone()); - - // Assert that the token name that was just deploy does not exist in the Config + // Insert the new token in the config assert!( - token_exists.is_none(), - "This token name should not pre-exist in Ganache config" + ganache_1 + .tokens + .insert("Deployed TOKEN".into(), token.info.clone()) + .is_none(), + "Should not have previous value for the Deployed TOKEN" ); - let chain_context = ChainOf::new(init_chain, token.0.clone()); + // Replace Outpace & Sweeper addresses with the ones just deployed. + ganache_1.chain.outpace = outpace.address; + ganache_1.chain.sweeper = sweeper.address; - (config, chain_context) + let chain_of_1 = ChainOf::new(ganache_1.chain.clone(), token.info.clone()); + + chain_of_1.clone().with(Channel { + leader: IDS[&LEADER], + follower: IDS[&FOLLOWER], + guardian: *GUARDIAN, + token: chain_of_1.token.address, + nonce: Nonce::from(1_u32), + }) }; - let channel = get_test_channel(token_address); - let channel_context = chain_context.with(channel); + let channel_chain_1337 = chain_of_1337.clone().with(Channel { + leader: IDS[&LEADER_2], + follower: IDS[&FOLLOWER], + guardian: *GUARDIAN_2, + token: chain_of_1337.token.address, + nonce: Nonce::from(1337_u32), + }); + + let eth_adapter = Ethereum::init(KEYSTORES[&FOLLOWER].clone(), &config) + .expect("should init ethereum adapter") + .unlock() + .expect("should unlock eth adapter"); + + let spender = *ADVERTISER; + + // No Regular nor Create2 deposits + // Chain #1 + { + let no_deposits = eth_adapter + .get_deposit(&channel_chain_1, spender) + .await + .expect("should get deposit"); + + assert_eq!( + Deposit { + total: BigNum::from(0), + still_on_create2: BigNum::from(0), + }, + no_deposits + ); + } + + // No Regular nor Create2 deposits + // Chain #1337 + { + let no_deposits = eth_adapter + .get_deposit(&channel_chain_1337, spender) + .await + .expect("should get deposit"); + + assert_eq!( + Deposit { + total: BigNum::from(0), + still_on_create2: BigNum::from(0), + }, + no_deposits + ); + } + + // OUTPACE deposit + // { + // mock_set_balance(&token.2, LEADER.to_bytes(), spender.to_bytes(), &one_token) + // .await + // .expect("Failed to set balance"); + + // outpace_deposit(&outpace.1, &channel, spender.to_bytes(), &one_token) + // .await + // .expect("Should deposit funds"); + + // let regular_deposit = eth_adapter + // .get_deposit(&channel_context, spender) + // .await + // .expect("should get deposit"); + + // assert_eq!( + // Deposit { + // total: one_token.clone(), + // still_on_create2: BigNum::from(0), + // }, + // regular_deposit + // ); + // } + + Ok(()) + } + + #[tokio::test] + #[ignore = "Create2 deposits with sweeper will be removed"] + async fn get_deposit_and_count_create2_when_min_tokens_received() { + let web3 = GANACHE_1337_WEB3.clone(); + + let leader_account = *LEADER; + + let spender = *CREATOR; + + let token_info = GANACHE_INFO_1337.tokens["Mocked TOKEN 1337"].clone(); + let chain_of = ChainOf::new(GANACHE_1337.clone(), token_info.clone()); + + let channel = get_test_channel(token_info.address); + let channel_context = chain_of.clone().with(channel); // since we deploy a new contract, it's should be different from all the ones found in config. - let eth_adapter = Ethereum::init(KEYSTORES[&LEADER].clone(), &config) + let eth_adapter = Ethereum::init(KEYSTORES[&LEADER].clone(), &GANACHE_CONFIG) .expect("should init ethereum adapter") .unlock() .expect("should unlock eth adapter"); - let counterfactual_address = - get_counterfactual_address(sweeper.0, &channel, outpace.0, spender); + let counterfactual_address = get_counterfactual_address( + chain_of.chain.sweeper, + &channel, + chain_of.chain.outpace, + spender, + ); // No Regular nor Create2 deposits { @@ -796,28 +956,27 @@ mod test { let one_token = { let deposit = "1000000000000000000".parse::().unwrap(); // make sure 1 TOKEN is the minimum set in Config - let config_token = eth_adapter - .config - .find_chain_of(channel.token) - .expect("Channel token should be present in Config") - .token; - assert!( - deposit >= config_token.min_token_units_for_deposit, + deposit >= token_info.min_token_units_for_deposit, "The minimum deposit should be >= the configured token minimum token units" ); deposit }; + let token = Erc20Token::new(&web3, token_info.clone()); + let outpace = Outpace::new(&web3, chain_of.chain.outpace); + let sweeper = Sweeper::new(&web3, chain_of.chain.sweeper); + // Regular deposit in Outpace without Create2 { - assert!(token.1 == channel.token); - mock_set_balance(&token.2, LEADER.to_bytes(), spender.to_bytes(), &one_token) + token + .set_balance(LEADER.to_bytes(), spender.to_bytes(), &one_token) .await .expect("Failed to set balance"); - outpace_deposit(&outpace.1, &channel, spender.to_bytes(), &one_token) + outpace + .deposit(&channel, spender.to_bytes(), &one_token) .await .expect("Should deposit funds"); @@ -840,14 +999,14 @@ mod test { // 999 * 10^18 < 1 TOKEN { // Set balance < minimal token units, i.e. 1 TOKEN - mock_set_balance( - &token.2, - leader_account.to_bytes(), - counterfactual_address.to_bytes(), - &BigNum::from(999), - ) - .await - .expect("Failed to set balance"); + token + .set_balance( + leader_account.to_bytes(), + counterfactual_address.to_bytes(), + &BigNum::from(999), + ) + .await + .expect("Failed to set balance"); let deposit_with_create2 = eth_adapter .get_deposit(&channel_context, spender) @@ -864,17 +1023,23 @@ mod test { ); } + let two_tokens = BigNum::with_precision(2, token_info.precision.into()); + // Deposit with more than minimum token units { + assert!( + two_tokens > token_info.min_token_units_for_deposit, + "Two tokens is less than the minimum units for deposit in Config." + ); // Set balance > minimal token units - mock_set_balance( - &token.2, - leader_account.to_bytes(), - counterfactual_address.to_bytes(), - &BigNum::from(1_999), - ) - .await - .expect("Failed to set balance"); + token + .set_balance( + leader_account.to_bytes(), + counterfactual_address.to_bytes(), + &two_tokens, + ) + .await + .expect("Failed to set balance"); let deposit_with_create2 = eth_adapter .get_deposit(&channel_context, spender) @@ -883,9 +1048,9 @@ mod test { assert_eq!( Deposit { - total: &one_token + BigNum::from(1_999), + total: &one_token + &two_tokens, // tokens are more than the minimum tokens required for deposits to count - still_on_create2: BigNum::from(1_999), + still_on_create2: two_tokens.clone(), }, deposit_with_create2 ); @@ -893,14 +1058,10 @@ mod test { // Run sweeper, it should clear the previously set create2 deposit and leave the total { - sweeper_sweep( - &sweeper.1, - outpace.0.to_bytes(), - &channel, - spender.to_bytes(), - ) - .await - .expect("Should sweep the Spender account"); + sweeper + .sweep(outpace.address.to_bytes(), &channel, spender.to_bytes()) + .await + .expect("Should sweep the Spender account"); let swept_deposit = eth_adapter .get_deposit(&channel_context, spender) @@ -909,7 +1070,7 @@ mod test { assert_eq!( Deposit { - total: &one_token + BigNum::from(1_999), + total: &one_token + &two_tokens, // we've just swept the account, so create2 should be empty still_on_create2: BigNum::from(0), }, diff --git a/adapter/src/ethereum/test_util.rs b/adapter/src/ethereum/test_util.rs index 32d6b4ed9..067435e61 100644 --- a/adapter/src/ethereum/test_util.rs +++ b/adapter/src/ethereum/test_util.rs @@ -147,105 +147,215 @@ pub fn get_test_channel(token_address: Address) -> Channel { } } -pub async fn mock_set_balance( - token_contract: &Contract, - from: [u8; 20], - address: [u8; 20], - amount: &BigNum, -) -> web3::contract::Result { - let amount = U256::from_dec_str(&amount.to_string()).expect("Should create U256"); - - token_contract - .call( - "setBalanceTo", - (H160(address), amount), - H160(from), - ContractOptions::default(), - ) - .await +/// The Sweeper contract +/// +/// Initialized and ready for calling contract with [`Web3`]. +#[derive(Debug, Clone)] +pub struct Sweeper { + pub contract: Contract, + pub address: Address, } -pub async fn outpace_deposit( - outpace_contract: &Contract, - channel: &Channel, - to: [u8; 20], - amount: &BigNum, -) -> web3::contract::Result { - let amount = U256::from_dec_str(&amount.to_string()).expect("Should create U256"); - - outpace_contract - .call( - "deposit", - (channel.tokenize(), H160(to), amount), - H160(to), - ContractOptions::with(|opt| { +impl Sweeper { + pub fn new(web3: &Web3, sweeper_address: Address) -> Self { + let sweeper_contract = + Contract::from_json(web3.eth(), H160(sweeper_address.to_bytes()), &SWEEPER_ABI) + .expect("Failed to init Sweeper contract from JSON ABI!"); + + Self { + address: sweeper_address, + contract: sweeper_contract, + } + } + + /// Deploys the Sweeper contract from [`LEADER`] + pub async fn deploy(web3: &Web3) -> web3::contract::Result { + let contract = Contract::deploy(web3.eth(), &SWEEPER_ABI) + .expect("Invalid ABI of Sweeper contract") + .confirmations(0) + .options(ContractOptions::with(|opt| { opt.gas_price = Some(1.into()); opt.gas = Some(6_721_975.into()); - }), - ) - .await + })) + .execute(*SWEEPER_BYTECODE, (), H160(LEADER.to_bytes())) + .await?; + + let sweeper_address = Address::from(contract.address().to_fixed_bytes()); + + Ok(Self { + contract, + address: sweeper_address, + }) + } + + pub async fn sweep( + &self, + outpace_address: [u8; 20], + channel: &Channel, + depositor: [u8; 20], + ) -> web3::contract::Result { + let from_leader_account = H160(*LEADER.as_bytes()); + + self.contract + .call( + "sweep", + ( + Token::Address(H160(outpace_address)), + channel.tokenize(), + Token::Array(vec![Token::Address(H160(depositor))]), + ), + from_leader_account, + ContractOptions::with(|opt| { + opt.gas_price = Some(1.into()); + opt.gas = Some(6_721_975.into()); + }), + ) + .await + } +} +/// The Mocked token API contract +/// +/// Used for mocking the tokens of an address. +/// +/// Initialized and ready for calling contract with [`Web3`]. +/// +/// Mocked ABI: [`MOCK_TOKEN_ABI`] +/// +/// Real ABI: [`crate::ethereum::ERC20_ABI`] +#[derive(Debug, Clone)] +pub struct Erc20Token { + pub web3: Web3, + pub info: TokenInfo, + pub contract: Contract, } -pub async fn sweeper_sweep( - sweeper_contract: &Contract, - outpace_address: [u8; 20], - channel: &Channel, - depositor: [u8; 20], -) -> web3::contract::Result { - let from_leader_account = H160(*LEADER.as_bytes()); - - sweeper_contract - .call( - "sweep", - ( - Token::Address(H160(outpace_address)), - channel.tokenize(), - Token::Array(vec![Token::Address(H160(depositor))]), - ), - from_leader_account, - ContractOptions::with(|opt| { - opt.gas_price = Some(1.into()); - opt.gas = Some(6_721_975.into()); - }), +impl Erc20Token { + /// Presumes a default TokenInfo + pub fn new(web3: &Web3, token_info: TokenInfo) -> Self { + let token_contract = Contract::from_json( + web3.eth(), + token_info.address.as_bytes().into(), + &MOCK_TOKEN_ABI, ) - .await -} + .expect("Failed to init Outpace contract from JSON ABI!"); -/// Deploys the Sweeper contract from [`LEADER`] -pub async fn deploy_sweeper_contract( - web3: &Web3, -) -> web3::contract::Result<(Address, Contract)> { - let sweeper_contract = Contract::deploy(web3.eth(), &SWEEPER_ABI) - .expect("Invalid ABI of Sweeper contract") - .confirmations(0) - .options(ContractOptions::with(|opt| { - opt.gas_price = Some(1.into()); - opt.gas = Some(6_721_975.into()); - })) - .execute(*SWEEPER_BYTECODE, (), H160(LEADER.to_bytes())) - .await?; + Self { + web3: web3.clone(), + info: token_info, + contract: token_contract, + } + } + + /// Deploys the Mock Token contract from [`LEADER`] + pub async fn deploy(web3: &Web3, min_token_units: u64) -> web3::contract::Result { + let token_contract = Contract::deploy(web3.eth(), &MOCK_TOKEN_ABI) + .expect("Invalid ABI of Mock Token contract") + .confirmations(0) + .options(ContractOptions::with(|opt| { + opt.gas_price = Some(1_i32.into()); + opt.gas = Some(6_721_975_i32.into()); + })) + .execute(*MOCK_TOKEN_BYTECODE, (), H160(LEADER.to_bytes())) + .await?; + + let token_address = Address::from(token_contract.address().to_fixed_bytes()); + + let token_info = TokenInfo { + min_token_units_for_deposit: BigNum::from(min_token_units), + precision: NonZeroU8::new(18).expect("should create NonZeroU8"), + // 0.000_001 + min_validator_fee: BigNum::from(1_000_000_000_000), + address: token_address, + }; + + Ok(Self { + web3: web3.clone(), + info: token_info, + contract: token_contract, + }) + } - let sweeper_address = Address::from(sweeper_contract.address().to_fixed_bytes()); + /// Set Mocked token balance + pub async fn set_balance( + &self, + from: [u8; 20], + address: [u8; 20], + amount: &BigNum, + ) -> web3::contract::Result { + let amount = U256::from_dec_str(&amount.to_string()).expect("Should create U256"); + + self.contract + .call( + "setBalanceTo", + (H160(address), amount), + H160(from), + ContractOptions::default(), + ) + .await + } +} - Ok((sweeper_address, sweeper_contract)) +/// The Outpace contract +/// +/// Initialized and ready for calling contract with [`Web3`]. +#[derive(Debug, Clone)] +pub struct Outpace { + pub contract: Contract, + pub address: Address, } -/// Deploys the Outpace contract from [`LEADER`] -pub async fn deploy_outpace_contract( - web3: &Web3, -) -> web3::contract::Result<(Address, Contract)> { - let outpace_contract = Contract::deploy(web3.eth(), &OUTPACE_ABI) - .expect("Invalid ABI of Outpace contract") - .confirmations(0) - .options(ContractOptions::with(|opt| { - opt.gas_price = Some(1.into()); - opt.gas = Some(6_721_975.into()); - })) - .execute(*OUTPACE_BYTECODE, (), H160(LEADER.to_bytes())) - .await?; - let outpace_address = Address::from(outpace_contract.address().to_fixed_bytes()); +impl Outpace { + pub fn new(web3: &Web3, outpace_address: Address) -> Self { + let outpace_contract = + Contract::from_json(web3.eth(), outpace_address.as_bytes().into(), &OUTPACE_ABI) + .expect("Failed to init Outpace contract from JSON ABI!"); + + Self { + address: outpace_address, + contract: outpace_contract, + } + } + + /// Deploys the Outpace contract from [`LEADER`] + pub async fn deploy(web3: &Web3) -> web3::contract::Result { + let outpace_contract = Contract::deploy(web3.eth(), &OUTPACE_ABI) + .expect("Invalid ABI of Outpace contract") + .confirmations(0) + .options(ContractOptions::with(|opt| { + opt.gas_price = Some(1.into()); + opt.gas = Some(6_721_975.into()); + })) + .execute(*OUTPACE_BYTECODE, (), H160(LEADER.to_bytes())) + .await?; + + let outpace_address = Address::from(outpace_contract.address().to_fixed_bytes()); + + Ok(Self { + address: outpace_address, + contract: outpace_contract, + }) + } - Ok((outpace_address, outpace_contract)) + pub async fn deposit( + &self, + channel: &Channel, + to: [u8; 20], + amount: &BigNum, + ) -> web3::contract::Result { + let amount = U256::from_dec_str(&amount.to_string()).expect("Should create U256"); + + self.contract + .call( + "deposit", + (channel.tokenize(), H160(to), amount), + H160(to), + ContractOptions::with(|opt| { + opt.gas_price = Some(1.into()); + opt.gas = Some(6_721_975.into()); + }), + ) + .await + } } /// Deploys the Identity contract for the give `for_address` @@ -278,31 +388,3 @@ pub async fn deploy_identity_contract( Ok((identity_address, identity_contract)) } - -/// Deploys the Mock Token contract from [`LEADER`] -pub async fn deploy_token_contract( - web3: &Web3, - min_token_units: u64, -) -> web3::contract::Result<(TokenInfo, Address, Contract)> { - let token_contract = Contract::deploy(web3.eth(), &MOCK_TOKEN_ABI) - .expect("Invalid ABI of Mock Token contract") - .confirmations(0) - .options(ContractOptions::with(|opt| { - opt.gas_price = Some(1_i32.into()); - opt.gas = Some(6_721_975_i32.into()); - })) - .execute(*MOCK_TOKEN_BYTECODE, (), H160(LEADER.to_bytes())) - .await?; - - let token_address = Address::from(token_contract.address().to_fixed_bytes()); - - let token_info = TokenInfo { - min_token_units_for_deposit: BigNum::from(min_token_units), - precision: NonZeroU8::new(18).expect("should create NonZeroU8"), - // 0.000_001 - min_validator_fee: BigNum::from(1_000_000_000_000), - address: token_address, - }; - - Ok((token_info, token_address, token_contract)) -} diff --git a/primitives/src/test_util.rs b/primitives/src/test_util.rs index aaf724cd2..ef491baed 100644 --- a/primitives/src/test_util.rs +++ b/primitives/src/test_util.rs @@ -162,7 +162,7 @@ pub static DUMMY_CAMPAIGN: Lazy = Lazy::new(|| { .get("Ganache #1337") .unwrap() .tokens - .get("Mocked TOKEN") + .get("Mocked TOKEN 1337") .unwrap(); Campaign { diff --git a/sentry/src/routes/channel.rs b/sentry/src/routes/channel.rs index 0a86aa38f..78f9625e1 100644 --- a/sentry/src/routes/channel.rs +++ b/sentry/src/routes/channel.rs @@ -1001,7 +1001,7 @@ mod test { leader: IDS[&LEADER], follower: IDS[&FOLLOWER], guardian: *GUARDIAN, - token: GANACHE_INFO_1337.tokens["Mocked TOKEN"].address, + token: GANACHE_INFO_1337.tokens["Mocked TOKEN 1337"].address, nonce: Nonce::from(987_654_321_u32), }; insert_channel(&app.pool, channel) @@ -1011,7 +1011,7 @@ mod test { leader: IDS[&LEADER], follower: IDS[&FOLLOWER], guardian: *GUARDIAN, - token: GANACHE_INFO_1.tokens["Mocked TOKEN 2"].address, + token: GANACHE_INFO_1.tokens["Mocked TOKEN 1"].address, nonce: Nonce::from(987_654_322_u32), }; insert_channel(&app.pool, channel_other_token) @@ -1022,7 +1022,7 @@ mod test { leader: IDS[&LEADER_2], follower: IDS[&FOLLOWER], guardian: *GUARDIAN, - token: GANACHE_INFO_1337.tokens["Mocked TOKEN"].address, + token: GANACHE_INFO_1337.tokens["Mocked TOKEN 1337"].address, nonce: Nonce::from(987_654_323_u32), }; insert_channel(&app.pool, channel_other_leader) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index de75d620a..9cc3edb69 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -6,22 +6,20 @@ use std::{ use adapter::ethereum::{ get_counterfactual_address, test_util::{ - deploy_outpace_contract, deploy_sweeper_contract, deploy_token_contract, mock_set_balance, - outpace_deposit, GANACHE_INFO_1, GANACHE_INFO_1337, MOCK_TOKEN_ABI, + GANACHE_INFO_1, GANACHE_INFO_1337, Outpace, Erc20Token, Sweeper, }, - Options, OUTPACE_ABI, SWEEPER_ABI, + Options, }; use deposits::Deposit; use once_cell::sync::Lazy; use primitives::{ - config::TokenInfo, config::GANACHE_CONFIG, test_util::{FOLLOWER, LEADER}, util::ApiUrl, Address, Chain, Config, }; use slog::{debug, Logger}; -use web3::{contract::Contract, transports::Http, types::H160, Web3}; +use web3::{transports::Http, Web3}; pub mod deposits; @@ -38,35 +36,19 @@ pub static SNAPSHOT_CONTRACTS_1337: Lazy = Lazy::new(|| { let token_info = ganache_chain_info .tokens - .get("Mocked TOKEN") + .get("Mocked TOKEN 1337") .expect("Ganache config should contain for Chain #1337 the Mocked TOKEN"); let chain = ganache_chain_info.chain.clone(); - let token = ( - // use Ganache Config - token_info.clone(), - token_info.address, - Contract::from_json( - web3.eth(), - H160(token_info.address.to_bytes()), - &MOCK_TOKEN_ABI, - ) - .unwrap(), - ); + let token = Erc20Token::new(&web3, token_info.clone()); let sweeper_address = Address::from(ganache_chain_info.chain.sweeper); - let sweeper = ( - sweeper_address, - Contract::from_json(web3.eth(), H160(sweeper_address.to_bytes()), &SWEEPER_ABI).unwrap(), - ); + let sweeper = Sweeper::new(&web3, sweeper_address); let outpace_address = Address::from(ganache_chain_info.chain.outpace); - let outpace = ( - outpace_address, - Contract::from_json(web3.eth(), H160(outpace_address.to_bytes()), &OUTPACE_ABI).unwrap(), - ); + let outpace = Outpace::new(&web3, outpace_address); Contracts { token, @@ -86,35 +68,20 @@ pub static SNAPSHOT_CONTRACTS_1: Lazy = Lazy::new(|| { let token_info = ganache_chain_info .tokens - .get("Mocked TOKEN 2") + .get("Mocked TOKEN 1") .expect("Ganache config should contain for Chain #1 the Mocked TOKEN"); - let chain = ganache_chain_info.chain.clone(); - let token = ( - // use Ganache Config - token_info.clone(), - token_info.address, - Contract::from_json( - web3.eth(), - H160(token_info.address.to_bytes()), - &MOCK_TOKEN_ABI, - ) - .unwrap(), - ); + let token = Erc20Token::new(&web3, token_info.clone()); let sweeper_address = Address::from(ganache_chain_info.chain.sweeper); - let sweeper = ( - sweeper_address, - Contract::from_json(web3.eth(), H160(sweeper_address.to_bytes()), &SWEEPER_ABI).unwrap(), - ); + let sweeper = Sweeper::new(&web3, sweeper_address); let outpace_address = Address::from(ganache_chain_info.chain.outpace); - let outpace = ( - outpace_address, - Contract::from_json(web3.eth(), H160(outpace_address.to_bytes()), &OUTPACE_ABI).unwrap(), - ); + let outpace = Outpace::new(&web3, outpace_address); + + let chain = ganache_chain_info.chain.clone(); Contracts { token, @@ -195,9 +162,10 @@ pub struct Setup { #[derive(Debug, Clone)] pub struct Contracts { - pub token: (TokenInfo, Address, Contract), - pub sweeper: (Address, Contract), - pub outpace: (Address, Contract), + pub token: Erc20Token, + #[deprecated = "We are removing the sweeper contract & the create2 addresses for Deposits"] + pub sweeper: Sweeper, + pub outpace: Outpace, pub chain: Chain, } @@ -212,23 +180,23 @@ impl Setup { // deploy contracts // TOKEN contract is with precision 18 (like DAI) // set the minimum token units to 1 TOKEN - let token = deploy_token_contract(&web3, 10_u64.pow(18)) + let token = Erc20Token::deploy(&web3, 10_u64.pow(18)) .await .expect("Correct parameters are passed to the Token constructor."); - debug!(self.logger, "Deployed token contract"; "address" => ?token.1, "token_info" => ?token.0); + debug!(self.logger, "Deployed token contract"; "address" => ?token.info.address, "token_info" => ?token.info); - let sweeper = deploy_sweeper_contract(&web3) + let sweeper = Sweeper::deploy(&web3) .await .expect("Correct parameters are passed to the Sweeper constructor."); - debug!(self.logger, "Deployed sweeper contract"; "address" => ?sweeper.0); + debug!(self.logger, "Deployed sweeper contract"; "address" => ?sweeper.address); - let outpace = deploy_outpace_contract(&web3) + let outpace = Outpace::deploy(&web3) .await .expect("Correct parameters are passed to the OUTPACE constructor."); - debug!(self.logger, "Deployed outpace contract"; "address" => ?outpace.0); + debug!(self.logger, "Deployed outpace contract"; "address" => ?outpace.address); Contracts { token, @@ -240,16 +208,15 @@ impl Setup { pub async fn deposit(&self, contracts: &Contracts, deposit: &Deposit) { let counterfactual_address = get_counterfactual_address( - contracts.sweeper.0, + contracts.sweeper.address, &deposit.channel, - contracts.outpace.0, + contracts.outpace.address, deposit.address, ); // OUTPACE regular deposit // first set a balance of tokens to be deposited - mock_set_balance( - &contracts.token.2, + contracts.token.set_balance( deposit.address.to_bytes(), deposit.address.to_bytes(), &deposit.outpace_amount, @@ -257,8 +224,7 @@ impl Setup { .await .expect("Failed to set balance"); // call the OUTPACE deposit - outpace_deposit( - &contracts.outpace.1, + contracts.outpace.deposit( &deposit.channel, deposit.address.to_bytes(), &deposit.outpace_amount, @@ -267,8 +233,7 @@ impl Setup { .expect("Should deposit with OUTPACE"); // Counterfactual address deposit - mock_set_balance( - &contracts.token.2, + contracts.token.set_balance( deposit.address.to_bytes(), counterfactual_address.to_bytes(), &deposit.counterfactual_amount, @@ -306,7 +271,7 @@ mod tests { use validator_worker::{worker::Worker, GetStateRoot, SentryApi}; #[tokio::test] - // #[ignore = "We use a snapshot, however, we have left this test for convenience"] + #[ignore = "We use a snapshot, however, we have left this test for convenience"] async fn deploy_contracts() { let logger = new_logger("test_harness"); @@ -321,14 +286,14 @@ mod tests { } // Chain Id: 1337 - // { - // let setup = Setup { - // chain: GANACHE_1337.clone(), - // logger, - // }; - // // deploy contracts - // let _contracts = setup.deploy_contracts().await; - // } + { + let setup = Setup { + chain: GANACHE_1337.clone(), + logger, + }; + // deploy contracts + let _contracts = setup.deploy_contracts().await; + } } static CAMPAIGN_1: Lazy = Lazy::new(|| { @@ -344,7 +309,7 @@ mod tests { leader: VALIDATORS[&LEADER].address.into(), follower: VALIDATORS[&FOLLOWER].address.into(), guardian: *GUARDIAN, - token: SNAPSHOT_CONTRACTS_1337.token.1, + token: SNAPSHOT_CONTRACTS_1337.token.info.address, nonce: 0_u64.into(), }; @@ -427,7 +392,7 @@ mod tests { leader: VALIDATORS[&FOLLOWER].address.into(), follower: VALIDATORS[&LEADER].address.into(), guardian: *GUARDIAN_2, - token: SNAPSHOT_CONTRACTS_1337.token.1, + token: SNAPSHOT_CONTRACTS_1337.token.info.address, nonce: 0_u64.into(), }; @@ -501,9 +466,9 @@ mod tests { let channel = Channel { leader: VALIDATORS[&LEADER].address.into(), follower: VALIDATORS[&FOLLOWER].address.into(), - guardian: *GUARDIAN, - token: SNAPSHOT_CONTRACTS_1.token.1, - nonce: 0_u64.into(), + guardian: *GUARDIAN_2, + token: SNAPSHOT_CONTRACTS_1.token.info.address, + nonce: 1_u64.into(), }; let leader_desc = ValidatorDesc { @@ -529,7 +494,7 @@ mod tests { let validators = Validators::new((leader_desc, follower_desc)); Campaign { - id: "0x936da01f9abd4d9d80c702af85c822a8" + id: "0xa78f3492481b41a688488a7aa1ff17df" .parse() .expect("Should parse"), channel, @@ -537,7 +502,7 @@ mod tests { // 20.00000000 budget: UnifiedNum::from(2_000_000_000), validators, - title: Some("Dummy Campaign".to_string()), + title: Some("Dummy Campaign in Chain #1".to_string()), pricing_bounds: Some(PricingBounds { impression: Some(Pricing { // 0.00003000 @@ -568,11 +533,12 @@ mod tests { }); #[tokio::test(flavor = "multi_thread", worker_threads = 4)] + // #[ignore = "for now"] async fn run_full_test() { let chain = GANACHE_1337.clone(); assert_eq!(CAMPAIGN_1.channel.token, CAMPAIGN_2.channel.token); - let token_chain = GANACHE_CONFIG + let token_chain_1337 = GANACHE_CONFIG .find_chain_of(CAMPAIGN_1.channel.token) .expect("Should find CAMPAIGN_1 channel token address in Config!"); @@ -580,7 +546,7 @@ mod tests { .find_chain_of(CAMPAIGN_3.channel.token) .expect("Should find CAMPAIGN_3 channel token address in Config!"); - assert_eq!(&token_chain.chain, &chain, "CAMPAIGN_1 & CAMPAIGN_2 should be both using the same #1337 Chain which is setup in the Ganache Config"); + assert_eq!(&token_chain_1337.chain, &chain, "CAMPAIGN_1 & CAMPAIGN_2 should be both using the same #1337 Chain which is setup in the Ganache Config"); let setup = Setup { chain: chain.clone(), @@ -588,7 +554,7 @@ mod tests { }; // Use snapshot contracts - let contracts = SNAPSHOT_CONTRACTS_1337.clone(); + let contracts_1337 = SNAPSHOT_CONTRACTS_1337.clone(); let contracts_1 = SNAPSHOT_CONTRACTS_1.clone(); // let contracts = setup.deploy_contracts().await; @@ -596,7 +562,8 @@ mod tests { let leader = VALIDATORS[&LEADER].clone(); let follower = VALIDATORS[&FOLLOWER].clone(); - let token_precision = contracts.token.0.precision.get(); + let token_1_precision = contracts_1.token.info.precision.get(); + let token_1337_precision = contracts_1337.token.info.precision.get(); // We use the Advertiser's `EthereumAdapter::get_auth` for authentication! let advertiser_adapter = Adapter::new( @@ -605,7 +572,6 @@ mod tests { ) .unlock() .expect("Should unlock advertiser's Ethereum Adapter"); - let advertiser_adapter = advertiser_adapter; // setup Sentry & returns Adapter let leader_adapter = setup_sentry(&leader) @@ -680,75 +646,82 @@ mod tests { // Advertiser deposits // - // Channel 1: + // Channel 1 in Chain #1337: // - Outpace: 20 TOKENs // - Counterfactual: 10 TOKENs // - // Channel 2: + // Channel 2 in Chain #1337: // - Outpace: 30 TOKENs // - Counterfactual: 20 TOKENs // - // Channel 3: + // Channel 3 in Chain #1: // - Outpace: 30 TOKENS // - Counterfactual: 20 TOKENs { let advertiser_deposits = [ Deposit { channel: CAMPAIGN_1.channel, - token: contracts.token.0.clone(), + token: contracts_1337.token.info.clone(), address: advertiser_adapter.whoami().to_address(), - outpace_amount: BigNum::with_precision(20, token_precision), - counterfactual_amount: BigNum::with_precision(10, token_precision), + outpace_amount: BigNum::with_precision(20, token_1337_precision), + counterfactual_amount: BigNum::with_precision(10, token_1337_precision), }, Deposit { channel: CAMPAIGN_2.channel, - token: contracts.token.0.clone(), + token: contracts_1337.token.info.clone(), address: advertiser_adapter.whoami().to_address(), - outpace_amount: BigNum::with_precision(30, token_precision), - counterfactual_amount: BigNum::with_precision(20, token_precision), + outpace_amount: BigNum::with_precision(30, token_1337_precision), + counterfactual_amount: BigNum::with_precision(20, token_1337_precision), }, Deposit { channel: CAMPAIGN_3.channel, - token: contracts_1.token.0.clone(), + token: contracts_1.token.info.clone(), address: advertiser_adapter.whoami().to_address(), - outpace_amount: BigNum::with_precision(30, token_precision), - counterfactual_amount: BigNum::with_precision(20, token_precision), + outpace_amount: BigNum::with_precision(100, token_1_precision), + counterfactual_amount: BigNum::with_precision(20, token_1_precision), }, ]; - // 1st deposit - { - setup.deposit(&contracts, &advertiser_deposits[0]).await; - - // make sure we have the expected deposit returned from EthereumAdapter - let eth_deposit = leader_adapter - .get_deposit( - &token_chain.clone().with_channel(CAMPAIGN_1.channel), - advertiser_adapter.whoami().to_address(), - ) - .await - .expect("Should get deposit for advertiser"); - - assert_eq!(advertiser_deposits[0], eth_deposit); - } - - // 2nd deposit - { - setup.deposit(&contracts, &advertiser_deposits[1]).await; - - // make sure we have the expected deposit returned from EthereumAdapter - let eth_deposit = leader_adapter - .get_deposit( - &token_chain.clone().with_channel(CAMPAIGN_2.channel), - advertiser_adapter.whoami().to_address(), - ) - .await - .expect("Should get deposit for advertiser"); - - assert_eq!(advertiser_deposits[1], eth_deposit); - } + // // 1st deposit + // // Chain #1337 + // { + // setup + // .deposit(&contracts_1337, &advertiser_deposits[0]) + // .await; + + // // make sure we have the expected deposit returned from EthereumAdapter + // let eth_deposit = leader_adapter + // .get_deposit( + // &token_chain_1337.clone().with_channel(CAMPAIGN_1.channel), + // advertiser_adapter.whoami().to_address(), + // ) + // .await + // .expect("Should get deposit for advertiser"); + + // assert_eq!(advertiser_deposits[0], eth_deposit); + // } + + // // 2nd deposit + // // Chain #1337 + // { + // setup + // .deposit(&contracts_1337, &advertiser_deposits[1]) + // .await; + + // // make sure we have the expected deposit returned from EthereumAdapter + // let eth_deposit = leader_adapter + // .get_deposit( + // &token_chain_1337.clone().with_channel(CAMPAIGN_2.channel), + // advertiser_adapter.whoami().to_address(), + // ) + // .await + // .expect("Should get deposit for advertiser"); + + // assert_eq!(advertiser_deposits[1], eth_deposit); + // } // 3rd deposit + // Chain #1 { setup.deposit(&contracts_1, &advertiser_deposits[2]).await; @@ -827,7 +800,7 @@ mod tests { // GET /v5/channel/{}/spender/all { let leader_response = leader_sentry - .get_all_spenders(&token_chain.clone().with_channel(CAMPAIGN_1.channel)) + .get_all_spenders(&token_chain_1337.clone().with_channel(CAMPAIGN_1.channel)) .await .expect("Should return Response"); @@ -912,7 +885,7 @@ mod tests { { let follower_token = advertiser_adapter - .get_auth(token_chain.chain.chain_id, follower_adapter.whoami()) + .get_auth(token_chain_1337.chain.chain_id, follower_adapter.whoami()) .expect("Get authentication"); let follower_response = create_campaign( @@ -943,7 +916,7 @@ mod tests { { let leader_token = advertiser_adapter - .get_auth(chain.chain_id, leader_adapter.whoami()) + .get_auth(second_chain.chain_id, leader_adapter.whoami()) .expect("Get authentication"); let leader_response = create_campaign( @@ -956,12 +929,12 @@ mod tests { .expect("Should return Response"); let status = leader_response.status(); - assert_eq!(StatusCode::OK, status); + assert_eq!(StatusCode::OK, status, "Creating CAMPAIGN_3 failed"); } { let follower_token = advertiser_adapter - .get_auth(token_chain.chain.chain_id, follower_adapter.whoami()) + .get_auth(second_chain.chain_id, follower_adapter.whoami()) .expect("Get authentication"); let follower_response = create_campaign( @@ -973,7 +946,11 @@ mod tests { .await .expect("Should return Response"); - assert_eq!(StatusCode::OK, follower_response.status()); + assert_eq!( + StatusCode::OK, + follower_response.status(), + "Creating CAMPAIGN_3 failed" + ); } } @@ -991,7 +968,7 @@ mod tests { balances: Balances::::new(), }; let actual_accounting = leader_sentry - .get_accounting(&token_chain.clone().with_channel(CAMPAIGN_1.channel)) + .get_accounting(&token_chain_1337.clone().with_channel(CAMPAIGN_1.channel)) .await .expect("Should get Channel Accounting"); @@ -1002,7 +979,7 @@ mod tests { { let response = post_new_events( &leader_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await @@ -1056,7 +1033,7 @@ mod tests { }; let actual_accounting = leader_sentry - .get_accounting(&token_chain.with_channel(CAMPAIGN_1.channel)) + .get_accounting(&token_chain_1337.with_channel(CAMPAIGN_1.channel)) .await .expect("Should get Channel Accounting"); @@ -1163,7 +1140,7 @@ mod tests { follower_worker: Worker>, events: Vec, ) { - let token_chain = GANACHE_CONFIG + let token_chain_1337 = GANACHE_CONFIG .find_chain_of(CAMPAIGN_1.channel.token) .expect("Should find CAMPAIGN_1 channel token address in Config!"); @@ -1172,7 +1149,7 @@ mod tests { let mut campaign = CAMPAIGN_1.clone(); campaign.channel = new_channel; // Use snapshot contracts - let contracts = SNAPSHOT_CONTRACTS_1337.clone(); + let contracts_1337 = SNAPSHOT_CONTRACTS_1337.clone(); let leader = VALIDATORS[&LEADER].clone(); let follower = VALIDATORS[&FOLLOWER].clone(); @@ -1185,7 +1162,7 @@ mod tests { ) .unlock() .expect("Should unlock advertiser's Ethereum Adapter"); - let context_of_channel = token_chain.clone().with(new_channel); + let context_of_channel = token_chain_1337.clone().with(new_channel); let leader_token = advertiser_adapter .get_auth(context_of_channel.chain.chain_id, IDS[&LEADER]) .expect("Get authentication"); @@ -1245,14 +1222,14 @@ mod tests { // Posting new events post_new_events( &leader_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await .expect("Posted events"); post_new_events( &follower_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await @@ -1320,20 +1297,20 @@ mod tests { let new_state = get_new_state_msg( &leader_sentry, &accounting_balances, - contracts.token.0.precision.get(), + contracts_1337.token.info.precision.get(), ); // Posting new events post_new_events( &leader_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await .expect("Posted events"); post_new_events( &follower_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await @@ -1396,7 +1373,7 @@ mod tests { let new_state = get_new_state_msg( &leader_sentry, &accounting_balances, - contracts.token.0.precision.get(), + contracts_1337.token.info.precision.get(), ); let approve_state = ApproveState { @@ -1408,14 +1385,14 @@ mod tests { // Posting new events post_new_events( &leader_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await .expect("Posted events"); post_new_events( &follower_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await @@ -1455,7 +1432,7 @@ mod tests { let new_state = get_new_state_msg( &leader_sentry, &accounting_balances, - contracts.token.0.precision.get(), + contracts_1337.token.info.precision.get(), ); let approve_state = ApproveState { @@ -1467,14 +1444,14 @@ mod tests { // Posting new events post_new_events( &leader_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await .expect("Posted events"); post_new_events( &follower_sentry, - token_chain.clone().with(CAMPAIGN_1.id), + token_chain_1337.clone().with(CAMPAIGN_1.id), &events, ) .await From 9120c0446e1f98a01204171de60ff3f04a5e1f95 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Mon, 11 Apr 2022 13:43:20 +0300 Subject: [PATCH 14/21] deprecate sweeper --- adapter/src/lib.rs | 1 + primitives/src/chain.rs | 1 + primitives/src/config.rs | 1 + primitives/src/lib.rs | 1 + sentry/Cargo.toml | 7 +- test_harness/src/lib.rs | 136 ++++++++++++++++++++------------------- 6 files changed, 76 insertions(+), 71 deletions(-) diff --git a/adapter/src/lib.rs b/adapter/src/lib.rs index 45f451c66..da527f2ad 100644 --- a/adapter/src/lib.rs +++ b/adapter/src/lib.rs @@ -1,6 +1,7 @@ #![deny(rust_2018_idioms)] #![deny(clippy::all)] #![cfg_attr(docsrs, feature(doc_cfg))] +#![allow(deprecated)] pub use { self::adapter::{ diff --git a/primitives/src/chain.rs b/primitives/src/chain.rs index d9d5b236f..91ab0ede3 100644 --- a/primitives/src/chain.rs +++ b/primitives/src/chain.rs @@ -48,6 +48,7 @@ pub struct Chain { /// The OUTPACE contract address on this Chain pub outpace: Address, /// The Sweeper contract address on this Chain + #[deprecated = "we no longer need the sweeper contract for deposits"] pub sweeper: Address, } diff --git a/primitives/src/config.rs b/primitives/src/config.rs index c4e1d0447..20a7a521c 100644 --- a/primitives/src/config.rs +++ b/primitives/src/config.rs @@ -136,6 +136,7 @@ impl ChainInfo { /// Precision can differ for the same token from one [`Chain`] to another. #[derive(Serialize, Deserialize, Debug, Clone, Eq, PartialEq, Hash)] pub struct TokenInfo { + #[deprecated = "we no longer need the sweeper contract & create2 addresses for deposits"] pub min_token_units_for_deposit: BigNum, pub min_validator_fee: BigNum, pub precision: NonZeroU8, diff --git a/primitives/src/lib.rs b/primitives/src/lib.rs index b5e4b66d0..fc0542a01 100644 --- a/primitives/src/lib.rs +++ b/primitives/src/lib.rs @@ -1,6 +1,7 @@ #![deny(rust_2018_idioms)] #![deny(clippy::all)] #![cfg_attr(docsrs, feature(doc_cfg))] +#![allow(deprecated)] // TODO: Remove once stabled and upstream num::Integer::div_floor(...) is fixed #![allow(unstable_name_collisions)] use std::{error, fmt}; diff --git a/sentry/Cargo.toml b/sentry/Cargo.toml index 41fdfe637..653ceed82 100644 --- a/sentry/Cargo.toml +++ b/sentry/Cargo.toml @@ -29,12 +29,7 @@ hex = "0.4" clap = { version = "3.1", features = ["cargo"] } # 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.21", features = ["aio", "tokio-comp"] } diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 9cc3edb69..7f10d68cc 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -1,3 +1,4 @@ +#![allow(deprecated)] use std::{ collections::HashMap, net::{IpAddr, Ipv4Addr}, @@ -5,9 +6,7 @@ use std::{ use adapter::ethereum::{ get_counterfactual_address, - test_util::{ - GANACHE_INFO_1, GANACHE_INFO_1337, Outpace, Erc20Token, Sweeper, - }, + test_util::{Erc20Token, Outpace, Sweeper, GANACHE_INFO_1, GANACHE_INFO_1337}, Options, }; use deposits::Deposit; @@ -216,30 +215,36 @@ impl Setup { // OUTPACE regular deposit // first set a balance of tokens to be deposited - contracts.token.set_balance( - deposit.address.to_bytes(), - deposit.address.to_bytes(), - &deposit.outpace_amount, - ) - .await - .expect("Failed to set balance"); + contracts + .token + .set_balance( + deposit.address.to_bytes(), + deposit.address.to_bytes(), + &deposit.outpace_amount, + ) + .await + .expect("Failed to set balance"); // call the OUTPACE deposit - contracts.outpace.deposit( - &deposit.channel, - deposit.address.to_bytes(), - &deposit.outpace_amount, - ) - .await - .expect("Should deposit with OUTPACE"); + contracts + .outpace + .deposit( + &deposit.channel, + deposit.address.to_bytes(), + &deposit.outpace_amount, + ) + .await + .expect("Should deposit with OUTPACE"); // Counterfactual address deposit - contracts.token.set_balance( - deposit.address.to_bytes(), - counterfactual_address.to_bytes(), - &deposit.counterfactual_amount, - ) - .await - .expect("Failed to set balance"); + contracts + .token + .set_balance( + deposit.address.to_bytes(), + counterfactual_address.to_bytes(), + &deposit.counterfactual_amount, + ) + .await + .expect("Failed to set balance"); } } @@ -682,43 +687,43 @@ mod tests { }, ]; - // // 1st deposit - // // Chain #1337 - // { - // setup - // .deposit(&contracts_1337, &advertiser_deposits[0]) - // .await; - - // // make sure we have the expected deposit returned from EthereumAdapter - // let eth_deposit = leader_adapter - // .get_deposit( - // &token_chain_1337.clone().with_channel(CAMPAIGN_1.channel), - // advertiser_adapter.whoami().to_address(), - // ) - // .await - // .expect("Should get deposit for advertiser"); - - // assert_eq!(advertiser_deposits[0], eth_deposit); - // } - - // // 2nd deposit - // // Chain #1337 - // { - // setup - // .deposit(&contracts_1337, &advertiser_deposits[1]) - // .await; - - // // make sure we have the expected deposit returned from EthereumAdapter - // let eth_deposit = leader_adapter - // .get_deposit( - // &token_chain_1337.clone().with_channel(CAMPAIGN_2.channel), - // advertiser_adapter.whoami().to_address(), - // ) - // .await - // .expect("Should get deposit for advertiser"); - - // assert_eq!(advertiser_deposits[1], eth_deposit); - // } + // 1st deposit + // Chain #1337 + { + setup + .deposit(&contracts_1337, &advertiser_deposits[0]) + .await; + + // make sure we have the expected deposit returned from EthereumAdapter + let eth_deposit = leader_adapter + .get_deposit( + &token_chain_1337.clone().with_channel(CAMPAIGN_1.channel), + advertiser_adapter.whoami().to_address(), + ) + .await + .expect("Should get deposit for advertiser"); + + assert_eq!(advertiser_deposits[0], eth_deposit); + } + + // 2nd deposit + // Chain #1337 + { + setup + .deposit(&contracts_1337, &advertiser_deposits[1]) + .await; + + // make sure we have the expected deposit returned from EthereumAdapter + let eth_deposit = leader_adapter + .get_deposit( + &token_chain_1337.clone().with_channel(CAMPAIGN_2.channel), + advertiser_adapter.whoami().to_address(), + ) + .await + .expect("Should get deposit for advertiser"); + + assert_eq!(advertiser_deposits[1], eth_deposit); + } // 3rd deposit // Chain #1 @@ -1241,11 +1246,12 @@ mod tests { follower_worker.all_channels_tick().await; // Retrieving the NewState message from both validators - let newstate = leader_sentry_with_propagate + let newstate_leader = leader_sentry_with_propagate .get_our_latest_msg(new_channel.id(), &["NewState"]) .await .expect("should fetch") .unwrap(); + let newstate_follower = follower_sentry_with_propagate .get_our_latest_msg(new_channel.id(), &["NewState"]) .await @@ -1258,12 +1264,12 @@ mod tests { .unwrap(); println!("Heartbeat - {:?}", heartbeat); - let newstate = NewState::::try_from(newstate).expect("Should convert"); + let newstate_leader = NewState::::try_from(newstate_leader).expect("Should convert"); let newstate_follower = NewState::::try_from(newstate_follower).expect("Should convert"); assert_eq!( - newstate.state_root, newstate_follower.state_root, + newstate_leader.state_root, newstate_follower.state_root, "Leader/Follower NewStates match" ); let mut expected_balances = Balances::new(); @@ -1286,7 +1292,7 @@ mod tests { .expect("Should spend"); assert_eq!( - newstate.balances, expected_balances, + newstate_leader.balances, expected_balances, "Balances are as expected" ); From b9015857c987595436cfa59247e289d9347b448e Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Tue, 12 Apr 2022 13:42:18 +0300 Subject: [PATCH 15/21] Config - ganache - increase propagation timeout From 1 to 2 seconds --- docs/config/ganache.toml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/docs/config/ganache.toml b/docs/config/ganache.toml index 256e04791..c67c89b9d 100644 --- a/docs/config/ganache.toml +++ b/docs/config/ganache.toml @@ -14,7 +14,9 @@ analytics_maxtime = 20000 heartbeat_time = 30000 health_threshold_promilles = 950 health_unsignable_promilles = 750 -propagation_timeout = 1000 +# 2 seconds +# TODO: Check the POST /validator-message route performance, more than 1 second for timeout is a lot! +propagation_timeout = 2000 fetch_timeout = 5000 all_campaigns_timeout = 5000 From 3f8460cb0f08417bfc6b34470cc48a54e46b23d3 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Tue, 12 Apr 2022 13:47:03 +0300 Subject: [PATCH 16/21] test_harness - start refactoring ticks tests --- test_harness/src/lib.rs | 868 +++++++++++++++++++++------------------- 1 file changed, 465 insertions(+), 403 deletions(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 7f10d68cc..a00e72160 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -269,10 +269,11 @@ mod tests { spender::Spender, test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, IDS, PUBLISHER}, util::{logging::new_logger, ApiUrl}, - validator::{ApproveState, NewState}, + validator::{ApproveState, Heartbeat, NewState}, Balances, BigNum, Campaign, CampaignId, Channel, ChannelId, UnifiedNum, }; use reqwest::{Client, StatusCode}; + use slog::info; use validator_worker::{worker::Worker, GetStateRoot, SentryApi}; #[tokio::test] @@ -843,6 +844,10 @@ mod tests { .expect("Should return Response"); assert_eq!(StatusCode::OK, leader_response.status()); + info!( + setup.logger, + "CAMPAIGN_1 created in Leader ({:?})", CAMPAIGN_1.channel.leader + ); } { @@ -860,6 +865,10 @@ mod tests { .expect("Should return Response"); assert_eq!(StatusCode::OK, follower_response.status()); + info!( + setup.logger, + "CAMPAIGN_1 created in Follower ({:?})", CAMPAIGN_1.channel.follower + ); } } @@ -886,6 +895,10 @@ mod tests { let status = leader_response.status(); assert_eq!(StatusCode::OK, status); + info!( + setup.logger, + "CAMPAIGN_2 created in Leader ({:?})", CAMPAIGN_2.channel.leader + ); } { @@ -903,6 +916,10 @@ mod tests { .expect("Should return Response"); assert_eq!(StatusCode::OK, follower_response.status()); + info!( + setup.logger, + "CAMPAIGN_2 created in Follower ({:?})", CAMPAIGN_2.channel.follower + ); } } @@ -935,6 +952,10 @@ mod tests { let status = leader_response.status(); assert_eq!(StatusCode::OK, status, "Creating CAMPAIGN_3 failed"); + info!( + setup.logger, + "CAMPAIGN_3 created in Leader ({:?})", CAMPAIGN_3.channel.leader + ); } { @@ -956,6 +977,10 @@ mod tests { follower_response.status(), "Creating CAMPAIGN_3 failed" ); + info!( + setup.logger, + "CAMPAIGN_3 created in Follower ({:?})", CAMPAIGN_3.channel.follower + ); } } @@ -978,9 +1003,10 @@ mod tests { .expect("Should get Channel Accounting"); assert_eq!(expected_accounting, actual_accounting); + info!(setup.logger, "Channel 1 {:?} has empty Accounting because of no events have been submitted to any Campaign", CAMPAIGN_1.channel.id()); } - // Add new events to sentry + // Add new events for `CAMPAIGN_1` to sentry { let response = post_new_events( &leader_sentry, @@ -990,7 +1016,13 @@ mod tests { .await .expect("Posted events"); - assert_eq!(SuccessResponse { success: true }, response) + assert_eq!(SuccessResponse { success: true }, response); + info!( + setup.logger, + "Successfully POST events for CAMPAIGN_1 {:?} and Channel {:?} ", + CAMPAIGN_1.id, + CAMPAIGN_1.channel.id() + ); } // Channel 1 expected Accounting @@ -1043,17 +1075,96 @@ mod tests { .expect("Should get Channel Accounting"); pretty_assertions::assert_eq!(expected_accounting, actual_accounting); + info!(setup.logger, "Successfully validated Accounting Balances for Channel 1 {:?} after CAMPAIGN_1 events {:?}", CAMPAIGN_1.channel.id(), CAMPAIGN_1.id); + } + + // leader single worker tick + leader_worker.all_channels_tick().await; + // follower single worker tick + follower_worker.all_channels_tick().await; + + // For CAMPAIGN_1 + // + // Check NewState existence of Channel 1 after the validator ticks + // For both Leader & Follower + // Assert that both states are the same! + // + // Check ApproveState of the Follower + // Assert that it exists in both validators + { + let newstate_leader = leader_sentry + .get_our_latest_msg(CAMPAIGN_1.channel.id(), &["NewState"]) + .await + .expect("Should fetch NewState from Leader (Who am I) in Leader sentry") + .map(|message| { + NewState::::try_from(message) + .expect("Should be NewState with Checked Balances") + }) + .expect("Should have a NewState in Leader for the Campaign 1 channel"); + + let newstate_follower = follower_sentry + .get_latest_msg( + CAMPAIGN_1.channel.id(), + leader_sentry.adapter.whoami(), + &["NewState"], + ) + .await + .expect("Should fetch NewState received from Leader in Follower sentry") + .map(|message| { + NewState::::try_from(message) + .expect("Should be NewState with Checked Balances") + }) + .expect("Should have a NewState in Follower for the Campaign 1 channel"); + + let heartbeat = leader_sentry + .get_our_latest_msg(CAMPAIGN_1.channel.id(), &["Heartbeat"]) + .await + .expect("Should fetch Heartbeat from Leader") + .map(|message| { + Heartbeat::try_from(message).expect("Should be Heartbeat with Checked Balances") + }) + .expect("Should have a Heartbeat in Leader for the Campaign 1 channel"); + + pretty_assertions::assert_eq!( + newstate_leader, + newstate_follower, + "Leader/Follower NewStates match" + ); + let mut expected_balances = Balances::new(); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.leader.to_address(), + UnifiedNum::from_u64(27000), + ) + .expect("Should spend"); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.follower.to_address(), + UnifiedNum::from_u64(18000), + ) + .expect("Should spend"); + expected_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(9000)) + .expect("Should spend"); + + pretty_assertions::assert_eq!( + newstate_leader.balances, + expected_balances, + "Balances are as expected" + ); } // Running validator worker tests - test_leader_and_follower_loop( - leader_sentry, - follower_sentry, - leader_worker, - follower_worker, - events, - ) - .await; + // test_leader_and_follower_loop( + // leader_sentry, + // follower_sentry, + // leader_worker, + // follower_worker, + // events, + // ) + // .await; } async fn setup_sentry(validator: &TestValidator) -> adapter::ethereum::LockedAdapter { @@ -1138,398 +1249,349 @@ mod tests { .await?) } - async fn test_leader_and_follower_loop( - leader_sentry: SentryApi, - follower_sentry: SentryApi, - leader_worker: Worker>, - follower_worker: Worker>, - events: Vec, - ) { - let token_chain_1337 = GANACHE_CONFIG - .find_chain_of(CAMPAIGN_1.channel.token) - .expect("Should find CAMPAIGN_1 channel token address in Config!"); - - let mut new_channel = CAMPAIGN_1.channel.clone(); - new_channel.nonce = 1_u64.into(); - let mut campaign = CAMPAIGN_1.clone(); - campaign.channel = new_channel; - // Use snapshot contracts - let contracts_1337 = SNAPSHOT_CONTRACTS_1337.clone(); - - let leader = VALIDATORS[&LEADER].clone(); - let follower = VALIDATORS[&FOLLOWER].clone(); - - let create_campaign_1 = CreateCampaign::from_campaign(campaign.clone()); - let api_client = reqwest::Client::new(); - let advertiser_adapter = Adapter::new( - Ethereum::init(KEYSTORES[&ADVERTISER].clone(), &GANACHE_CONFIG) - .expect("Should initialize creator adapter"), - ) - .unlock() - .expect("Should unlock advertiser's Ethereum Adapter"); - let context_of_channel = token_chain_1337.clone().with(new_channel); - let leader_token = advertiser_adapter - .get_auth(context_of_channel.chain.chain_id, IDS[&LEADER]) - .expect("Get authentication"); - - let follower_token = advertiser_adapter - .get_auth(context_of_channel.chain.chain_id, IDS[&FOLLOWER]) - .expect("Get authentication"); - create_campaign( - &api_client, - &leader.sentry_url, - &leader_token, - &create_campaign_1, - ) - .await - .expect("Should return Response"); - - create_campaign( - &api_client, - &follower.sentry_url, - &follower_token, - &create_campaign_1, - ) - .await - .expect("Should return Response"); - - // leader::tick() accepts a sentry instance with validators to propagate to - let leader_sentry_with_propagate = { - let all_channels_validators = leader_sentry - .collect_channels() - .await - .expect("Should collect channels"); - - leader_sentry - .clone() - .with_propagate(all_channels_validators.1) - .expect("Should get sentry") - }; - - // follower::tick() accepts a sentry instance with validators to propagate to - let follower_sentry_with_propagate = { - let all_channels_validators = follower_sentry - .collect_channels() - .await - .expect("Should collect channels"); - - follower_sentry - .clone() - .with_propagate(all_channels_validators.1) - .expect("Should get sentry") - }; - - // Testing propagation and retrieval of NewState messages, verification of balances - // We make a NewState message, propagate it, update the balances and send a second message with the new balances - { - let mut accounting_balances = get_test_accounting_balances(); - - // Posting new events - post_new_events( - &leader_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - post_new_events( - &follower_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - - // leader single worker tick - leader_worker.all_channels_tick().await; - // follower single worker tick - follower_worker.all_channels_tick().await; - - // Retrieving the NewState message from both validators - let newstate_leader = leader_sentry_with_propagate - .get_our_latest_msg(new_channel.id(), &["NewState"]) - .await - .expect("should fetch") - .unwrap(); - - let newstate_follower = follower_sentry_with_propagate - .get_our_latest_msg(new_channel.id(), &["NewState"]) - .await - .expect("should fetch") - .unwrap(); - let heartbeat = leader_sentry_with_propagate - .get_our_latest_msg(new_channel.id(), &["Heartbeat"]) - .await - .expect("should fetch") - .unwrap(); - println!("Heartbeat - {:?}", heartbeat); - - let newstate_leader = NewState::::try_from(newstate_leader).expect("Should convert"); - let newstate_follower = - NewState::::try_from(newstate_follower).expect("Should convert"); - - assert_eq!( - newstate_leader.state_root, newstate_follower.state_root, - "Leader/Follower NewStates match" - ); - let mut expected_balances = Balances::new(); - expected_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.leader.to_address(), - UnifiedNum::from_u64(27000), - ) - .expect("Should spend"); - expected_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.follower.to_address(), - UnifiedNum::from_u64(18000), - ) - .expect("Should spend"); - expected_balances - .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(9000)) - .expect("Should spend"); - - assert_eq!( - newstate_leader.balances, expected_balances, - "Balances are as expected" - ); - - // Balances are being changed since the last propagated message ensuring that a new NewState will be generated - accounting_balances - .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) - .expect("Should spend for Publisher"); - let new_state = get_new_state_msg( - &leader_sentry, - &accounting_balances, - contracts_1337.token.info.precision.get(), - ); - - // Posting new events - post_new_events( - &leader_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - post_new_events( - &follower_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - - // leader single worker tick - leader_worker.all_channels_tick().await; - // follower single worker tick - follower_worker.all_channels_tick().await; - - let newstate = leader_sentry_with_propagate - .get_our_latest_msg(new_channel.id(), &["NewState"]) - .await - .expect("should fetch") - .unwrap(); - - let newstate_follower = follower_sentry_with_propagate - .get_our_latest_msg(new_channel.id(), &["NewState"]) - .await - .expect("should fetch") - .unwrap(); - - let newstate = NewState::::try_from(newstate).expect("Should convert"); - let newstate_follower = - NewState::::try_from(newstate_follower).expect("Should convert"); - - assert_eq!( - newstate.state_root, newstate_follower.state_root, - "Stateroots of the new messages match" - ); - let mut expected_balances = Balances::new(); - expected_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.leader.to_address(), - UnifiedNum::from_u64(27000), - ) - .expect("Should spend"); - expected_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.follower.to_address(), - UnifiedNum::from_u64(18000), - ) - .expect("Should spend"); - expected_balances - .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(18000)) - .expect("Should spend"); - assert_eq!( - newstate.balances, expected_balances, - "Balances are as expected" - ); - } - - // Testing ApproveState propagation, ensures the validator worker and follower are running properly - // We propagate a NewState/ApproveState pair, verify they match, then we update - { - let mut accounting_balances = get_test_accounting_balances(); - - let new_state = get_new_state_msg( - &leader_sentry, - &accounting_balances, - contracts_1337.token.info.precision.get(), - ); - - let approve_state = ApproveState { - state_root: new_state.state_root.clone(), - signature: new_state.signature.clone(), - is_healthy: true, - }; - - // Posting new events - post_new_events( - &leader_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - post_new_events( - &follower_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - - // leader single worker tick - leader_worker.all_channels_tick().await; - // follower single worker tick - follower_worker.all_channels_tick().await; - - let res = follower_sentry_with_propagate - .get_last_approved(new_channel.id()) - .await - .expect("should retrieve"); - assert!(res.last_approved.is_some(), "We have a last_approved pair"); - let last_approved = res.last_approved.unwrap(); - assert!( - last_approved.new_state.is_some(), - "We have a new_state in last_approved" - ); - assert!( - last_approved.approve_state.is_some(), - "We have approve_state in last_approved" - ); - let new_state_root = &last_approved.new_state.unwrap().msg.state_root; - let approve_state_root = &last_approved.approve_state.unwrap().msg.state_root; - assert_eq!( - new_state_root, approve_state_root, - "NewState and ApproveState state roots match" - ); - - accounting_balances - .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) - .expect("Should spend for Publisher"); - - // Propagating a new NewState so that the follower has to generate an ApproveState message - let new_state = get_new_state_msg( - &leader_sentry, - &accounting_balances, - contracts_1337.token.info.precision.get(), - ); - - let approve_state = ApproveState { - state_root: new_state.state_root.clone(), - signature: new_state.signature.clone(), - is_healthy: true, - }; - - // Posting new events - post_new_events( - &leader_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - post_new_events( - &follower_sentry, - token_chain_1337.clone().with(CAMPAIGN_1.id), - &events, - ) - .await - .expect("Posted events"); - - // leader single worker tick - leader_worker.all_channels_tick().await; - // follower single worker tick - follower_worker.all_channels_tick().await; - - // leader single worker tick - leader_worker.all_channels_tick().await; - // follower single worker tick - follower_worker.all_channels_tick().await; - - let res = follower_sentry_with_propagate - .get_last_approved(new_channel.id()) - .await - .expect("should retrieve"); - assert!(res.last_approved.is_some(), "We have a last_approved"); - let new_last_approved = res.last_approved.unwrap(); - - assert_ne!( - &new_last_approved.new_state.unwrap().msg.state_root, - new_state_root, - "NewState is different from the last pair" - ); - assert_ne!( - &new_last_approved.approve_state.unwrap().msg.state_root, - approve_state_root, - "ApproveState is different from the last pair" - ); - } - } - - fn get_new_state_msg( - sentry: &SentryApi, - accounting_balances: &Balances, - precision: u8, - ) -> NewState { - let state_root = accounting_balances - .encode(CAMPAIGN_1.channel.id(), precision) - .expect("should encode"); - let signature = sentry.adapter.sign(&state_root).expect("should sign"); - NewState { - state_root: state_root.to_string(), - signature, - balances: accounting_balances.clone().into_unchecked(), - } - } - - fn get_test_accounting_balances() -> Balances { - let mut accounting_balances = Balances::new(); - accounting_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.leader.to_address(), - UnifiedNum::from(27_000), - ) - .expect("Should spend for Leader"); - accounting_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.follower.to_address(), - UnifiedNum::from(18_000), - ) - .expect("Should spend for Follower"); - accounting_balances - .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) - .expect("Should spend for Publisher"); - accounting_balances - } + // async fn test_leader_and_follower_loop( + // leader_sentry: SentryApi, + // follower_sentry: SentryApi, + // leader_worker: Worker>, + // follower_worker: Worker>, + // events: Vec, + // ) { + // Testing propagation and retrieval of NewState messages, verification of balances + // We make a NewState message, propagate it, update the balances and send a second message with the new balances + // { + // // Retrieving the NewState message from both validators + // let newstate_leader = leader_sentry_with_propagate + // .get_our_latest_msg(new_channel.id(), &["NewState"]) + // .await + // .expect("should fetch") + // .expect("Should have a NewState for the new channel"); + + // let newstate_follower = follower_sentry_with_propagate + // .get_our_latest_msg(new_channel.id(), &["NewState"]) + // .await + // .expect("should fetch") + // .unwrap(); + // let heartbeat = leader_sentry_with_propagate + // .get_our_latest_msg(new_channel.id(), &["Heartbeat"]) + // .await + // .expect("should fetch") + // .unwrap(); + // println!("Heartbeat - {:?}", heartbeat); + + // let newstate_leader = + // NewState::::try_from(newstate_leader).expect("Should convert"); + // let newstate_follower = + // NewState::::try_from(newstate_follower).expect("Should convert"); + + // assert_eq!( + // newstate_leader.state_root, newstate_follower.state_root, + // "Leader/Follower NewStates match" + // ); + // let mut expected_balances = Balances::new(); + // expected_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.leader.to_address(), + // UnifiedNum::from_u64(27000), + // ) + // .expect("Should spend"); + // expected_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.follower.to_address(), + // UnifiedNum::from_u64(18000), + // ) + // .expect("Should spend"); + // expected_balances + // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(9000)) + // .expect("Should spend"); + + // assert_eq!( + // newstate_leader.balances, expected_balances, + // "Balances are as expected" + // ); + + // // Balances are being changed since the last propagated message ensuring that a new NewState will be generated + // accounting_balances + // .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) + // .expect("Should spend for Publisher"); + // let new_state = get_new_state_msg( + // &leader_sentry, + // &accounting_balances, + // contracts_1337.token.info.precision.get(), + // ); + + // Posting new events + // post_new_events( + // &leader_sentry, + // token_chain_1337.clone().with(CAMPAIGN_1.id), + // &events, + // ) + // .await + // .expect("Posted events"); + // post_new_events( + // &follower_sentry, + // token_chain_1337.clone().with(CAMPAIGN_1.id), + // &events, + // ) + // .await + // .expect("Posted events"); + + // // leader single worker tick + // leader_worker.all_channels_tick().await; + // // follower single worker tick + // follower_worker.all_channels_tick().await; + + // let newstate = leader_sentry_with_propagate + // .get_our_latest_msg(new_channel.id(), &["NewState"]) + // .await + // .expect("should fetch") + // .unwrap(); + + // let newstate_follower = follower_sentry_with_propagate + // .get_our_latest_msg(new_channel.id(), &["NewState"]) + // .await + // .expect("should fetch") + // .unwrap(); + + // let newstate = NewState::::try_from(newstate).expect("Should convert"); + // let newstate_follower = + // NewState::::try_from(newstate_follower).expect("Should convert"); + + // assert_eq!( + // newstate.state_root, newstate_follower.state_root, + // "Stateroots of the new messages match" + // ); + // let mut expected_balances = Balances::new(); + // expected_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.leader.to_address(), + // UnifiedNum::from_u64(27000), + // ) + // .expect("Should spend"); + // expected_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.follower.to_address(), + // UnifiedNum::from_u64(18000), + // ) + // .expect("Should spend"); + // expected_balances + // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(18000)) + // .expect("Should spend"); + // assert_eq!( + // newstate.balances, expected_balances, + // "Balances are as expected" + // ); + // } worker tick + // leader_worker.all_channels_tick().await; + // // follower single worker tick + // follower_worker.all_channels_tick().await; + + // let newstate = leader_sentry_with_propagate + // .get_our_latest_msg(new_channel.id(), &["NewState"]) + // .await + // .expect("should fetch") + // .unwrap(); + + // let newstate_follower = follower_sentry_with_propagate + // .get_our_latest_msg(new_channel.id(), &["NewState"]) + // .await + // .expect("should fetch") + // .unwrap(); + + // let newstate = NewState::::try_from(newstate).expect("Should convert"); + // let newstate_follower = + // NewState::::try_from(newstate_follower).expect("Should convert"); + + // assert_eq!( + // newstate.state_root, newstate_follower.state_root, + // "Stateroots of the new messages match" + // ); + // let mut expected_balances = Balances::new(); + // expected_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.leader.to_address(), + // UnifiedNum::from_u64(27000), + // ) + // .expect("Should spend"); + // expected_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.follower.to_address(), + // UnifiedNum::from_u64(18000), + // ) + // .expect("Should spend"); + // expected_balances + // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(18000)) + // .expect("Should spend"); + // assert_eq!( + // newstate.balances, expected_balances, + // "Balances are as expected" + // ); + // } + + // Testing ApproveState propagation, ensures the validator worker and follower are running properly + // We propagate a NewState/ApproveState pair, verify they match, then we update + // { + // let mut accounting_balances = get_test_accounting_balances(); + + // let new_state = get_new_state_msg( + // &leader_sentry, + // &accounting_balances, + // contracts_1337.token.info.precision.get(), + // ); + + // let approve_state = ApproveState { + // state_root: new_state.state_root.clone(), + // signature: new_state.signature.clone(), + // is_healthy: true, + // }; + + // // Posting new events + // post_new_events( + // &leader_sentry, + // token_chain_1337.clone().with(CAMPAIGN_1.id), + // &events, + // ) + // .await + // .expect("Posted events"); + // post_new_events( + // &follower_sentry, + // token_chain_1337.clone().with(CAMPAIGN_1.id), + // &events, + // ) + // .await + // .expect("Posted events"); + + // // leader single worker tick + // leader_worker.all_channels_tick().await; + // // follower single worker tick + // follower_worker.all_channels_tick().await; + + // let res = follower_sentry_with_propagate + // .get_last_approved(new_channel.id()) + // .await + // .expect("should retrieve"); + // assert!(res.last_approved.is_some(), "We have a last_approved pair"); + // let last_approved = res.last_approved.unwrap(); + // assert!( + // last_approved.new_state.is_some(), + // "We have a new_state in last_approved" + // ); + // assert!( + // last_approved.approve_state.is_some(), + // "We have approve_state in last_approved" + // ); + // let new_state_root = &last_approved.new_state.unwrap().msg.state_root; + // let approve_state_root = &last_approved.approve_state.unwrap().msg.state_root; + // assert_eq!( + // new_state_root, approve_state_root, + // "NewState and ApproveState state roots match" + // ); + + // accounting_balances + // .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) + // .expect("Should spend for Publisher"); + + // // Propagating a new NewState so that the follower has to generate an ApproveState message + // let new_state = get_new_state_msg( + // &leader_sentry, + // &accounting_balances, + // contracts_1337.token.info.precision.get(), + // ); + + // let approve_state = ApproveState { + // state_root: new_state.state_root.clone(), + // signature: new_state.signature.clone(), + // is_healthy: true, + // }; + + // // Posting new events + // post_new_events( + // &leader_sentry, + // token_chain_1337.clone().with(CAMPAIGN_1.id), + // &events, + // ) + // .await + // .expect("Posted events"); + // post_new_events( + // &follower_sentry, + // token_chain_1337.clone().with(CAMPAIGN_1.id), + // &events, + // ) + // .await + // .expect("Posted events"); + + // // leader single worker tick + // leader_worker.all_channels_tick().await; + // // follower single worker tick + // follower_worker.all_channels_tick().await; + + // // leader single worker tick + // leader_worker.all_channels_tick().await; + // // follower single worker tick + // follower_worker.all_channels_tick().await; + + // let res = follower_sentry_with_propagate + // .get_last_approved(new_channel.id()) + // .await + // .expect("should retrieve"); + // assert!(res.last_approved.is_some(), "We have a last_approved"); + // let new_last_approved = res.last_approved.unwrap(); + + // assert_ne!( + // &new_last_approved.new_state.unwrap().msg.state_root, + // new_state_root, + // "NewState is different from the last pair" + // ); + // assert_ne!( + // &new_last_approved.approve_state.unwrap().msg.state_root, + // approve_state_root, + // "ApproveState is different from the last pair" + // ); + // } + // } + + // fn get_new_state_msg( + // sentry: &SentryApi, + // accounting_balances: &Balances, + // precision: u8, + // ) -> NewState { + // let state_root = accounting_balances + // .encode(CAMPAIGN_1.channel.id(), precision) + // .expect("should encode"); + // let signature = sentry.adapter.sign(&state_root).expect("should sign"); + // NewState { + // state_root: state_root.to_string(), + // signature, + // balances: accounting_balances.clone().into_unchecked(), + // } + // } + + // fn get_test_accounting_balances() -> Balances { + // let mut accounting_balances = Balances::new(); + // accounting_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.leader.to_address(), + // UnifiedNum::from(27_000), + // ) + // .expect("Should spend for Leader"); + // accounting_balances + // .spend( + // CAMPAIGN_1.creator, + // CAMPAIGN_1.channel.follower.to_address(), + // UnifiedNum::from(18_000), + // ) + // .expect("Should spend for Follower"); + // accounting_balances + // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) + // .expect("Should spend for Publisher"); + // accounting_balances + // } } pub mod run { use std::{env::current_dir, net::SocketAddr, path::PathBuf}; From d73124231112b2d80e540eaccaa9045bb719244c Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Wed, 13 Apr 2022 15:51:08 +0300 Subject: [PATCH 17/21] test_harness - check CAMPAIGN_1 states after ticks --- primitives/src/sentry.rs | 4 +- test_harness/src/lib.rs | 543 +++++++++------------------------------ 2 files changed, 120 insertions(+), 427 deletions(-) diff --git a/primitives/src/sentry.rs b/primitives/src/sentry.rs index bf2cb34dc..9a34c0362 100644 --- a/primitives/src/sentry.rs +++ b/primitives/src/sentry.rs @@ -767,10 +767,10 @@ pub mod campaign_create { AdUnit, Address, Campaign, CampaignId, Channel, EventSubmission, UnifiedNum, }; - #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] - #[serde(rename_all = "camelCase")] /// All fields are present except the `CampaignId` which is randomly created /// This struct defines the Body of the request (in JSON) + #[derive(Debug, Clone, Serialize, Deserialize, PartialEq)] + #[serde(rename_all = "camelCase")] pub struct CreateCampaign { pub id: Option, pub channel: Channel, diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 3e62bb920..bc4f4cca0 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -254,30 +254,27 @@ mod tests { use super::*; use adapter::{ - ethereum::{ - test_util::{GANACHE_1, GANACHE_1337, KEYSTORES}, - UnlockedWallet, - }, + ethereum::test_util::{GANACHE_1, GANACHE_1337, KEYSTORES}, prelude::*, primitives::ChainOf, Adapter, Ethereum, }; use chrono::Utc; use primitives::{ - balances::{CheckedState, UncheckedState}, + balances::CheckedState, sentry::{ campaign_create::CreateCampaign, AccountingResponse, Event, SuccessResponse, CLICK, IMPRESSION, }, spender::Spender, - test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, IDS, PUBLISHER}, + test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, PUBLISHER}, util::{logging::new_logger, ApiUrl}, - validator::{ApproveState, Heartbeat, NewState}, + validator::{Heartbeat, NewState}, Balances, BigNum, Campaign, CampaignId, Channel, ChannelId, UnifiedNum, }; use reqwest::{Client, StatusCode}; use slog::info; - use validator_worker::{worker::Worker, GetStateRoot, SentryApi}; + use validator_worker::{worker::Worker, SentryApi}; #[tokio::test] #[ignore = "We use a snapshot, however, we have left this test for convenience"] @@ -482,7 +479,7 @@ mod tests { static CAMPAIGN_3: Lazy = Lazy::new(|| { use chrono::TimeZone; use primitives::{ - campaign::{Active, Pricing, PricingBounds, Validators}, + campaign::{Active, Pricing, Validators}, targeting::Rules, validator::ValidatorDesc, EventSubmission, @@ -528,24 +525,32 @@ mod tests { budget: UnifiedNum::from(2_000_000_000), validators, title: Some("Dummy Campaign in Chain #1".to_string()), - pricing_bounds: Some(PricingBounds { - impression: Some(Pricing { - // 0.00003000 - // Per 1000 = 0.03000000 - min: 3_000.into(), - // 0.00005000 - // Per 1000 = 0.05000000 - max: 5_000.into(), - }), - click: Some(Pricing { - // 0.00006000 - // Per 1000 = 0.06000000 - min: 6_000.into(), - // 0.00010000 - // Per 1000 = 0.10000000 - max: 10_000.into(), - }), - }), + pricing_bounds: vec![ + ( + IMPRESSION, + Pricing { + // 0.00003000 + // Per 1000 = 0.03000000 + min: 3_000.into(), + // 0.00005000 + // Per 1000 = 0.05000000 + max: 5_000.into(), + }, + ), + ( + CLICK, + Pricing { + // 0.00006000 + // Per 1000 = 0.06000000 + min: 6_000.into(), + // 0.00010000 + // Per 1000 = 0.10000000 + max: 10_000.into(), + }, + ), + ] + .into_iter() + .collect(), event_submission: Some(EventSubmission { allow: vec![] }), ad_units: vec![DUMMY_AD_UNITS[0].clone(), DUMMY_AD_UNITS[1].clone()], targeting_rules: Rules::new(), @@ -915,7 +920,7 @@ mod tests { } } - // Create Campaign 3 w/ Channel 3 using Advertiser on a different chain + // Create Campaign 3 w/ Channel 3 using Advertiser on a different chain (Chain #1) // In Leader & Follower sentries // Response: 200 Ok // POST /v5/campaign @@ -998,6 +1003,36 @@ mod tests { info!(setup.logger, "Channel 1 {:?} has empty Accounting because of no events have been submitted to any Campaign", CAMPAIGN_1.channel.id()); } + // All Channels should have a heartbeat message now + // Channel 1 + // Channel 2 + // Channel 3 + { + // Channel 1 + let _channel_1_heartbeat = leader_sentry + .get_our_latest_msg(CAMPAIGN_1.channel.id(), &["Heartbeat"]) + .await + .expect("Should fetch Heartbeat from Leader") + .map(|message| Heartbeat::try_from(message).expect("Should be Heartbeat")) + .expect("Should have a Heartbeat in Leader for the Campaign 1 channel"); + + // Channel 2 + let _channel_2_heartbeat = leader_sentry + .get_our_latest_msg(CAMPAIGN_2.channel.id(), &["Heartbeat"]) + .await + .expect("Should fetch Heartbeat from Leader") + .map(|message| Heartbeat::try_from(message).expect("Should be Heartbeat")) + .expect("Should have a Heartbeat in Leader for the Campaign 2 channel"); + + // Channel 3 + let _channel_2_heartbeat = leader_sentry + .get_our_latest_msg(CAMPAIGN_3.channel.id(), &["Heartbeat"]) + .await + .expect("Should fetch Heartbeat from Leader") + .map(|message| Heartbeat::try_from(message).expect("Should be Heartbeat")) + .expect("Should have a Heartbeat in Leader for the Campaign 3 channel"); + } + // Add new events for `CAMPAIGN_1` to sentry { let events = vec![ @@ -1117,69 +1152,71 @@ mod tests { }) .expect("Should have a NewState in Leader for the Campaign 1 channel"); - let newstate_follower = follower_sentry - .get_latest_msg( - CAMPAIGN_1.channel.id(), - leader_sentry.adapter.whoami(), - &["NewState"], - ) + // Check balances in Leader's NewState + { + let mut expected_balances = Balances::new(); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.leader.to_address(), + UnifiedNum::from_u64(27000), + ) + .expect("Should spend"); + expected_balances + .spend( + CAMPAIGN_1.creator, + CAMPAIGN_1.channel.follower.to_address(), + UnifiedNum::from_u64(18000), + ) + .expect("Should spend"); + expected_balances + .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(9000)) + .expect("Should spend"); + + pretty_assertions::assert_eq!( + newstate_leader.balances, + expected_balances, + "Balances are as expected" + ); + } + + let last_approved_response_follower = follower_sentry + .get_last_approved(CAMPAIGN_1.channel.id()) .await - .expect("Should fetch NewState received from Leader in Follower sentry") - .map(|message| { - NewState::::try_from(message) - .expect("Should be NewState with Checked Balances") - }) - .expect("Should have a NewState in Follower for the Campaign 1 channel"); + .expect("Should fetch APprove state from Follower"); - let heartbeat = leader_sentry - .get_our_latest_msg(CAMPAIGN_1.channel.id(), &["Heartbeat"]) + let last_approved_response_leader = leader_sentry + .get_last_approved(CAMPAIGN_1.channel.id()) .await - .expect("Should fetch Heartbeat from Leader") - .map(|message| { - Heartbeat::try_from(message).expect("Should be Heartbeat with Checked Balances") - }) - .expect("Should have a Heartbeat in Leader for the Campaign 1 channel"); + .expect("Should fetch Approve state from Leader"); pretty_assertions::assert_eq!( - newstate_leader, - newstate_follower, - "Leader/Follower NewStates match" + last_approved_response_leader, + last_approved_response_follower, + "Leader and Follower should both have the same last Approved response" ); - let mut expected_balances = Balances::new(); - expected_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.leader.to_address(), - UnifiedNum::from_u64(27000), - ) - .expect("Should spend"); - expected_balances - .spend( - CAMPAIGN_1.creator, - CAMPAIGN_1.channel.follower.to_address(), - UnifiedNum::from_u64(18000), - ) - .expect("Should spend"); - expected_balances - .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(9000)) - .expect("Should spend"); + + let last_approved_follower = last_approved_response_follower + .last_approved + .expect("Should have last approved messages for the events we've submitted"); + + let last_approved_leader = last_approved_response_leader + .last_approved + .expect("Should have last approved messages for the events we've submitted"); pretty_assertions::assert_eq!( - newstate_leader.balances, - expected_balances, - "Balances are as expected" + last_approved_leader, + last_approved_follower, + "Last Approved responses should be the same for both Leader & Follower" ); - } - // Running validator worker tests - // test_leader_and_follower_loop( - // leader_sentry, - // follower_sentry, - // leader_worker, - // follower_worker, - // events, - // ) - // .await; + pretty_assertions::assert_eq!( + newstate_leader, + last_approved_follower.new_state.map(|new_state| new_state.msg.0.clone().try_checked().expect("Should have CheckedState Balances")) + .expect("Should have last approved NewState from submitted events"), + "Last approved NewState in Follower should be the same as the last NewState from Leader" + ); + } } async fn setup_sentry(validator: &TestValidator) -> adapter::ethereum::LockedAdapter { @@ -1263,350 +1300,6 @@ mod tests { .send() .await?) } - - // async fn test_leader_and_follower_loop( - // leader_sentry: SentryApi, - // follower_sentry: SentryApi, - // leader_worker: Worker>, - // follower_worker: Worker>, - // events: Vec, - // ) { - // Testing propagation and retrieval of NewState messages, verification of balances - // We make a NewState message, propagate it, update the balances and send a second message with the new balances - // { - // // Retrieving the NewState message from both validators - // let newstate_leader = leader_sentry_with_propagate - // .get_our_latest_msg(new_channel.id(), &["NewState"]) - // .await - // .expect("should fetch") - // .expect("Should have a NewState for the new channel"); - - // let newstate_follower = follower_sentry_with_propagate - // .get_our_latest_msg(new_channel.id(), &["NewState"]) - // .await - // .expect("should fetch") - // .unwrap(); - // let heartbeat = leader_sentry_with_propagate - // .get_our_latest_msg(new_channel.id(), &["Heartbeat"]) - // .await - // .expect("should fetch") - // .unwrap(); - // println!("Heartbeat - {:?}", heartbeat); - - // let newstate_leader = - // NewState::::try_from(newstate_leader).expect("Should convert"); - // let newstate_follower = - // NewState::::try_from(newstate_follower).expect("Should convert"); - - // assert_eq!( - // newstate_leader.state_root, newstate_follower.state_root, - // "Leader/Follower NewStates match" - // ); - // let mut expected_balances = Balances::new(); - // expected_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.leader.to_address(), - // UnifiedNum::from_u64(27000), - // ) - // .expect("Should spend"); - // expected_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.follower.to_address(), - // UnifiedNum::from_u64(18000), - // ) - // .expect("Should spend"); - // expected_balances - // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(9000)) - // .expect("Should spend"); - - // assert_eq!( - // newstate_leader.balances, expected_balances, - // "Balances are as expected" - // ); - - // // Balances are being changed since the last propagated message ensuring that a new NewState will be generated - // accounting_balances - // .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) - // .expect("Should spend for Publisher"); - // let new_state = get_new_state_msg( - // &leader_sentry, - // &accounting_balances, - // contracts_1337.token.info.precision.get(), - // ); - - // Posting new events - // post_new_events( - // &leader_sentry, - // token_chain_1337.clone().with(CAMPAIGN_1.id), - // &events, - // ) - // .await - // .expect("Posted events"); - // post_new_events( - // &follower_sentry, - // token_chain_1337.clone().with(CAMPAIGN_1.id), - // &events, - // ) - // .await - // .expect("Posted events"); - - // // leader single worker tick - // leader_worker.all_channels_tick().await; - // // follower single worker tick - // follower_worker.all_channels_tick().await; - - // let newstate = leader_sentry_with_propagate - // .get_our_latest_msg(new_channel.id(), &["NewState"]) - // .await - // .expect("should fetch") - // .unwrap(); - - // let newstate_follower = follower_sentry_with_propagate - // .get_our_latest_msg(new_channel.id(), &["NewState"]) - // .await - // .expect("should fetch") - // .unwrap(); - - // let newstate = NewState::::try_from(newstate).expect("Should convert"); - // let newstate_follower = - // NewState::::try_from(newstate_follower).expect("Should convert"); - - // assert_eq!( - // newstate.state_root, newstate_follower.state_root, - // "Stateroots of the new messages match" - // ); - // let mut expected_balances = Balances::new(); - // expected_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.leader.to_address(), - // UnifiedNum::from_u64(27000), - // ) - // .expect("Should spend"); - // expected_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.follower.to_address(), - // UnifiedNum::from_u64(18000), - // ) - // .expect("Should spend"); - // expected_balances - // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(18000)) - // .expect("Should spend"); - // assert_eq!( - // newstate.balances, expected_balances, - // "Balances are as expected" - // ); - // } worker tick - // leader_worker.all_channels_tick().await; - // // follower single worker tick - // follower_worker.all_channels_tick().await; - - // let newstate = leader_sentry_with_propagate - // .get_our_latest_msg(new_channel.id(), &["NewState"]) - // .await - // .expect("should fetch") - // .unwrap(); - - // let newstate_follower = follower_sentry_with_propagate - // .get_our_latest_msg(new_channel.id(), &["NewState"]) - // .await - // .expect("should fetch") - // .unwrap(); - - // let newstate = NewState::::try_from(newstate).expect("Should convert"); - // let newstate_follower = - // NewState::::try_from(newstate_follower).expect("Should convert"); - - // assert_eq!( - // newstate.state_root, newstate_follower.state_root, - // "Stateroots of the new messages match" - // ); - // let mut expected_balances = Balances::new(); - // expected_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.leader.to_address(), - // UnifiedNum::from_u64(27000), - // ) - // .expect("Should spend"); - // expected_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.follower.to_address(), - // UnifiedNum::from_u64(18000), - // ) - // .expect("Should spend"); - // expected_balances - // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from_u64(18000)) - // .expect("Should spend"); - // assert_eq!( - // newstate.balances, expected_balances, - // "Balances are as expected" - // ); - // } - - // Testing ApproveState propagation, ensures the validator worker and follower are running properly - // We propagate a NewState/ApproveState pair, verify they match, then we update - // { - // let mut accounting_balances = get_test_accounting_balances(); - - // let new_state = get_new_state_msg( - // &leader_sentry, - // &accounting_balances, - // contracts_1337.token.info.precision.get(), - // ); - - // let approve_state = ApproveState { - // state_root: new_state.state_root.clone(), - // signature: new_state.signature.clone(), - // is_healthy: true, - // }; - - // // Posting new events - // post_new_events( - // &leader_sentry, - // token_chain_1337.clone().with(CAMPAIGN_1.id), - // &events, - // ) - // .await - // .expect("Posted events"); - // post_new_events( - // &follower_sentry, - // token_chain_1337.clone().with(CAMPAIGN_1.id), - // &events, - // ) - // .await - // .expect("Posted events"); - - // // leader single worker tick - // leader_worker.all_channels_tick().await; - // // follower single worker tick - // follower_worker.all_channels_tick().await; - - // let res = follower_sentry_with_propagate - // .get_last_approved(new_channel.id()) - // .await - // .expect("should retrieve"); - // assert!(res.last_approved.is_some(), "We have a last_approved pair"); - // let last_approved = res.last_approved.unwrap(); - // assert!( - // last_approved.new_state.is_some(), - // "We have a new_state in last_approved" - // ); - // assert!( - // last_approved.approve_state.is_some(), - // "We have approve_state in last_approved" - // ); - // let new_state_root = &last_approved.new_state.unwrap().msg.state_root; - // let approve_state_root = &last_approved.approve_state.unwrap().msg.state_root; - // assert_eq!( - // new_state_root, approve_state_root, - // "NewState and ApproveState state roots match" - // ); - - // accounting_balances - // .spend(campaign.creator, *PUBLISHER, UnifiedNum::from(9_000)) - // .expect("Should spend for Publisher"); - - // // Propagating a new NewState so that the follower has to generate an ApproveState message - // let new_state = get_new_state_msg( - // &leader_sentry, - // &accounting_balances, - // contracts_1337.token.info.precision.get(), - // ); - - // let approve_state = ApproveState { - // state_root: new_state.state_root.clone(), - // signature: new_state.signature.clone(), - // is_healthy: true, - // }; - - // // Posting new events - // post_new_events( - // &leader_sentry, - // token_chain_1337.clone().with(CAMPAIGN_1.id), - // &events, - // ) - // .await - // .expect("Posted events"); - // post_new_events( - // &follower_sentry, - // token_chain_1337.clone().with(CAMPAIGN_1.id), - // &events, - // ) - // .await - // .expect("Posted events"); - - // // leader single worker tick - // leader_worker.all_channels_tick().await; - // // follower single worker tick - // follower_worker.all_channels_tick().await; - - // // leader single worker tick - // leader_worker.all_channels_tick().await; - // // follower single worker tick - // follower_worker.all_channels_tick().await; - - // let res = follower_sentry_with_propagate - // .get_last_approved(new_channel.id()) - // .await - // .expect("should retrieve"); - // assert!(res.last_approved.is_some(), "We have a last_approved"); - // let new_last_approved = res.last_approved.unwrap(); - - // assert_ne!( - // &new_last_approved.new_state.unwrap().msg.state_root, - // new_state_root, - // "NewState is different from the last pair" - // ); - // assert_ne!( - // &new_last_approved.approve_state.unwrap().msg.state_root, - // approve_state_root, - // "ApproveState is different from the last pair" - // ); - // } - // } - - // fn get_new_state_msg( - // sentry: &SentryApi, - // accounting_balances: &Balances, - // precision: u8, - // ) -> NewState { - // let state_root = accounting_balances - // .encode(CAMPAIGN_1.channel.id(), precision) - // .expect("should encode"); - // let signature = sentry.adapter.sign(&state_root).expect("should sign"); - // NewState { - // state_root: state_root.to_string(), - // signature, - // balances: accounting_balances.clone().into_unchecked(), - // } - // } - - // fn get_test_accounting_balances() -> Balances { - // let mut accounting_balances = Balances::new(); - // accounting_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.leader.to_address(), - // UnifiedNum::from(27_000), - // ) - // .expect("Should spend for Leader"); - // accounting_balances - // .spend( - // CAMPAIGN_1.creator, - // CAMPAIGN_1.channel.follower.to_address(), - // UnifiedNum::from(18_000), - // ) - // .expect("Should spend for Follower"); - // accounting_balances - // .spend(CAMPAIGN_1.creator, *PUBLISHER, UnifiedNum::from(9_000)) - // .expect("Should spend for Publisher"); - // accounting_balances - // } } pub mod run { use std::{env::current_dir, net::SocketAddr, path::PathBuf}; From b4304e890aff548fb265750b1e7f8275110184a5 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Wed, 13 Apr 2022 18:13:59 +0300 Subject: [PATCH 18/21] validator_worker - SentryApi - improve test setup --- sentry/src/routes/campaign.rs | 9 +--- sentry/src/routes/channel.rs | 8 +-- test_harness/src/lib.rs | 4 +- validator_worker/src/sentry_interface.rs | 64 ++++++++++++------------ 4 files changed, 41 insertions(+), 44 deletions(-) diff --git a/sentry/src/routes/campaign.rs b/sentry/src/routes/campaign.rs index 8fab0fb2a..f383ee211 100644 --- a/sentry/src/routes/campaign.rs +++ b/sentry/src/routes/campaign.rs @@ -1468,14 +1468,7 @@ mod test { Validators::new((dummy_leader_2.clone(), DUMMY_VALIDATOR_FOLLOWER.clone())); campaign_new_leader.created = Utc.ymd(2021, 2, 1).and_hms(8, 0, 0); - let chain_1_token = GANACHE_CONFIG - .chains - .get("Ganache #1") - .unwrap() - .tokens - .get("Mocked TOKEN 2") - .unwrap() - .address; + let chain_1_token = GANACHE_CONFIG.chains["Ganache #1"].tokens["Mocked TOKEN 1"].address; // Setting up new follower and a channel and campaign which use it on Ganache #1 let dummy_follower_2 = ValidatorDesc { id: IDS[&GUARDIAN], diff --git a/sentry/src/routes/channel.rs b/sentry/src/routes/channel.rs index c7e9bd6fa..35b96c976 100644 --- a/sentry/src/routes/channel.rs +++ b/sentry/src/routes/channel.rs @@ -938,9 +938,11 @@ mod test { total: BigNum::from_str("100000000000000000000").expect("should convert"), // 100 DAI still_on_create2: BigNum::from_str("1000000000000000000").expect("should convert"), // 1 DAI }; - app.adapter - .client - .add_deposit_call(channel_context.context.id(), *CREATOR, deposit.clone()); + app.adapter.client.add_deposit_call( + channel_context.context.id(), + *CREATOR, + deposit.clone(), + ); insert_channel(&app.pool, channel_context.context) .await diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index bc4f4cca0..918c61e36 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -36,7 +36,7 @@ pub static SNAPSHOT_CONTRACTS_1337: Lazy = Lazy::new(|| { let token_info = ganache_chain_info .tokens .get("Mocked TOKEN 1337") - .expect("Ganache config should contain for Chain #1337 the Mocked TOKEN"); + .expect("Ganache config should contain for Chain #1337 the Mocked TOKEN 1337"); let chain = ganache_chain_info.chain.clone(); let token = Erc20Token::new(&web3, token_info.clone()); @@ -68,7 +68,7 @@ pub static SNAPSHOT_CONTRACTS_1: Lazy = Lazy::new(|| { let token_info = ganache_chain_info .tokens .get("Mocked TOKEN 1") - .expect("Ganache config should contain for Chain #1 the Mocked TOKEN"); + .expect("Ganache config should contain for Chain #1 the Mocked TOKEN 1"); let token = Erc20Token::new(&web3, token_info.clone()); diff --git a/validator_worker/src/sentry_interface.rs b/validator_worker/src/sentry_interface.rs index f5f2b1191..6d4c88dc1 100644 --- a/validator_worker/src/sentry_interface.rs +++ b/validator_worker/src/sentry_interface.rs @@ -619,7 +619,10 @@ pub mod campaigns { #[cfg(test)] mod test { use super::*; - use adapter::dummy::{Adapter, Dummy, Options}; + use adapter::{ + dummy::{Adapter, Dummy, Options}, + ethereum::test_util::GANACHE_INFO_1, + }; use primitives::{ campaign::validators::Validators as CampaignValidators, config::{configuration, Environment, GANACHE_CONFIG}, @@ -627,7 +630,7 @@ mod test { campaign_list::CampaignListResponse, channel_list::ChannelListResponse, Pagination, }, test_util::{ - discard_logger, ADVERTISER, ADVERTISER_2, CREATOR, DUMMY_CAMPAIGN, + discard_logger, ADVERTISER, ADVERTISER_2, CREATOR, DUMMY_AUTH, DUMMY_CAMPAIGN, DUMMY_VALIDATOR_FOLLOWER, DUMMY_VALIDATOR_LEADER, FOLLOWER, GUARDIAN, IDS, LEADER, LEADER_2, PUBLISHER, PUBLISHER_2, }, @@ -639,6 +642,22 @@ mod test { Mock, MockServer, ResponseTemplate, }; + /// Uses the [`Dummy`] adapter with [`DUMMY_AUTH`] as the authentication tokens. + /// Sentry url can be provided, for `wiremock` to be able to mock the calls in [`SentryApi`]. + pub fn setup_dummy_sentry( + whoami: ValidatorId, + config: Config, + sentry_url: ApiUrl, + ) -> SentryApi { + let adapter = Adapter::with_unlocked(Dummy::init(Options { + dummy_identity: whoami, + dummy_auth_tokens: DUMMY_AUTH.clone(), + })); + let logger = discard_logger(); + + SentryApi::new(adapter, logger, config, sentry_url).expect("Should build sentry") + } + #[tokio::test] async fn test_get_all_spenders() { let server = MockServer::start().await; @@ -744,11 +763,9 @@ mod test { let mut config = configuration(Environment::Development, None).expect("Should get Config"); config.spendable_find_limit = 2; - let adapter = Adapter::with_unlocked(Dummy::init(Options { + let leader_adapter = Adapter::with_unlocked(Dummy::init(Options { dummy_identity: IDS[&LEADER], - dummy_auth_tokens: vec![(IDS[&LEADER].to_address(), "AUTH_Leader".into())] - .into_iter() - .collect(), + dummy_auth_tokens: DUMMY_AUTH.clone(), })); let logger = discard_logger(); @@ -757,8 +774,8 @@ mod test { .expect("Should find Dummy campaign token in config") .with_channel(DUMMY_CAMPAIGN.channel); - let sentry = - SentryApi::new(adapter, logger, config, sentry_url).expect("Should build sentry"); + let sentry = SentryApi::new(leader_adapter, logger, config, sentry_url) + .expect("Should build sentry"); let mut res = sentry .get_all_spenders(&channel_context) @@ -788,14 +805,7 @@ mod test { #[tokio::test] async fn test_collecting_and_channels_and_campaigns() { let server = MockServer::start().await; - let chain_1_token = GANACHE_CONFIG - .chains - .get("Ganache #1") - .unwrap() - .tokens - .get("Mocked TOKEN 2") - .unwrap() - .address; + let chain_1_token = GANACHE_INFO_1.tokens["Mocked TOKEN 1"].address; // Setting up new leader and a channel and campaign which use it on Ganache #1337 let dummy_leader_2 = ValidatorDesc { @@ -851,21 +861,13 @@ mod test { campaign_new_leader_and_follower.validators = CampaignValidators::new((dummy_leader_2.clone(), dummy_follower_2.clone())); - // Initializing SentryApi instance let sentry_url = ApiUrl::from_str(&server.uri()).expect("Should parse"); - let mut config = configuration(Environment::Development, None).expect("Should get Config"); - config.spendable_find_limit = 2; - let adapter = Adapter::with_unlocked(Dummy::init(Options { - dummy_identity: IDS[&LEADER], - dummy_auth_tokens: vec![(IDS[&LEADER].to_address(), "AUTH_Leader".into())] - .into_iter() - .collect(), - })); - let logger = discard_logger(); + let mut config = GANACHE_CONFIG.clone(); + config.campaigns_find_limit = 2; - let sentry = SentryApi::new(adapter, logger, config.clone(), sentry_url.clone()) - .expect("Should build sentry"); + // Initializing SentryApi instance + let leader_sentry = setup_dummy_sentry(IDS[&LEADER], config.clone(), sentry_url.clone()); // Getting Wiremock to return the campaigns when called let first_page_response = CampaignListResponse { @@ -929,7 +931,7 @@ mod test { .with_channel(channel_new_leader_and_follower), ); - let (channels, chains_validators) = sentry + let (channels, chains_validators) = leader_sentry .collect_channels() .await .expect("Should collect channels"); @@ -986,7 +988,7 @@ mod test { campaign_new_follower.clone(), campaign_new_leader_and_follower.clone(), ]; - let res = campaigns::all_campaigns(sentry.client.clone(), &sentry_url.clone(), None) + let res = campaigns::all_campaigns(leader_sentry.client.clone(), &sentry_url.clone(), None) .await .expect("Should get all campaigns"); assert_eq!(res, all_campaigns, "All campaigns are present"); @@ -1033,7 +1035,7 @@ mod test { channel_new_leader_and_follower, ]; let res = channels::all_channels( - sentry.client.clone(), + leader_sentry.client.clone(), &sentry_url.clone(), DUMMY_VALIDATOR_LEADER.id, ) From a9c5da2c2998231aac8fbbcbd80fe7ed31068453 Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Wed, 13 Apr 2022 18:44:55 +0300 Subject: [PATCH 19/21] worker - Cargo - adapter - enable test-util feature --- validator_worker/Cargo.toml | 2 +- validator_worker/src/sentry_interface.rs | 7 ++++--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/validator_worker/Cargo.toml b/validator_worker/Cargo.toml index b3dc1e4c7..c45853ff5 100644 --- a/validator_worker/Cargo.toml +++ b/validator_worker/Cargo.toml @@ -17,7 +17,7 @@ path = "src/lib.rs" [dependencies] # Primitve primitives = { path = "../primitives", features = ["test-util"] } -adapter = { version = "0.2", path = "../adapter" } +adapter = { version = "0.2", path = "../adapter", features = ["test-util"] } chrono = { version = "0.4", features = ["serde"] } num = "0.4" num-traits = "0.2" diff --git a/validator_worker/src/sentry_interface.rs b/validator_worker/src/sentry_interface.rs index 6d4c88dc1..b055d6319 100644 --- a/validator_worker/src/sentry_interface.rs +++ b/validator_worker/src/sentry_interface.rs @@ -988,9 +988,10 @@ mod test { campaign_new_follower.clone(), campaign_new_leader_and_follower.clone(), ]; - let res = campaigns::all_campaigns(leader_sentry.client.clone(), &sentry_url.clone(), None) - .await - .expect("Should get all campaigns"); + let res = + campaigns::all_campaigns(leader_sentry.client.clone(), &sentry_url.clone(), None) + .await + .expect("Should get all campaigns"); assert_eq!(res, all_campaigns, "All campaigns are present"); } // test all_channels From 90bdde2c3f730599cd5bc8bcab8f10364d98e1ce Mon Sep 17 00:00:00 2001 From: Lachezar Lechev Date: Thu, 14 Apr 2022 10:16:09 +0300 Subject: [PATCH 20/21] test_harness - fix failing test for LastApproved --- primitives/src/sentry.rs | 2 +- test_harness/src/lib.rs | 98 +++++++++++++++++++++++++++++++++------- 2 files changed, 83 insertions(+), 17 deletions(-) diff --git a/primitives/src/sentry.rs b/primitives/src/sentry.rs index 9a34c0362..adc221c76 100644 --- a/primitives/src/sentry.rs +++ b/primitives/src/sentry.rs @@ -39,7 +39,7 @@ pub struct LastApproved { pub approve_state: Option>, } -#[derive(Serialize, Deserialize, Debug, PartialEq, Eq)] +#[derive(Serialize, Deserialize, Clone, Debug, PartialEq, Eq)] pub struct MessageResponse { pub from: ValidatorId, pub received: DateTime, diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index 918c61e36..e42014c6b 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -267,7 +267,7 @@ mod tests { IMPRESSION, }, spender::Spender, - test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, PUBLISHER}, + test_util::{ADVERTISER, DUMMY_AD_UNITS, DUMMY_IPFS, GUARDIAN, GUARDIAN_2, IDS, PUBLISHER}, util::{logging::new_logger, ApiUrl}, validator::{Heartbeat, NewState}, Balances, BigNum, Campaign, CampaignId, Channel, ChannelId, UnifiedNum, @@ -1142,7 +1142,7 @@ mod tests { // Check ApproveState of the Follower // Assert that it exists in both validators { - let newstate_leader = leader_sentry + let latest_new_state_leader = leader_sentry .get_our_latest_msg(CAMPAIGN_1.channel.id(), &["NewState"]) .await .expect("Should fetch NewState from Leader (Who am I) in Leader sentry") @@ -1174,7 +1174,7 @@ mod tests { .expect("Should spend"); pretty_assertions::assert_eq!( - newstate_leader.balances, + latest_new_state_leader.balances, expected_balances, "Balances are as expected" ); @@ -1190,9 +1190,23 @@ mod tests { .await .expect("Should fetch Approve state from Leader"); + // Due to timestamp differences in the `received` field + // we can only `assert_eq!` the messages themselves pretty_assertions::assert_eq!( - last_approved_response_leader, - last_approved_response_follower, + last_approved_response_leader + .heartbeats + .expect("Leader response should have heartbeats") + .clone() + .into_iter() + .map(|message| message.msg) + .collect::>(), + last_approved_response_follower + .heartbeats + .expect("Follower response should have heartbeats") + .clone() + .into_iter() + .map(|message| message.msg) + .collect::>(), "Leader and Follower should both have the same last Approved response" ); @@ -1204,18 +1218,70 @@ mod tests { .last_approved .expect("Should have last approved messages for the events we've submitted"); - pretty_assertions::assert_eq!( - last_approved_leader, - last_approved_follower, - "Last Approved responses should be the same for both Leader & Follower" - ); + // Due to the received time that can be different in messages + // we must check the actual ValidatorMessage without the timestamps + { + let msg_new_state_leader = last_approved_leader + .new_state + .expect("Leader should have last approved NewState"); - pretty_assertions::assert_eq!( - newstate_leader, - last_approved_follower.new_state.map(|new_state| new_state.msg.0.clone().try_checked().expect("Should have CheckedState Balances")) - .expect("Should have last approved NewState from submitted events"), - "Last approved NewState in Follower should be the same as the last NewState from Leader" - ); + assert_eq!( + msg_new_state_leader.from, IDS[&LEADER], + "NewState should be received from Leader" + ); + + let msg_approve_state_leader = last_approved_leader + .approve_state + .expect("Leader should have last approved ApproveState"); + + assert_eq!( + msg_approve_state_leader.from, IDS[&FOLLOWER], + "ApproveState should be received from Follower" + ); + + let msg_new_state_follower = last_approved_follower + .new_state + .expect("Follower should have last approved NewState"); + + assert_eq!( + msg_new_state_follower.from, IDS[&LEADER], + "NewState should be received from Leader" + ); + + let msg_approve_state_follower = last_approved_follower + .approve_state + .expect("Follower should have last approved ApproveState"); + + assert_eq!( + msg_approve_state_follower.from, IDS[&FOLLOWER], + "ApproveState should be received from Follower" + ); + + let new_state_leader = msg_new_state_leader + .msg + .clone() + .into_inner() + .try_checked() + .expect("NewState should have valid CheckedState Balances"); + + let new_state_follower = msg_new_state_follower + .msg + .clone() + .into_inner() + .try_checked() + .expect("NewState should have valid CheckedState Balances"); + + assert_eq!( + new_state_leader, new_state_follower, + "Last approved NewState in Leader & Follower should be the same" + ); + + pretty_assertions::assert_eq!( + latest_new_state_leader, + new_state_leader, + "Latest NewState from Leader should be the same as last approved NewState from Leader & Follower" + ); + } } } From 6b366cee794878ea7c1a0410925324f5294af3ed Mon Sep 17 00:00:00 2001 From: Lachezar Lechev <8925621+elpiel@users.noreply.github.com> Date: Fri, 15 Apr 2022 10:41:47 +0300 Subject: [PATCH 21/21] test_harness - fix PR review comment Co-authored-by: Simeon Nakov --- test_harness/src/lib.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test_harness/src/lib.rs b/test_harness/src/lib.rs index e42014c6b..5b5920657 100644 --- a/test_harness/src/lib.rs +++ b/test_harness/src/lib.rs @@ -1025,7 +1025,7 @@ mod tests { .expect("Should have a Heartbeat in Leader for the Campaign 2 channel"); // Channel 3 - let _channel_2_heartbeat = leader_sentry + let _channel_3_heartbeat = leader_sentry .get_our_latest_msg(CAMPAIGN_3.channel.id(), &["Heartbeat"]) .await .expect("Should fetch Heartbeat from Leader")