From d24a2052bd32ea97fcb1875ab9bf5805e924040c Mon Sep 17 00:00:00 2001 From: themicp Date: Tue, 16 Jan 2024 15:30:21 +0200 Subject: [PATCH 1/3] Support decoding of legacy transactions/receipts + tests --- .../light-client/src/lightclient/helpers.rs | 7 ++ .../light-client/src/lightclient/tests.rs | 42 +++++++++- .../light-client/testdata/legacy_receipt.json | 1 + types/src/execution.rs | 80 ++++++++++--------- 4 files changed, 88 insertions(+), 42 deletions(-) create mode 100644 contracts/light-client/testdata/legacy_receipt.json diff --git a/contracts/light-client/src/lightclient/helpers.rs b/contracts/light-client/src/lightclient/helpers.rs index 42d76c42..c39ed60b 100644 --- a/contracts/light-client/src/lightclient/helpers.rs +++ b/contracts/light-client/src/lightclient/helpers.rs @@ -432,6 +432,13 @@ pub mod test_helpers { update } + pub fn get_legacy_verification_data() -> Vec { + let file_name = "testdata/legacy_receipt.json"; + let file = File::open(file_name).unwrap(); + + serde_json::from_reader(file).unwrap() + } + pub fn get_batched_data( historical: bool, finalization: &str, diff --git a/contracts/light-client/src/lightclient/tests.rs b/contracts/light-client/src/lightclient/tests.rs index 79737fba..e857ed59 100644 --- a/contracts/light-client/src/lightclient/tests.rs +++ b/contracts/light-client/src/lightclient/tests.rs @@ -3,8 +3,8 @@ pub mod tests { use std::time::{SystemTime, UNIX_EPOCH}; use crate::lightclient::helpers::test_helpers::{ - filter_message_variants, get_batched_data, mock_contractcall_message_with_log, - mock_workerset_message_with_log, + filter_message_variants, get_batched_data, get_legacy_verification_data, + mock_contractcall_message_with_log, mock_workerset_message_with_log, }; use crate::lightclient::helpers::{ calc_sync_period, compare_content_with_log, extract_logs_from_receipt_proof, @@ -24,7 +24,7 @@ pub mod tests { use types::alloy_primitives::Address; use types::common::ContentVariant; use types::consensus::{Bootstrap, OptimisticUpdate}; - use types::execution::GatewayEvent; + use types::execution::{ContractCallBase, GatewayEvent}; use types::lightclient::LightClientState; use types::proofs::{nonempty, AncestryProof, UpdateVariant}; use types::ssz_rs::{Bitvector, Merkleized, Node}; @@ -386,6 +386,42 @@ pub mod tests { .is_err()); } + #[test] + fn test_parse_logs_from_legacy_receipt() { + let legacy_receipt = get_legacy_verification_data(); + + let logs_result = parse_logs_from_receipt(&legacy_receipt); + assert!(logs_result.is_ok()); + + let parse_result = parse_log(&logs_result.unwrap().0[7]); + assert!(parse_result.is_ok()); + + assert_eq!( + parse_result.unwrap(), + GatewayEvent::ContactCall(ContractCallBase { + source_address: Some( + hex::decode("481a2aae41cd34832ddcf5a79404538bb2c02bc8") + .unwrap() + .as_slice() + .try_into() + .unwrap() + ), + destination_chain: Some(String::from("osmosis-7")), + destination_address: Some(String::from( + "osmo1zl9ztmwe2wcdvv9std8xn06mdaqaqm789rutmazfh3z869zcax4sv0ctqw" + )), + payload_hash: Some( + vec![ + 229, 110, 107, 115, 37, 22, 199, 64, 219, 239, 95, 60, 169, 125, 156, 99, + 142, 37, 17, 70, 214, 194, 31, 64, 39, 194, 58, 132, 172, 220, 90, 201 + ] + .try_into() + .unwrap() + ) + }) + ); + } + #[test] fn test_parse_logs_from_receipt() { let verification_data = get_batched_data(false, "finality").1; diff --git a/contracts/light-client/testdata/legacy_receipt.json b/contracts/light-client/testdata/legacy_receipt.json new file mode 100644 index 00000000..10670f79 --- /dev/null +++ b/contracts/light-client/testdata/legacy_receipt.json @@ -0,0 +1 @@ +[249, 11, 87, 1, 131, 51, 25, 166, 185, 1, 0, 0, 32, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 128, 0, 0, 8, 0, 2, 0, 1, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 2, 9, 0, 0, 0, 0, 0, 0, 0, 0, 4, 0, 0, 0, 0, 0, 0, 72, 0, 0, 0, 32, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 128, 0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 1, 0, 1, 8, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 72, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 32, 0, 4, 0, 0, 0, 0, 0, 1, 0, 128, 0, 0, 0, 0, 0, 0, 32, 0, 0, 64, 66, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 16, 64, 0, 16, 0, 0, 0, 0, 0, 0, 32, 0, 0, 0, 0, 0, 8, 0, 0, 0, 2, 0, 0, 0, 2, 0, 0, 16, 0, 0, 0, 0, 0, 0, 0, 64, 0, 0, 0, 0, 0, 0, 0, 8, 249, 10, 76, 248, 122, 148, 180, 251, 242, 113, 20, 63, 79, 191, 123, 145, 165, 222, 211, 24, 5, 228, 43, 34, 8, 214, 248, 66, 160, 225, 255, 252, 196, 146, 61, 4, 181, 89, 244, 210, 154, 139, 252, 108, 218, 4, 235, 91, 13, 60, 70, 7, 81, 194, 64, 44, 92, 92, 201, 16, 156, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 37, 13, 86, 48, 180, 207, 83, 151, 57, 223, 44, 93, 172, 180, 198, 89, 242, 72, 141, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 134, 242, 111, 193, 0, 0, 248, 155, 148, 180, 251, 242, 113, 20, 63, 79, 191, 123, 145, 165, 222, 211, 24, 5, 228, 43, 34, 8, 214, 248, 99, 160, 221, 242, 82, 173, 27, 226, 200, 155, 105, 194, 176, 104, 252, 55, 141, 170, 149, 43, 167, 241, 99, 196, 161, 22, 40, 245, 90, 77, 245, 35, 179, 239, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 37, 13, 86, 48, 180, 207, 83, 151, 57, 223, 44, 93, 172, 180, 198, 89, 242, 72, 141, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 153, 107, 48, 241, 218, 62, 60, 15, 254, 53, 147, 104, 220, 255, 214, 121, 103, 8, 54, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 134, 242, 111, 193, 0, 0, 248, 155, 148, 37, 77, 6, 243, 59, 220, 91, 142, 224, 91, 46, 164, 114, 16, 126, 48, 2, 38, 101, 154, 248, 99, 160, 221, 242, 82, 173, 27, 226, 200, 155, 105, 194, 176, 104, 252, 55, 141, 170, 149, 43, 167, 241, 99, 196, 161, 22, 40, 245, 90, 77, 245, 35, 179, 239, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 94, 153, 107, 48, 241, 218, 62, 60, 15, 254, 53, 147, 104, 220, 255, 214, 121, 103, 8, 54, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 26, 42, 174, 65, 205, 52, 131, 45, 220, 245, 167, 148, 4, 83, 139, 178, 192, 43, 200, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 180, 246, 248, 121, 148, 94, 153, 107, 48, 241, 218, 62, 60, 15, 254, 53, 147, 104, 220, 255, 214, 121, 103, 8, 54, 225, 160, 28, 65, 30, 154, 150, 224, 113, 36, 28, 47, 33, 247, 114, 107, 23, 174, 137, 227, 202, 180, 199, 139, 229, 14, 6, 43, 3, 169, 255, 251, 186, 209, 184, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 44, 116, 62, 40, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 98, 9, 144, 120, 50, 65, 144, 156, 248, 252, 148, 94, 153, 107, 48, 241, 218, 62, 60, 15, 254, 53, 147, 104, 220, 255, 214, 121, 103, 8, 54, 248, 99, 160, 215, 138, 217, 95, 164, 108, 153, 75, 101, 81, 208, 218, 133, 252, 39, 95, 230, 19, 206, 55, 101, 127, 184, 213, 227, 209, 48, 132, 1, 89, 216, 34, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 122, 37, 13, 86, 48, 180, 207, 83, 151, 57, 223, 44, 93, 172, 180, 198, 89, 242, 72, 141, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 26, 42, 174, 65, 205, 52, 131, 45, 220, 245, 167, 148, 4, 83, 139, 178, 192, 43, 200, 184, 128, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 35, 134, 242, 111, 193, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 180, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 249, 2, 29, 148, 190, 64, 111, 1, 137, 160, 180, 207, 58, 5, 194, 134, 71, 61, 35, 121, 29, 212, 76, 198, 248, 99, 160, 153, 157, 67, 27, 88, 118, 18, 19, 207, 83, 175, 150, 38, 43, 103, 160, 105, 203, 217, 99, 73, 159, 216, 239, 253, 30, 33, 85, 98, 23, 184, 65, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 26, 42, 174, 65, 205, 52, 131, 45, 220, 245, 167, 148, 4, 83, 139, 178, 192, 43, 200, 160, 229, 110, 107, 115, 37, 22, 199, 64, 219, 239, 95, 60, 169, 125, 156, 99, 142, 37, 17, 70, 214, 194, 31, 64, 39, 194, 58, 132, 172, 220, 90, 201, 185, 1, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 192, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 96, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 180, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 117, 127, 59, 101, 226, 191, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 166, 126, 155, 104, 196, 27, 15, 38, 24, 77, 100, 194, 110, 11, 43, 129, 70, 110, 89, 148, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 111, 115, 109, 111, 115, 105, 115, 45, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 111, 115, 109, 111, 49, 122, 108, 57, 122, 116, 109, 119, 101, 50, 119, 99, 100, 118, 118, 57, 115, 116, 100, 56, 120, 110, 48, 54, 109, 100, 97, 113, 97, 113, 109, 55, 56, 57, 114, 117, 116, 109, 97, 122, 102, 104, 51, 122, 56, 54, 57, 122, 99, 97, 120, 52, 115, 118, 48, 99, 116, 113, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 97, 85, 83, 68, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 248, 155, 148, 37, 77, 6, 243, 59, 220, 91, 142, 224, 91, 46, 164, 114, 16, 126, 48, 2, 38, 101, 154, 248, 99, 160, 221, 242, 82, 173, 27, 226, 200, 155, 105, 194, 176, 104, 252, 55, 141, 170, 149, 43, 167, 241, 99, 196, 161, 22, 40, 245, 90, 77, 245, 35, 179, 239, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 26, 42, 174, 65, 205, 52, 131, 45, 220, 245, 167, 148, 4, 83, 139, 178, 192, 43, 200, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 180, 246, 249, 4, 93, 148, 228, 50, 21, 12, 206, 145, 193, 58, 136, 127, 125, 131, 105, 35, 213, 89, 122, 221, 142, 49, 248, 99, 160, 126, 80, 86, 157, 38, 190, 100, 59, 218, 119, 87, 114, 34, 145, 236, 102, 177, 190, 102, 216, 40, 52, 116, 174, 63, 171, 90, 152, 248, 120, 167, 162, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 72, 26, 42, 174, 65, 205, 52, 131, 45, 220, 245, 167, 148, 4, 83, 139, 178, 192, 43, 200, 160, 229, 110, 107, 115, 37, 22, 199, 64, 219, 239, 95, 60, 169, 125, 156, 99, 142, 37, 17, 70, 214, 194, 31, 64, 39, 194, 58, 132, 172, 220, 90, 201, 185, 3, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 224, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 64, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 160, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 108, 180, 246, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 9, 111, 115, 109, 111, 115, 105, 115, 45, 55, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 63, 111, 115, 109, 111, 49, 122, 108, 57, 122, 116, 109, 119, 101, 50, 119, 99, 100, 118, 118, 57, 115, 116, 100, 56, 120, 110, 48, 54, 109, 100, 97, 113, 97, 113, 109, 55, 56, 57, 114, 117, 116, 109, 97, 122, 102, 104, 51, 122, 56, 54, 57, 122, 99, 97, 120, 52, 115, 118, 48, 99, 116, 113, 119, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 2, 35, 0, 0, 0, 2, 123, 34, 115, 119, 97, 112, 95, 119, 105, 116, 104, 95, 97, 99, 116, 105, 111, 110, 34, 58, 123, 34, 115, 119, 97, 112, 95, 109, 115, 103, 34, 58, 123, 34, 116, 111, 107, 101, 110, 95, 111, 117, 116, 95, 109, 105, 110, 95, 97, 109, 111, 117, 110, 116, 34, 58, 34, 49, 51, 54, 53, 56, 34, 44, 34, 112, 97, 116, 104, 34, 58, 91, 123, 34, 112, 111, 111, 108, 95, 105, 100, 34, 58, 34, 51, 49, 48, 34, 44, 34, 116, 111, 107, 101, 110, 95, 111, 117, 116, 95, 100, 101, 110, 111, 109, 34, 58, 34, 117, 111, 115, 109, 111, 34, 125, 44, 123, 34, 112, 111, 111, 108, 95, 105, 100, 34, 58, 34, 51, 49, 52, 34, 44, 34, 116, 111, 107, 101, 110, 95, 111, 117, 116, 95, 100, 101, 110, 111, 109, 34, 58, 34, 105, 98, 99, 47, 68, 69, 54, 55, 57, 50, 67, 70, 57, 69, 53, 50, 49, 70, 54, 65, 68, 54, 69, 57, 65, 52, 66, 68, 70, 54, 50, 50, 53, 67, 57, 53, 55, 49, 65, 51, 66, 55, 52, 65, 67, 67, 48, 65, 53, 50, 57, 70, 57, 50, 66, 67, 53, 49, 50, 50, 65, 51, 57, 68, 50, 69, 53, 56, 34, 125, 93, 125, 44, 34, 97, 102, 116, 101, 114, 95, 115, 119, 97, 112, 95, 97, 99, 116, 105, 111, 110, 34, 58, 123, 34, 105, 98, 99, 95, 116, 114, 97, 110, 115, 102, 101, 114, 34, 58, 123, 34, 114, 101, 99, 101, 105, 118, 101, 114, 34, 58, 34, 110, 111, 98, 108, 101, 49, 51, 117, 120, 119, 109, 54, 103, 121, 121, 103, 103, 100, 122, 57, 50, 122, 52, 55, 104, 48, 104, 50, 120, 100, 102, 113, 100, 102, 97, 48, 119, 114, 50, 55, 100, 100, 106, 53, 34, 44, 34, 99, 104, 97, 110, 110, 101, 108, 34, 58, 34, 99, 104, 97, 110, 110, 101, 108, 45, 52, 50, 56, 48, 34, 44, 34, 110, 101, 120, 116, 95, 109, 101, 109, 111, 34, 58, 123, 34, 102, 111, 114, 119, 97, 114, 100, 34, 58, 123, 34, 114, 101, 99, 101, 105, 118, 101, 114, 34, 58, 34, 100, 121, 100, 120, 49, 51, 117, 120, 119, 109, 54, 103, 121, 121, 103, 103, 100, 122, 57, 50, 122, 52, 55, 104, 48, 104, 50, 120, 100, 102, 113, 100, 102, 97, 48, 119, 114, 116, 121, 107, 112, 50, 100, 34, 44, 34, 112, 111, 114, 116, 34, 58, 34, 116, 114, 97, 110, 115, 102, 101, 114, 34, 44, 34, 99, 104, 97, 110, 110, 101, 108, 34, 58, 34, 99, 104, 97, 110, 110, 101, 108, 45, 50, 49, 34, 125, 125, 125, 125, 44, 34, 108, 111, 99, 97, 108, 95, 102, 97, 108, 108, 98, 97, 99, 107, 95, 97, 100, 100, 114, 101, 115, 115, 34, 58, 34, 111, 115, 109, 111, 49, 51, 117, 120, 119, 109, 54, 103, 121, 121, 103, 103, 100, 122, 57, 50, 122, 52, 55, 104, 48, 104, 50, 120, 100, 102, 113, 100, 102, 97, 48, 119, 114, 50, 120, 116, 52, 117, 103, 34, 125, 125, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 5, 97, 85, 83, 68, 67, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0] \ No newline at end of file diff --git a/types/src/execution.rs b/types/src/execution.rs index e64af752..76e984f0 100644 --- a/types/src/execution.rs +++ b/types/src/execution.rs @@ -15,7 +15,7 @@ pub struct ReceiptLog { } /// Structure of a ContractCall event, emitted from the Gateway -#[derive(Default, Debug, Clone)] +#[derive(Default, Debug, Clone, PartialEq)] pub struct ContractCallBase { pub source_address: Option
, pub destination_chain: Option, @@ -24,12 +24,12 @@ pub struct ContractCallBase { } /// Structure of an OperatorshipTransferred event, emitted from the Gateway -#[derive(Default, Debug, Clone)] +#[derive(Default, Debug, Clone, PartialEq)] pub struct OperatorshipTransferredBase { pub new_operators_data: Option>, } -#[derive(Debug)] +#[derive(Debug, PartialEq)] pub enum GatewayEvent { ContactCall(ContractCallBase), OperatorshipTransferred(OperatorshipTransferredBase), @@ -54,52 +54,54 @@ impl Decodable for ReceiptLogs { if receipt_type > 3 { return Err(alloy_rlp::Error::Custom("Invalid Receipt Type")); } - - let mut logs_list: ReceiptLogs = ReceiptLogs::default(); buf.advance(1); + } + Ordering::Equal => { + return Err(alloy_rlp::Error::Custom( + "an empty list is not a valid receipt encoding", + )); + } + _ => {} + }; - let b = &mut &**buf; - let rlp_head = alloy_rlp::Header::decode(b)?; - if !rlp_head.list { - return Err(alloy_rlp::Error::UnexpectedString); - } + let mut logs_list: ReceiptLogs = ReceiptLogs::default(); - for _i in 0..3 { - // skip the first 3 fields: success, cumulative_gas_used, bloom - let head = alloy_rlp::Header::decode(b)?; - b.advance(head.payload_length); - } + let b = &mut &**buf; + let rlp_head = alloy_rlp::Header::decode(b)?; + if !rlp_head.list { + return Err(alloy_rlp::Error::UnexpectedString); + } - let logs_head = alloy_rlp::Header::decode(b)?; - if !logs_head.list { - return Err(alloy_rlp::Error::UnexpectedString); - } + for _i in 0..3 { + // skip the first 3 fields: success, cumulative_gas_used, bloom + let head = alloy_rlp::Header::decode(b)?; + b.advance(head.payload_length); + } - while !b.is_empty() { - let mut log: ReceiptLog = ReceiptLog::default(); - let item_head = alloy_rlp::Header::decode(b)?; - if !item_head.list { - return Err(alloy_rlp::Error::UnexpectedString); - } + let logs_head = alloy_rlp::Header::decode(b)?; + if !logs_head.list { + return Err(alloy_rlp::Error::UnexpectedString); + } - log.address = alloy_rlp::Decodable::decode(b)?; + while !b.is_empty() { + let mut log: ReceiptLog = ReceiptLog::default(); + let item_head = alloy_rlp::Header::decode(b)?; + if !item_head.list { + return Err(alloy_rlp::Error::UnexpectedString); + } - let topic_list_head = alloy_rlp::Header::decode(b)?; - for _i in 0..(topic_list_head.payload_length / 32) { - log.topics.push(alloy_rlp::Decodable::decode(b)?); - } + log.address = alloy_rlp::Decodable::decode(b)?; - log.data = Vec::from(alloy_rlp::Header::decode_bytes(b, false)?); + let topic_list_head = alloy_rlp::Header::decode(b)?; + for _i in 0..(topic_list_head.payload_length / 32) { + log.topics.push(alloy_rlp::Decodable::decode(b)?); + } - logs_list.0.push(log); - } + log.data = Vec::from(alloy_rlp::Header::decode_bytes(b, false)?); - Ok(logs_list) - } - Ordering::Equal => Err(alloy_rlp::Error::Custom( - "an empty list is not a valid receipt encoding", - )), - Ordering::Greater => Err(alloy_rlp::Error::Custom("Transaction Type Not Supported")), + logs_list.0.push(log); } + + Ok(logs_list) } } From 8ffe466441029a477f88dd815ce5dfedb401a0ec Mon Sep 17 00:00:00 2001 From: themicp Date: Tue, 16 Jan 2024 15:54:44 +0200 Subject: [PATCH 2/3] Add instantiate_goerli file --- .../testdata/instantiate_goerli.json | 571 ++++++++++++++++++ ...tantiate.json => instantiate_mainnet.json} | 0 2 files changed, 571 insertions(+) create mode 100644 contracts/light-client/testdata/instantiate_goerli.json rename contracts/light-client/testdata/{instantiate.json => instantiate_mainnet.json} (100%) diff --git a/contracts/light-client/testdata/instantiate_goerli.json b/contracts/light-client/testdata/instantiate_goerli.json new file mode 100644 index 00000000..7784a482 --- /dev/null +++ b/contracts/light-client/testdata/instantiate_goerli.json @@ -0,0 +1,571 @@ +{ + "config": { + "chain_config": { + "chain_id": 5, + "genesis_time": 1616508000, + "genesis_root": "0x043db0d9a83813551ee2f33450d23797757d430911a9320530ad8a0eabc43efb" + }, + "gateway_address": "", + "finalization": { + "Finality": [] + } + }, + "bootstrap": { + "header": { + "beacon": { + "slot": "7389727", + "proposer_index": "622297", + "parent_root": "0xeddca677fc10d387ddf194e865a108e35f3c273fc8edfc06b437aa4b71a1b30d", + "state_root": "0xe0a76314781c83b3b42dd1bfc0078b443c1be30aad3eb613ff4a50ab5abd8d0d", + "body_root": "0x6c2f8d555ecdbfc03ab3497c8df5b30527df1e71ffd26d843a49f615a5be60a4" + }, + "execution": { + "parent_hash": "0xc3cd26fa97a0a45dd4130881b97688b49c69477f75ca174b5934c76ce07f0ea7", + "fee_recipient": "0xb64a30399f7f6b0c154c2e7af0a3ec7b0a5b131a", + "state_root": "0x61a45761a8e21977f39494e2264dd1ba598e983c2aaffbe35a61b8a90589673d", + "receipts_root": "0xa23c818cabb61a6879d6ee08d523dd8aff7dc8ef312ab99101fc4d820c951189", + "logs_bloom": "0xc8b8818a102b11050255ee5481819c6004fed034404b45410d0449400c550d22578c2d98000100895890ee29003d22526d7343eb4aae03030894970217f6042654a20585e4a2054c91c8c05e234887a3c2c08ae49a651160fa2a805c00c10ee8038a210c27f4910e206499907c924b731a512cc422246856081c2b92281c604ad8d07a5646e0e400e8242687008d0041c0497202c21e87f909c580ce942b8ad85ae4e0d20a5a10188225234a8f38da10c80944e50110288a162b03fa7020a99f0818c18708616ac41a5230824f946e4c84381887508a88b42443422008466b140938407904f9e819880fd4180180a0680ec118300f18e1430448853402e5412a", + "prev_randao": "0x7a502f886d729059ce3fb57914b5fb805c46fd98938c4987fd7853197483e3be", + "block_number": "10369931", + "gas_limit": "30000000", + "gas_used": "12826031", + "timestamp": "1705184724", + "extra_data": "0x496c6c756d696e61746520446d6f63726174697a6520447374726962757465", + "base_fee_per_gas": "8", + "block_hash": "0x4fff859f9f514b3fd6c191c9785e307e99ec7de6571f75217c1efcbda321a6f5", + "transactions_root": "0xc396e69a6f8594976fa93fb5ea3a03eddf0f8d903b5b245e7446ed5531dd3ba5", + "withdrawals_root": "0xc0198a6763696722832a33722fa8412e7bb44c4f16c9cfef5da66d806c9de4b9" + }, + "execution_branch": [ + "0x8ae0a6d155a9a8b5f1b13c90ce6fe043e80eb3efc634b3fe9b662e5acf6c7a8f", + "0x336488033fe5f3ef4ccc12af07b9370b92e553e35ecb4a337a1b1c0e4afe1e0e", + "0xdb56114e00fdd4c1f85c892bf35ac9a89289aaecb1ebd0a96cde606a748b5d71", + "0x8a3f0c0b7fcb307ac6e3d66002c3a01cc01af233e2ee583760f2b67940352418" + ] + }, + "current_sync_committee": { + "pubkeys": [ + "0x8fe882d19305619270e520952e51789105870bc33a211f5d18621a69c8b00af53224773faa5854e666a03c4ecc05f946", + "0xb86be4ec456f68c3fd0e8ec3a9ff87870740dddafb69f6607a5a83a8c34330a4410a497c4bdc397814529b4f4cb84390", + "0xb496607aaf944d746b241fa72b4e325af8405d5137496bc7df290cc1f8cb6dce56ed38122243ea441855bc5172df11db", + "0xa213d854a0496d74526b3c37a48d6f610452b44202424a419acf206df1cf76f7357ff5c0899e45adb565535bb09c29c1", + "0xa686c30477e754c821486737822c976ece7586d98ffd9c76cdb7392649411f988fd7fe72bd8a7bd0dde08c5b4f15ba6c", + "0x8b68d04c3b670b9e8a91c6dd4262e8664fe7fb8630108374166e29635761d0288edfca11ee4eab9ba0e60da83dccea32", + "0xab90a792fd41574f448be3ac5591a3ac0731a985518a3901ee91aba1f04b394301361901ce822b777492df1293b1401e", + "0x94a3c7a7d354b640ddb424161a09c87ba01c5c541c6895ccd9a026a0357fc61287a25cf416a0c7127347e6ee80eab73b", + "0xa453cc761f5ed4117dc01a5758c4d0aaa4e752a76ac8a1360042fb169288b42e474263fc33800a333b7c913f117d169d", + "0xa19c3d98ad176b8a6095982dffd61dafabfe1efb52a91e1270f670ef69ecc7beab2af1528442cfa5583fd4ce822531a1", + "0xaf5007568d9153d710b12cd597ce77b5a9a8a1a9194197de7d2d848c5a236b733ee3046a8ab7b98991f2ff4120730a41", + "0x9128cf3e32a33670ff0a7833c9c641dadb0feda13af3ea97034a8066e48a74af6d744a6b033cb850f2562c4201625df3", + "0x8a4cebcb50f6ea66f199d4fce5b226f5bebd577375d2a2ea1aebeb0b036ef1f0dea30832a9e4ab53652f23840ce0f7f0", + "0xa07617e2551695eb16f2123688be89ed94f3c86b2e9bb9148a39ce8596740ad96f2c1a70533f5b4215a4a2e95d641976", + "0xa3ec8bf532e97f5bbbfd05c39dfce1fafdcff7948f12696bd64432ef54885ed7729a7c815bfe38780b77405d36477bcc", + "0xac769f4d469dcbfe91df09ecaf8aadbb60be2e0431012fcdc71854d8c8263630c8cae53c3a1d04e49d9c523a308ceb7f", + "0xa4f0cc24ea4889f08148f93ab0c363da4f51c90861456abe95f6dea7a2ac2e32c2ff2eead8576b02f3cedf42f2af47b9", + "0x85c98b8fff9ee52863974e0cd6c4dfbeb24ea250016f4dfa727de2e4f86e6f33fd21adae0fc65919a1b827965ef0298d", + "0xa0990b2ab5a68a8a6e7556f5a0e60b0c52df3bb64a6395ad38327a7daf60bd0cf34cce35987171efafa4c962a2958fb9", + "0xb8b02ada0db049075cf90e4edebd0ef0026d61628742cfce9e95d4c4cd158389540a0775339315aa0d673729c46831da", + "0x802f4aa0935fd17cd9510c75a461d5c9c59f98ce41b2f26218ae7523b82e1b239507aa55d9c3f45dc86bac62ba6da891", + "0xac13f4d068f85efbbb46fbe3bfa2966cea4e26c4864172402fe381543ea24778ed2e2dba56b765053db07ce106798e26", + "0xb0098e37b8a5644e6fac8a944e7d9fae2a45e5f8eee7713f0dcc9b270be1c5a2bee93a104d02d3f80a03d3c5809110ba", + "0xb58039011a9fc707b2d3503b9bc4f6783a46f26776fe76ca2c141cf3e3e5b81d8e4d94750944f57a97919d7f1e07d08d", + "0x81b7e867d55fdd88225492d96e99cb9584ea1387365087dbd4956ed9f433ff31c7672a5616727e9bceca59161087a44a", + "0x910e454542190d21da554624e7daf6fc37dd51671eb5f530b9acecba89cfdaa91f41d257c89f55f77bf3f2800c17f4dc", + "0xb572e24e15b107383f54e523edb91de1ef857c4a47bc61924d1dead776d6c9567dd1dd5ef461cd359368a85bbb9f252d", + "0xb984554772e62aaf56ba7b9e06cfd852b4783eee48b01129af8f404699565be42c2be7e961ae1402a18b6991e34c41ef", + "0x8e5878881d8f368d11c98ec8c046a12631cb23ad2208438e565c08821e31d03e8fd6f8bb05479a9bfe133dd9ed81ef5b", + "0x99ae7ab57bcc52e98dc6744c4c775424d913b445483f6084af16bb182d90568e2205b0b3330588304be6c99410a1611d", + "0xb1440e4648f0f220837223368b292e3f5e8cd522d08eb619dc99c46acabf685a6a3638be101bfc5e7e116bfb22b868ea", + "0x9193f0393e41bbc0be1ff63ccb97ae552d74dfc04598557974e0b89ec1b3c5993eeabf41216daa58464922a6a33ba321", + "0xb3c8275afcc3710fa42592c29faa1bb838e51129daffbd5f14effad2395d93b53e7a65ee41b21a50bed8c4b3a500de17", + "0x914cc3790ecc1e6d42a60d22eacf2ea706f12d4e2800517ca548b0c82fb6353033532129e9ccff6f09b0c4e525447859", + "0xa241ff403515ef4798322be93cd1a0ef58984eaae39c9e4c05e21719ff9db3edbab454e2a9ce515ffe26b8aa913aded1", + "0xb41725d532c342ea6adaf8b9162057be956cdcea2c020ff012eddf873ae7011bec182b20e4ae91cec6e1acf2fc612869", + "0x80590725c4320103e3ae5a72438f66fa3cedd0bb3764dfd8cd883b76a1fc3ad2ff304ce4638ca2e38df03de80f9abd57", + "0xa645e261d55b053cc49d4796dfbebc5547443107684b44b95fcdd69b7577285d681fd6481bd27994ecc543a8f1f72b48", + "0xa281e43d360b9b14b5cecf72d4cb121b801707e8824e6031d8f62658d8ceec8c07d5ad55f151459dd1997232e0564fe4", + "0x997e3166277a04e3babfaa9f5a21a36844c6d8604c8d95621f038cc21f42643f6cb15a5227f07d2f4dfd6952a4a9544c", + "0x9101b60d6b84524700c2899449fe11800b0309fb55a0cb0568a84af91d11d96e94f4f9a0040907416ad23158a9c789f5", + "0xa797d5ccfa1e1e8b118de0821b05d2c8cb0a1ee335213cca7793752a04c7c4f60e988cff15cda77bf28ea2852d7a6a55", + "0xb396dfa92d375d510431d18c3451a54b80005bd1c9df9cd042738d4bc696571db7f6dca079e759b248410e9ac9f0d0b1", + "0x802f2d500ef2fdadf1d41aadcdcf838c3471a2db237decdec22c1a57c7e37f9a0cb2fdeb071ff5494f79b7fcda370a6b", + "0x8bce2af54c628c23281253e2c626d1b4654c10e29c2ba85e3047a99e99c7091c121256c626e8b5a2b635f00d682bf09e", + "0x8f952c9579680f6922f6440c750a5215245944ec4eca97460de92a4406e277be9f21d6f1a59ce5d09ee2b2a2c0fca5d5", + "0x8479b37730460dc9bf949a3bd3d5c8a1e5c2612ea27e954fa5b344e0ec7a945e70c194abfb1fb9bed1ce55b833e05c79", + "0x933812a9cc37707637ec2a62e3ffe05f13c627e65c4e4691d2a8369f3b485b1978f4d113a72abac4129e40717e7d0c41", + "0x8159a3889771469eb0b18cc366a1190e10fbc1a1a3fce833f881f19cd8c295c5c49f0fbe4009742305f3450bbac733b4", + "0x99c98900772a5f0d9458c84d40349f974e4e17e84fa8c4c14460a76495f7a8cbd667e71a3a70302902688ca403a90957", + "0x92bcdc11c517f2915ac8a344ccb0fa7977f8c59873b4e318b3728b4b3203cd695e70c6296c1ab070f913b1c911be46ea", + "0x98963338983980be111d9638c75c556b30742bc00ef27a5e9d267a384233d0f3c21cfed3c8dbdf9d2756ecb31b7cac47", + "0x8f88fdb17eadd8adfab42c662b706201438b2a37ee81bef19abdc9735ae28960585c5b05c96d9d95e05fb3e277dacaab", + "0x8a1306938b791330b3812473321840ecc298cf905d8725d51670858e98a2a5cfa1d83cc543489f9e718afcca566f428c", + "0xb965b72e88934fba8a457a50b63a9b9d4e1d25ebcc170845a1e99fa83fb3f2802f219ab3c3748bc0f6f61fd404b14d93", + "0xab341f9f166afd737811916d2be76adabaf2a81b1dff02cb48d7446b43450a49ca95e4ba70c2cfa7edd9c43a9e66dd72", + "0x8e6e57e1b04e0951789ad9b6bdc995e3f7782581cbd1793313b16ffcb82ef2b5f95e5317117cc81bdc2f840972ab3402", + "0xac5f666b1141ee906a4b53cf4d5d773343af906bad5e7fc410878f5831e4502947f0515fd683d6c49dfc0501131154bb", + "0x96cc1b0fa87038121e84c7a2b7f3221837a467b3dde921f0df4e52db33d4ce8b7064264224962bb372022e9dc785d9c5", + "0xa7ada4829efba7a42d84684c1890c36f583eff76046de082f5a4a84987982192b455d17755097a3b413fb81ff09ad7f5", + "0x8ea3d7592d1fbb897330fc8c78f267076c5c1c19079430a727add19abe6c5e73293fe6e96636829296e56a095ea4afcb", + "0x8932d61c3adf9d6c827fc3174b595269383a87ad3d8157db112876b84c1d4caeefdb20a067e4663212f180bc03c4b0f4", + "0x8d9e76087ae6ac09a458339ad4421979afa0270753eef195f255de338b71713cbf608d1a6ccd98080497699811b69e2b", + "0x803514a85c835a7c84536add05f3f401ac9b41335c6d5c3c600d4facb3d3201f206de30280bcc03a197373a777a408af", + "0x844d0bc5ed6feebb9b5b8b8989a3c206a94f10b254767df96e6f217124fbb66eda18e901558adf449f06decbcf8eff79", + "0x85681ab688608b81a369cdb7a4bb2eee3567cd015616ee6a6dbfb359b1d2f108822aeaa0aa2b234008424c586688b3dd", + "0xaf762ce5c343cd3a0f73fe285802ecc47bbc88c3d07c71df309466cc244c5d36a73b589ffc65b3cbacaf2715c995850f", + "0x8dd47a3870640ff9b5ddac805d435845789ec4a50a37ac2f14013d143d9611f620c060c53803b9ac06c81ea8c5d46196", + "0x9768c2a2c52fbcbe9fd0d165326efadeaef0fce847c340fd870aa98b3b06107451b04a021dda5508346fefd83cd4268b", + "0x89c422ad613291e515c16afbe43806619c742e0827ec1b8c75a09312fafbcf4bfb13a33fade53dfda31c09ad4e5190ce", + "0xa5776e4a8390546cf1f4d99615665f95c130fc7ea7acfaba43fafd2c5d1f731b99a7c0150206798c35a7328dcd6d03e0", + "0x876af3bcd5999ac327e2a1220c3a916d8783628ed41807a375650e107c4f50dcdcc7741309cc9affbc6e35dd12915a84", + "0x81cd4ea9bca1a2654181995a7f118d0d4721b89a3b18c3a0866ed0c2fc16e3a28574ea1ab7c313b798d04d3668bf6222", + "0x95b88ccca74fed12f8c6d7b810c16813336a3b022c84e9c140b15e68a847cc71ca801f40ae646a2d2480b123bb2257b6", + "0x975c52cef6b328cbb3d3eddc215b836ef0d1f321d3f0863e0d6586ca4aead14129972e8d70c1b3af4b2b6faedbc40c53", + "0x80fdd27e3aede70851ff27230c1d562a97b63882e7e52bff48c861044c1da6ce032d927b2efe716a5f225a679aec4b01", + "0xb7d251f42cbd554e666b07cb3f2cb6cf4568d6ed47bc8a827173c606e328f5621df6b7802c5fb125bb2afdea29c5aeeb", + "0xb616d149ea4d2585017eff48b71026d7a019f1ccdab10994adcd52e16fceb41ed65f8c0e61c2277d76902e8113bc9f9b", + "0xb20528689b14d3a58f7fe5fc7a7fe7141f19c044f1829450e64acc5cc77a1a9b01c34d07537c93506bc7d5cca8463b3c", + "0x843898473481c823e8c0e6e56a0a80fdc472f06355b4d591319a42f608d16a3298b76ddd6c2e8b5b56b7dbec4cd51ead", + "0xacb272d892c051c46e27f6b2422f57f947dc11d53862107c0a942d9e4f991d264190474138ae7a9c0d3c5ee043229204", + "0xb0e10cd3983c3ee72f1cdc90dfe073f888ffb74b355ab7c0443f835ae755bf8846afcac3958b3d405adde0b0f8c35dfe", + "0x8f393e6a4582ad169cf14c2c80c9dca1f35fc28c2e78c9d659c73fe940230fb64ed5ef1df362a078415807651b681b1a", + "0x8ed969505e319c9184f1bd532bdc1f35d3eb6f3dac83549e1ff83c144136b19093ef2296019e4696abfd4360cab73b8e", + "0xa92908802c5a8b99cb659cb5f6aa79005bfce3fa162217500cf4b5d4d90bd33d9b96e975daa627ce7a1ed735cd06deab", + "0xaf67a5e90ef0f30abc6d28ed87c6bdcce222001c38cd9e365b20c138881bc067ed49a7e9517ac5f32f6c4b6538b3c2ec", + "0xa0e2f1f374fce089f62c4c1c5ca6f61cd6d24a0981ba7aa8d0929605ff08c786ac0b3b5cd47e54272648f9081c9165ec", + "0x823f4beeb7b9d66bed8277d2b5c21ac587496ac0d5a8b64411adf6473e5ef3a09796e87f44f51c03c123f82af23291de", + "0x991f07bed4d8b138edfdc566a6b649fff0ece8bef2b52a74b2cf3d725173375034154d826cad9be27da3843ea67907d3", + "0x87b092d2af6d3362bd8e0b9638013ad5bc9a02eabf1a46a0be1a81aad99ad108b94fc2a4fe597ef2b646dba16f3a393d", + "0xa9982c2d9c4d41ff45ad7d0626052771370700345aac454506c1f3b850860d36f73ccfe22e2f11f64477acbefe5deec9", + "0x8fac264e80d19d906404e47c6196367b8bfa57a154941455cdda0afa3055e6c87239889b4a063f86cdb97f2a30624224", + "0xa30e2192f6babffea6c627cdaf849fc60167770c847501c9719d2edc24d8cb20c73da8240e6578ce5128cc1bc6cf00c6", + "0x823abbef701ab3da606d967fe92172635d7df5f602750055d0ab8dc8c55f41b6e060cc2e3ff4c4b62f2814f6751587e6", + "0x8a889fa2de1451ed9a96340d5b59f568bcac8dc95095f5065645366ccda180facb906b7cb7a1c5564ca8a28aae1b1fa3", + "0x8f0d4ed732931758a98d8d23dae901b12964bafe47e972e0a1f27ca5c02d140e4f5becfa5ebe31956c7e55006d52bf24", + "0xb4584dd3000b87080dbf6ff81416ca843d90604a6636dbbd017404aec5e9843c44a912f1602a744707163c531ab07596", + "0xb684788278685c14adcc2aa3043ba5096b5bfb63e020d77df06f8cae8ce59c95004d95f5103ea00cea76d49c062e2295", + "0xb2c3bbd06f13c1379a2b1ba891a321b263ce4f785a62986089f90f78c316103ce2eff3f5ead7731de90976b1dae21fb1", + "0xb74280aee01994b6e6aea6c91d66863735246a824bb73e3bdf4fedb35835138c94440180e4213fd93661e927acb565f2", + "0x8b0dda6b84b451e890bbdb59c40f611475ff829c792efab09803ceb4ce6bc41e1f865efd3e08faf1a5bf38d66ac6fa19", + "0xb3f4cf29f7ac5002c207154bffa56f6e8d130f7f2fa1c991344a6c544b2a83f90b531e955a930ca4307327551493122f", + "0xa446bd246f7b9c1014a9dcee258b712ee738ae1df91e6bf31a458a10593cc8255b9c0fdd393fee15e18b2b264333b9a9", + "0x935babd1fdacc9c965593d4d3a588e937ea23116dcfd2a871efc2cc08124a30f92c866f6f957a8f9b3e028594899773a", + "0xad65e9e8e7f9f6b098fa3efed637b7088f9be284497e6c2865646cfaba18086de6a7836fd68eaf1ea995eb2e19d39fc6", + "0x95f74d8b563606c3c5fea534a2108d16ad530a247302b1cf69b53865ccac8742f3316faa9e9edd14ecd992fe542e94f9", + "0xa3a2725bd906388cbcd244fd1a0815bf756cd6c5a6c217502da33d8c27f6f48b055369f6674824d65142cae28362ddbc", + "0x8e69915f47a75880f8b3eb5b55276d73e541f93f8213211dfaf4958fce4fd56fd3e488a2a14c954fb279c31a1b9a9b98", + "0x82057d1fea1e87596d22d96e06f51304e01a2e9c0a6f3c0f59eb01b85efabb62a8d573ad4e8080aa58f458554f0d1f65", + "0x9892aa43e71de7e84cce8f64927589295f8ffc14e70405d53e24b8bc77827aa04931dbf4c4a37117afe700272b9f422d", + "0x8d1e294f437b5b7b39415270068165b9e635be576c3c75c07786321fb9319bb8aa17241c05adda931d2fd05d6375ad3f", + "0xaac63a004c1719c8c80ee1a0a8dae86811f7be23ece8e50f8202cebff65a05cc3ac78204395b4bf2e57c561b2b00c435", + "0x87daa9b49c951af23c1b51bbe41d45a4bb1bc64e74cec23485956f4362ea265e720b2e95dab91c2bebb9ae063b58a160", + "0x895ae0568be8d36af175f631de37a4b6bdae3b8e0fef3c9b230b400cc7fc732f9d3f3fb68e4e6b3f97140b480c78dd77", + "0xb78dbfb5a1d65daeeb8d6e397f797fa56bd6f1d556ef51f353cf617365c487a42a5660674ccbcc77ba8c033cd1c82bdd", + "0x9535c1847ef543732e6291fc2d95835d81327bfacd95c3e1e2fd38dcc7d0a83db9338fc2d91415adbfeed6d8ce9be771", + "0x867960e346702c9d862bab09dd8c4e957d17083adf1bb8db367675ee3bf23cbf29587ee0bcec9ab98a71b10494d5f471", + "0xb68b4e72b79b0a78e8c53d4bb5bfd6bc9c8bb8e5b826f032b1ad493e023b692088aa31b866536ab128ce8c57e59f3603", + "0xb0744a5f3c5d9cf00b90c86f8611bd65fb7e04a602e0058ac167baad037cc9e235df760db2409b27f90c6371f4768b03", + "0x8635a835c1d918fd261d9b3d415450bd3d4b93fb7b0b3b41a5796f63129e4ee9190f38cf91660d98d968b0685d7d3773", + "0xb68f742b0ba0248ce9bdade8f3e850e94491981d17be37aaa355ced7ce4814e70f308a5947539800a790c72f2aef31ff", + "0xa4eced08a91673e8d9711e5fd1b3f06527ccdfe645ca9eb69dd5a3dc1fe1585caa99339c193b475665e92630dde69bd0", + "0x92aaa9cd17218b2604cc2e8973f4b0ce4f6558ec7ef132e8dcc164659f8d07eea004c817f4f2f2893f17dcdeff98aef7", + "0x83c3dd093e5a36c91197f8586d5941810c1a8c275d5869c04fc296b508a6e3cb567356702cb0c4e54705f846a1e43ac7", + "0x924f61512ecc7b3f136e90f5e570d8a37a16dd8a92631bd4bd8ae5cc2bc2853c145add98614e6571d8e624a7cbcbc6ed", + "0xa1846de9f316ec953ce1b1e5c5244454c0dc7bd9166270b5b5b758643040eeab3b83b5ae5e576a07696c317975f4aaca", + "0x952b4eb1f286f8b84a228dbd8b62f8b9ed205495f9db2f96322ef98c5202450a715a035759181de357c9dee8a6fa802e", + "0x8423028c034e6f993888b908630a9383790c17ba02925228f2bcdeae2bb0df26877c0852a1bec5894eff16e416124130", + "0xabe2bc9ef3051491e0cbf5c1c92c2369243ddcd3adabced7b6f26e52a58766a0199e46674884f7b595c332caeacddc39", + "0xa6858ea358f3d9dfc7dbddeac15eb07d3e2ad72c391ef62c927dbc3b054c88f60605ef76dbe2e012de74b22f7a97ac26", + "0x8d90ab363aeb292b9e806b787b43c0553c3a82bca3b8446418254032ba0eed4b6f52db82bbef25735fd6fd712134fd43", + "0xa49303dc219f9d5ed73ce705ef0b8725518964b6d98593bb0c67788d1c2eef2be56fafa7f3969e14a4f69d31b2b6b5f9", + "0x8f23e896e652a98528f4a7fa0a709d604877176be82fb70e7782f56b447b282fc3fb07e4ba2a33df04eb0446e344f0ab", + "0xa9b2a3032fa2087914e36bcdf4ab6623ee2427a09135c386def3f3bb8526e0c9bf343c487723a38bf2c6ff368e5ff2d6", + "0x8133bcb51cd9064c8f0dbf7dd0e160cfd700b1cd26b9f1a700ee15fef5f80f7cfaa7c71c97213284f676bbded472dce9", + "0xb89ea8a84a31b2d6a2f41147cd1501b433ba46258dbe5508819667c34797145ff3aee57d8dcd2c8f241f255f77dcc30b", + "0xadd9bd1aa0b0dad0daaa98a736ad71819237b096443145e125a35dad397c191a5db63e2538dbfdd8266696f61571bc0f", + "0xab0b3bc18d07e113035342fa0df230ed0ab824b08ce24df6ce1d7be6018e1b06869d9f3077eb50f1b48c25c9e2dda697", + "0x8a32d6bb75c6d4411ded8cf898b14033ac91a45eb641f1812ab34e7cfae768090db189349b8657a8ac82aa8b57820d8d", + "0x87e16df4ff2da92ed6fa8de63fddb87acc09568a1d3887817a04bee37be59641a77cb3ff909b994b2d90305bd31e0541", + "0x83a7403f49df894a5017f83cc52c4f03aef13a9d954c22a7be0ad8a0bf1139b8202135bea3f992aeab4f4c427953a0d1", + "0xaa01e6562551ebf7ca26421b1400762f14338d5bc36528cdf3da7b40f730105149a791fac2609a9f0d359e0cf2a2313e", + "0x8fefa1d1f78b1e09e3609d14a57cb1f943c145e624c3038c1d6ec8d68683bdce4c288f804fa92ee60ec0f632684ecf15", + "0x8357025e7922bf8707274cd1c7fb318e6011efb46b56ab24044ed60ea3230611b9e030032a20854ec6df758a7e539add", + "0xa8f6ed3db201ee461be01beff7f89f462fdabfcfb2c783b1b5e481870183c8a5b8f2007dee3ee6456af95686209d9130", + "0x8e6ec11dfdaa6d447b53fe4b437bc16597e7e2a0540310d7dc5d2c2efd6ea04497c322520186a3c870c3dcab8d2528ca", + "0x929f2d19f030d979fd30ac948844c186509f3d3492b5b5595d8e637687d2148a868dc82add0cc98f73a6f8aacae1be76", + "0xa44742e64ff00e175bbd7dabaf8d6916db33bbe56d736aa894c2365a277e43aa021464b525b7cbdebd91cdebb20cc5ef", + "0x8cf6a01cc0331a084941f66578a04dfb98476491a0c8388870e0d1f6b9ce0c7d86283289f1b0a641f2616ad4d03a618c", + "0x8510d1fd5ed689debcd99bf278793b2ead06e709b9a991d78fff716ab6767600729a64e1ef2b5a31eebebda1aab5be9b", + "0xa1ddf62b5fc058a84386354cb6ab148df825d800a37fec9cb98505f1373f0581437dc26201c6af8e3a30879ab60baffd", + "0x8d94908ce4fd4be2137575f1b1e583e4d7ddaa5aed15a8f8d498ac08cf7130c64bd5019327f40649aaf34a472134bcd7", + "0xb489ed233e17bbbbbe87513ecb7906889fc034c302481d4186590bae849140354dc989dadc5cbc5118668b4d588089da", + "0xae90a1bc96cf674d31d1885fe38f61578db6c2b1d5ece8f5b2d0c2f075085374d484c63b8766c431d4a6f9b2d1cd0f53", + "0x931e2ffe842b50d975ab64c5730b5063440c8050c9b5970ade06882c6b245047e80e24e5b5de3133032aa490c971cc6f", + "0x8fe6522e259754e9241b2e9a63f9b2bfe59d96676081fa5facac579c131ed4ab83cfa6e0745d924af752318748b9e9f7", + "0x8850efb6290aad2f354513f13ba7e165c699e5bd922b53fd12f5dbbb171f5b76f043c251c80de47c704cd45397e36d51", + "0xb1f878f1e6dfcfefc211319dc9e0ff65fbc1d90e6938307c67523c2d5cc53068ffff6e7b8ef34f616179c1e6880fd882", + "0x8c487ba6d2575aacaf53b6b199b82769bf07910a6738e4b4b7e87ecb1bc1a70a40b01d7b91dadba58e9b782f1fd7adfd", + "0x964213f2d88380d5ea58784e4eb6d0e8730ddb74b347ccca6f53738f1d70ff9ab1277354cfdd6f397b1ee558cbce4a22", + "0x846181cf878e0f0f6ca7f42a026b59747bc7a1f0ee096df0b72d34adad4b5cd92ff3367111af66be73c912c5add81492", + "0x9812c8c72799653e1e9f6b601a9293acee8c8af540923f9723694b5a974adbfb215b185b5996b8787b8a7102d97fde3a", + "0x9115c9ee43999204a0199ae258cfe8829eeb1cfb8ceec13cda02f77ff1ffcc7c886fcd327ad76dbc168aa805e141d8f7", + "0x91baaf77ba809442d40b0fba64704da9fbda2634b772687fe61418749763b9d2070b9ee3b5178169037584b50f53cd17", + "0x892cb7c2132604b4694eaf8389f6726a2fe8e3bc527811dc88187be066b4fb97c614166747c6f40ec89477403ed9add5", + "0xac338d8f7c121886b758c71e4f5e50357a915206877d0fa9018d0636cbd13acb7338d2a57ca4b33b96c4231be0d207f3", + "0x85917f5b51ee679882f16a20cc2935db26bcbb700b9f2c4d4f675d4f48d36e98b061d902dd57692ff485c7d63629f479", + "0x930695e2af225b54cfc5ef5e7ab1a9b401fdc7100411e89103e37c323949884819a6b2ec48399fc5cff49d1a3afdfd5d", + "0x971dac57c887b74177a131c22e0dff6ccd2e985202ccc973aa495e832a15a4683ec2f49ace5a4a0d262990bf9d5eee3c", + "0x959ddb798bd199e1caf36faf56ac89e1add90df9e5c2a67cc0c1e0b61fd9cd7999be22bb0740197fc49a401dd4e6fa06", + "0xa7e184f23b4708745be54b90539d5f3cff8ae62400ecf8cbb81d5e16215779271e1356a3e31d39ef89c14b1227dd9a26", + "0xac798318eeadb513931f4596027d81f3947db53f861091e7f9773c516f1908f8d5f65b0aff029a9164cc76ac9246f098", + "0x8281088e7e016944f7d4630a3c54e9d0bae660f738efc3186963e39fcff5a6521c874a23993a6ca2823c1aa4ae9e6e8b", + "0x97ca0cc327751fb041bd453adb86ff0d48a45e3d83618179c9358ecc3c80e587905ff55e579942f457b95ae21a1322e8", + "0x92c4d228975ade260df8d7fbf237b8bb6a980a9b26e1c262951b5758712788880625338942bc9fb1c873ca3100369345", + "0x8d722669f28391112a7ebac80d3dace9eb8fb222f8091708fb9739ba869e369ce9a3fb92d953ea2a67c7310301fae78d", + "0x86b1f10ec119979d1ae3d2a4509c2f3fcef293519cc7ae57228c24808ad0b68a6f4a2c26e5a778110763a3f29c4f002c", + "0x88901a9fd37c34969ad08711815074fd47fccc16b3971dcaa7707e45b906556a33c03fd1817a645dce23736a14e50bb0", + "0x86447152f4d68d890748a229dd27ccb122ccc8b293cf7b36e673d5c55d1945ad833500a1d61f697aa691ecbacda42e13", + "0x812d40ccf486d36e7f608f6ee3bd87b9de85aaf2a1453afee5abb9bb342a9d4d9a13015038a8d7c11ddc2861537fee95", + "0xa7824088c90019308938592ff1f62755907bacd507efff459f91d3692493c5affe74369358898e6938d5326cf0e21e69", + "0x998deef4a5a6aaac2a455c658c216edbfc1dd1b1c0ec7389e99cda0a192930a69efda8ad9e8aba9f31edad5029098004", + "0x961ca3489545586c033c4ba5c70b4a3daa9993c92b193d1931311dea9b0ccd3a9d46cdb9244553742c75862f39bf38c6", + "0x8f4cc5c69d249f243e827d642c48b1e5f7d65ad888b95e3a424fc45a1868dfeb12e662a20dd795ef50b560defa33aab6", + "0x955970c08dfb9edb841779bdb70129567d462f5e25300e1fd1c4051d0c6b7a514dca6f04aa1fbca304021af0667d278c", + "0xaf6bba10e68eaa28ea704997e0cee535c5fc71903c445d3fd28c008fa9503a71a59f2db1541b4aa080f136a8864db0c1", + "0x999f92fc9c0d65585bbbdc6845959568e36da855f20839b3a2d6142c2d013d3b7b04b8d4a732ba04ef43a143626226b6", + "0xb4990a2e99c86453dea4c7b73f37d6c3a4dc7e3c6e578709036a2af3b1b56e61209eb3bc017cac5374134f6684884411", + "0x94b6639ed85eb462531a74be178c218115ee903f123edc552e98ab95213f3729387c4bff86a1c4031f31c1054b1f9fa2", + "0xa4e82c0bcf0b399408b4d3c9136c6b464e319d16fc481bb394c527aaaa83e062b2755bb70b696d5d2e9470bb79e3185b", + "0x900c352d9b8c20bc812e51ecab45dab8716e9208fb297c9f39b1e6d824d3ef0dd6ea830d8344d9b93c4786a13dcb9c95", + "0xa52f112f9413121781fb5c5f5d034ea44cd14f26f9e75f87f29067919b18b7509172d83d812e29a86d29d20665b14119", + "0xa71cb2c8d246c81692bcbdf804ae9a61a5897ee25a17f92ee411edcb37ca706ffaa467394817114e52730760560e8e1e", + "0xa5f2a91f516e426ecff9c6222f406133e691a914c986113e620c01ffa99deaaa6d8f3aebc8a988508fe22db2ee9bdb8f", + "0x805271bfe7f7ab67c0c4d4834ae08be8d0553af4e0d7ca88850258f4d91b1a1c0bf26a324951461c2336fe2fee019420", + "0x94468c84febcffba137330918351582db09971716f91c37d41f5a500706e100952ad6c81aea57d3d42f00747cb25ef8a", + "0x8436a36bdd8518a1190b466579d04ca98cf78910972f75325e8226b64070e87dd62ef9f7d845e64f0a8bb45aac8988f1", + "0xa5c795afa0ce78cbc11de13c8f58d0bd9ca5b8665d5d8d28513a0d8666f9336b0dc3295557801ba253983fc99f45ce3c", + "0xa415602ce5d75afb7830c845306f762f8191ea1d864a45bd13d48acc31621172c2b411f6daf6a859150dd2c300501eb7", + "0xa7c3d549e996f4210882f4cc59e7823fceaba674102d3e5709d6885b679ffa0ef69a60ffcf970a629ddef9c98d364e16", + "0xa9802fa83518b6871441e4451701b761c8a7480a07d0c209640881a9806478ed57cc10ddfb49c4cb2e6d3158db9ef95f", + "0x8650d112a8b462bd7172b4b6b6a83991d09f9f95218dc744e21155a0c84e50125db6e4609672676bcfc74ed904217fc0", + "0xb8c1f9156c3231c5779314d546dd689e451d42109a1f0ab3a534635fcd9cc48accea550cf38799490716cc2001aa364e", + "0x8c0c1aaa78d1b73a4b8893db6516c1739c27c410340b9897d6b9b781b7e8afc588eddddcf45b22ed7f456d572ff163fb", + "0x828389d9bf80c696ffbfaec94871bb39a2e48fb4f34360ce4dbb040d9801ffecf1abbc078f3aa45ca0c9f724dee01277", + "0x85afc75d9a74f66ae02a9397d1e91bffa44510be7632a9abe55421fca5a526edee120c85fb1562b361af6a7f9f4b4d4c", + "0xb45248c926886baeea7b8609ad333ae1157821b9bc8ac9126ba80552045b3e3406123e55479c2f06b305f068b2726d46", + "0xaab99628a9201624c6cbd59aae231836d4e0f9b62870baa5dc237b2344a67d066450409c9dafd2c19be08a528bec586c", + "0xa170707c474bab15f517552a6eb0f25c5922351ceb7c498865116e1e34e60949659fe5ba364925d6497ac456ecd2c61a", + "0xb5d345b46ed87924d8d411d908270972f1eed966f70a294972793a6f79b4afa8fdda7e63b6b020558bada93b22dcfa7f", + "0xa6eabdef83666ecaef4cafe537965b796309305998bfe23e9d2a3fcdb445c67ceb08e176747c8a812ce4697894ffb3ea", + "0x868ce6e40c2bc099e98db5bce169129b5ecc356b2430ca5c205c7fc70c9c98b4eb156fc843730073e9a0aa663fd7d6d5", + "0xa70ce65946482efc164753b9d4e27e84f3f6c54d7465a54128e31b5ff15ea85becbaa565da20baf0b1bc5f787455cd4d", + "0x98b4517813d363c1b1defc7f39f45d137a1a1728094c4d695e5242dd8c3f2327edd6071ab5bed1d8f49a88505aab4f27", + "0xb556151c3d7b744e3345ae921789fb7218a88f0dea327ec93f215d871c44dbd32f956fda463cf4f0480387f6b9d58bc3", + "0x8794a0e8b91390aedfb1e2e53161ec3c3333ede42bc034c785db0d78d00553cb3da177305a705b367ccd3a2a022690cf", + "0x8aa71a3b3db12df65772edd10a5baafb5a1a05a7f5a3236c3794c8710cba0fd497a68d66ecc6dd98b06d8533670e4ed8", + "0xb5b6d25f7dddf69eccb316f540941f16a27748ffacc198b8d23fd54996b44008e3f8e610b9baaa60e1247699a9dabf3d", + "0x89177ca48ae0eb1318bfcd0cd30138c384a38b6b7e740ad7b19970c12b8ef93c0ac7e750d1e5e1c9af77d6089905e8be", + "0xb300c456d418de81bb8674e3984f1a4280a853d57709ed7e63e3e2e8080beedc549c392074d1dbc414d1a5eb03726061", + "0xa958f4a944c8294ab1cf7df2733450d0d063b7f9bceadb49d3ec225a1c3336e08888b6d9a2b12030a1f3eed2f18d7653", + "0xb0ae86eae3961d20c1dfc209337012f9edac7d9809bcf8817f0f50e4589964aad54d425a3e28043c4e027c741c67e12a", + "0xb1738379d3ad596b3eaa36110c77c3d1656d9b180677688a7ec80d6e8bb53bbade3c531058a9d4d3ae5e2a2024c34412", + "0x814c725d15a8aff60ef2cb02ab3f89ce2e19fd413049247aa35c4f3d41aa4ec9cf454b3c999212ba167b71b11a9dbdea", + "0xb34955bffafd9a0364ddb0fc218ef0863ada0e6250fb1b5e4d3f146c979399522f3904495dc27e7e46338690454092d6", + "0x8edd8861db15439aedf2e05ba6fae6858a9dd090f87a6b2deb2e35a1fdb8e4a5db37252fe2fd8a810cea1d4136c94a2d", + "0x978b6042f39ec348ae7d86cdc6e62b1c9dc2ca95130fb07c33515bfd1ed6339a7ef963e8740788d05d147114b6906637", + "0x8463d8bdf3da25653252c8c6326273f5da2feacc759f33f1dc2ff186bfcc3b1419bef1766e6b5a8b84358eecdbae524a", + "0x8c260337e7d686b29c8add40fe340cf8d6c9f6ddc00674dff84e97957dc04670d94a48829ee558785bcc957c0a024fd4", + "0xb10ac8a8958ebdf9deb715e71b95c1be0ac7155d02cc35b1cea33a8d127ae648f2d85ce9058116d13206ffc0875997fc", + "0x8edda21364bbef2ac9cfd844dea03f1cd1b4d8f4f925278c80b7684b8fa0d84c489a6975279197c967af5f9fe03a5683", + "0xa66c2f43000fb95e9b40c8f5dcba46dda79297b7a024d805b0063a253f0f2b98066af2931fec989786f3ccf91bf4b776", + "0xb70596b80282f9dfb2444b57d12412a4734cdb4bf55254e8989a7b02bbf3ddae09bde7e182b0a3125eebb20595993840", + "0x805ca1307630e3589ad99951c4c1c2adbf5720842b94c6fb2223e34cb3ea8fc78095889f84a9d3a75e3e57ee661af99f", + "0xaa26458b61ffa549ce1a6f38f5a8764bcce1fa58ec4a596b186a3f827ecae3bf82bd6898d41c9f4d387646994d0f4b99", + "0xb08aede7bf3e3fc203f9900b6e340af81709fce417c0d2d4e3ca70754a9dd5e31e23ab846178730fae576e243ae563c9", + "0xb31f0665e108544d577a951809bdac4dd0cb12e812343cb31f3252caee626f65caae05333044e9fe0262f587d8cb86b9", + "0xb05944e826e090dc0d8d75d9c8c05838c1b67670b1399044c9f03e3801f390ee81511052237ba33dab141afcf154ed82", + "0x879a6df348f0fecbfb974832fda51602db8ef97b94edce9bfd22913f2454befe5db7ae531788b148962015a3acfaff7a", + "0x916904c43342a646567cbd541b18d0bb7fd6e1a473d1d7daac28959d5966e39b70a5d82c4d528e4dfc39d2b1b243fb74", + "0x809bb380ce8cc042b5ccd05fdefb874edd7c833dc91d6fa7844558731f9e057e928226446d4f724e91a75c4f86c5ed27", + "0xb72777d0ccb56686cd0a40b28b0b1d29f685b61c4c4dce4fd8566fe71a889a4b452c45fe2eb6c90db6aa6f1445b4cca6", + "0x80e07cdee5bf99289e104ecdd327363f68c9f3fddb1454e55a895238ab167c24805851465318b8dd440db160cd40cded", + "0x97c782d48e4bce45ad9734c5af059b6ef444dce01f14419ce4611fc4a6148940fab40220d262691b0be9416db11215dc", + "0x926d758ba300028cb2e243773da64498b5106fc21547e1a466aea929267f96f61850f828f4b5005dd69ecdd697e24ff1", + "0xb33f41cd885e82986a551783b01a2f47307ac7db13b8c1e493c92fe9801e3a7a2d47073a93f0bf8dd2fd8eb9c677e5ba", + "0xb84cb82b3921e1a71ad5f53835232ad291f884cdd240605b3608349c0f2fcbb6ceea238301a6e744086fa261eff07f14", + "0xb74a65c1431aa45cea20b59013e5c18da60345b0cdbf244cce4b3523d98cd8c61c6190deb5182f2bd15754d227c1fdd8", + "0x99d57acc51e28270d3e67eb52f47c5cc1f1eae8fe5a1e3e2ce7e4aae1cc41fed9dc77664236254e2be31a8eda8f475a0", + "0x86d1a07789fc76f7e22a1be88b914c8c226bf4d676f1a5758f21f4d82d8ff4943137daeb284c7ba18536a31c86cf2aec", + "0xb8ce3200851fd9ba93c9e2c41d511d66940d76f8505fd819c02c0655311587c0fe2310b745cfc2ae854e033810f9bca8", + "0xace17cf06860d81010087497b6416801a633cc5fec01126e4c2a17f19a5a6484d79a691b04fb051525004e5ad3120340", + "0x8b7230089001c0c4cf29e2a8eef3fa4222a8000338199a135295a8389c21ab59cf9af5453909d6358754f6b9f23f4499", + "0x8544e5089d3382ca284025857908ed2df8a8cb8852cde821cdbe53d06ab8c8e0482ea15471e7d9f8115299fd9147409b", + "0x843eaf7f1840c7870da58418344efd56d407b5011a177d30a99986f34e20dffa30a82647fd03607b0498477881d17aa2", + "0xb7ee4203bb3a45e94e056ff0e6245691b5f1201c8891620643e98a772c9bb15452e034ca247aab08446a0eb6105edcc9", + "0x96af85c027eea2908820b74094d984ef175c7e676c1255897a23189c9d1de15a01bedea39971a53e341b8cf0dec4fe64", + "0x81a4dc5795f3cef7e0e906036d45e1e5f7164d541fa9d1d20b41cac01b8113ba53dc24b652d31992622644997d3af3ef", + "0x99b11b51a2b169768221f0cee676bad4d35fc9d7c9d60417e29c8115174327e1cf2d7f345c6fddc2f5e47bf876c6cb3a", + "0xb6b1188ac5f381f980fd010dcdfec5b3d734906f6fb27c6b397e775605937285a9d42e745fd807f5ba410feea88f91de", + "0xb081c0e35c7fa4fbaf9bcdc96e1eb5fe326d6d616dde02c7442bdf8f525c53fc8c7833c97055af4be4140012e48873e8", + "0x819a6c38219da8bc6e6958360c9d535b1b20b358096d02007191b0b939b69a2c99e1fd6c5ffe29633de0838e5b0effc0", + "0x9743ad35e6055cdaf9b158a58c32c7a585c5a8371f87439a09151324cdf23c82580ef5146c573d2bb82f0402ca202928", + "0x881e4cc79078c2f371b84ee21d2ed4c2818959269fdac0aeee3d6a9010831b5e115ad2ca9f382c772408d4d213dcae55", + "0x8db7bd354bd9a0445b4b47ebff6528e390eb42c67444edd885c7fcd78e17384405623f5258167cd75ccf7879e94cf86e", + "0xb5f97596291813437001622f7e243a6ef167cf6d2cab0f512a9301f59323b4a0d834052733e8a693fc529e0eef8a0c75", + "0xae7660ab74912cdc5548ab9fef04fda4cf39788fc36bcbce40e7c421885dfca5dfe0e1ab1d1828a1bb8d9ad449a5c5fd", + "0x82b371655c204ac625f4e325180cf0b060c34530721098c8e0afe5af26325ac75ace6c3d21341403eee3de53099ee933", + "0x84a9739ea0e07f2b5c5562a7e1abc99884611c2456392f3c06795ad6848f977d348244abc8390152fe098073931dd47d", + "0xb2a021a8d82e4d5a4e22ba37832a8ed2e0acdfdf88abc62c096ddc0ec264fb74bab1450e91ab80cc021515e6cea41d04", + "0x8b9c51c5ddd6f730c1855e0160138d19b89c7777e43ba585db22f01f972acb5178370ebb5e2fe36a41f59e4bf656f82b", + "0xb0cc349cbb225c8d56f48928c85ddeb5cd5fcee752337e52dcc72e42a5794611389efaf3340ee8039fbb7103c2c3372c", + "0xac2e96e75133ecb5db9785e025d28cb7d0d0d7677bf080d95d5be1b56711fef78bb113e605821b35e4e5d26ab02b6eee", + "0xad0203cba286b60ea9c5e164b501da89e89e7ebe8fffafc330cfe9fc9c76b5725a5b63838c73a1b91beeea2ded1b80c2", + "0xa3def881c14ca23c83a54e24e9d9b7fe3294507c5dc36b5a1c154eb0536c9a2fd2b3b4ffe9d19c8ec595c36853d80237", + "0xab8d57c56ab892fc8a3f7347cae075b92f30d45e6e120ba35629276eafe566cd38867daa2a26b62cf7fd0487f907caf3", + "0x91388b97706a0d7d87eccd076eb5416c7207e5c7c060d16631bc014071a5176cc910b2c938402e326ec9da086601e40d", + "0xa4eb9dbfb16db05cf23c0f5836e9f60125febfac418da24dfb509cf240bb67ab56b98e252d6266a31d311de6e36d5b25", + "0x8f478be5a86d1b9d571ed8d60d1154ccade882b2d8ffa259786ffda213d6c0ed53865ff9e214f65c1e67f6f6bc3af0f2", + "0x8699dd4cb9575ca3289ff9d4a58633781b6943b2a3482e1f9e0a5b45d83777b1ade3353472e250483cbb44132b0f6e30", + "0x82659c833e7363f56db4ac7c8b8efa3926ff1fcdf33ae237535b5f1d17e958fd043133f07e86da3be3aa68bc34aea2da", + "0xb30d8fcbd6fc3af9f77c4a6ea50e335bfb22de138129a92eaa56dd4f9b896ec103b2495c69803d7430df53f5a37ae359", + "0xb49a9afcafc193fce0546137504a544337d48c9d11a47def3c7e9d846105f8c90ea9afd0e08359f379151edc97d6b440", + "0x97802ecb6da2a411990834aa36b268eb069c07af8ba461feae66e936030530838993083bcec7f3af713eadaeb74bb4f8", + "0x96f743b612054fd4143faf7eb91767943bf7822287828edc78a2764388e5c381cef4281da5a98974eb850f02a0f2fa2f", + "0xb8879a005cd58b6fee6e6e2b776698b9f71df27d9c9d55d59f74cc25ebcc1ee410bd45e4d00eca69b95d980f06e21ec6", + "0xa1bad417aae1e45fed5b46b70dfcf0ac087d52a028672070d7291815e6d3db9c56932241a4db22e711138eac49e5a118", + "0xb964a763d02c1f7aeea8f562f0179e3b7f15aa053eeeb70e432234af1679ecf06874c81eec31c6f50e3e62df894374a3", + "0xb880ddd326904c443050f9aa0ec05c3956f6ac1be7708afebb3c01d80be5fefeae6225b5be42745e0ea23ac31f0768be", + "0xb360884b5c67dcb72a3825979e7fe210105d218e2837dbccc77db9d46d95139ac68db174c77379d4c5c7bb54aad6ac97", + "0xb83e83f2c6bff14ac1ff839d321cc97fc754bf67d4ce11bd0277337ba9796fe89e22daa37fe8ebc92866bfde5c64b0e4", + "0x924941df4e77bbc41780ac9915bc68f15239879da3c6053a37a47175423450497b3c659e0652e41c405f0dff4079aff9", + "0x83787a701c4fd6b456a4439877072d64addace491259a893415e064a98d283364f514dadfc943204f11150df8ac2abfa", + "0xa93be71737f045543da30cfd3c91edacd49767dec0037d0f8a1fe1f5a8c22554b8c79b69c5fc296f3fc2c08ad9727e7c", + "0x886596df22aa6b6879607824378c7aa5408af5b2540816b4a1c4fa8ba203ccf9ed25edbe7c9b11ec3917e804edb54f5b", + "0x89d1c345d9e70929884a1376dea9118e22a17219341fb3a013084d5e02762eb9721c46f06d5c9c17f48cd37fba83a6ba", + "0xa4370718550cae284ee7dbb16b0219c6648267ebb911170010e71780c845c19ee344a3148d8db0b6e2859fdedca901b8", + "0xb807324b8248355647570d3e5aa4d153f0772c385fcaba11ebb25df6fbddc427b88e8dd1c2c1cf84ac30ab06b6cbc27c", + "0x8981e36f282dc333f0cca59324928e55f7189f928e9cb03327a20603c3f9823be59dcff348c7dae2ea6044b5d3d13c2b", + "0x8f34625fc1088e01aa28347778a5fd991c8bf1956394ed9b4b650afc596f51cc9dd6dcb7b5e18526eab58f04f06b644a", + "0x999b6376ae9a08ae75b1d221770bbf05a95de0aaf1248f96d6356a802009016d8248f5132503a11fa807d93f50a6166e", + "0xaa644f55a4fe2c4fe93117a7a0a4098e76e530076de97e6f2c3c9f96873800e27f11be5973c9e2412290251924860066", + "0xa2c5267418cf7be7c97a8db1ce1cd34fbef86e2845cd2c924eb2de2fbe1815b895c8f8e7f797b96a0fe224f2551c124a", + "0xa82fd91ad81672178c85f9eee57e66b884456b7a89459170b2fb691f08ce532b07817d967881539e21c618009eefe61c", + "0xa833c33127e97458c6edd07459c16a0030d6964c008bb0e4cedf1250a6b4c178357c70acd6060442ae9f1c17a7085d15", + "0xa342eef9b7a2979f300743bb2e172a74da4211d8d6c8801687869dda7f87ec2cefd77ea3b70489e2c40f6d4728ac06ce", + "0x910b4a29a599e91aba3324fbc12bd8c9df290352315ad95ff60eb6d5b25cfd3749be7607568e3d2afa31e0d8401b2db5", + "0xac1ac9f020a1276792fd710ba9bd6f594a883cf53305be8931db467506c2c039120b611f7cd9f691d8e9716242c76e4f", + "0xae74c8c158819f09ddb24d4eb35808d045517e9e41d4af36a6dbb4629d16a1954f68151a3c9e01a423ed7097b4c3f62d", + "0x910910498307cab046fd35e5209a93c32e624b50fa48aa81ef07d61004cad04125ae937b9b23a03e632ffb32936d6f6f", + "0xac7fa3b0233f639007056c466d06e7a8f4c03a0487806d5f099416bc21a67f67628a7fbaea02472fe8f5d428e6bebc34", + "0xb7988fa45bb1057ec0c64e66d692267aae6ca0f4605ede924d548e149d31a316ad3b3d7c2922748cb93faf1d81c03fab", + "0x858c9f138002ea683eac1512253a47682bace5bcf36e4c12e9f696383a286e1bcb11ce8ed06f9a192629fbb7416d5c30", + "0xaa2f320c10d797077048c1e006d6f0965334e06165180e0004d053b684d5b8caaa4df51f757af1228205eca32c1c2139", + "0xaf8f8d6a69e7f8c3eebb18fd30701cfe830bcee5aa284a93b8e108f59c15d0aff1f9e9eb817f892e8ea19046f7f84f24", + "0xb31b1e004b8ad286d7906395205c8907795bb785536b9048876014bc6de900822b9bde7e4248de0b6c3959e356ef94ef", + "0x8a798296d866aa7eae982585f29dc926f3be9a55ef1da63c1b8d9bc98122de523bc674a8ee6352016a2ed601109511d6", + "0xa28ab1547153853f4991ab8bc28275886a3cc817c33ca0ebd1a634e806aca5779247b9f549ffb6fe53103acfc43d1a69", + "0x8888a415f7723ca933bc551dc9fd411d4b933da5c2a710cbb8ca51a099f78922cc75934cbf4cc065ca386db93a568009", + "0x96657a9409cbdaa92486b1457665334175d23d02243127697d5a43d76b0be7eea7cb054509396e76ad2c41295d3eb019", + "0x94efec2bad2703f5a3e6319e86b233f3159130072ae4fbaad94d237c1a095d5440328ed6ddf75b375c15f1bd0091adaf", + "0x82e6739beb277d586e15ea5968b8cfc94d47a88a85542192a807e0ffa829cea049db211705b96886d574bd73c4d5e130", + "0xa4aaad0bdafa885b577a3eaa5fcee4f516aafcaab292eb6223917ceb9a43f527efa31cef560a33d2db06bedc3545348d", + "0x9894a62cbf418f444a147ffa884fac1df076909629ece14fef30daef547993ec790dad1527bfe2723b79f7a48f3fb580", + "0x8aa1865603ba79081948a00ca1641926a574d6d8efe71c7227d1629c9eacfa05c8116bce0564033c9d490567010715bc", + "0xa0346e649121326fb80d99869c7369aa5f6860f38fcfdda22cb1abce41fdfd61baf577b2f1bc7396e0f6b27371afec39", + "0x8ed08ef6241ab0c6b11e41c9f50ebd0a1fc4365b2960a36635fc94b5d58b20483d240dbe34c0e0a9411fcd9309a5331e", + "0x8bee4bd08fff43f70e9cb4b57bab480ae55a6919b4926fdd07eb6e92ef85c9bb3c97c9c05d149ec34c67c05099f67a32", + "0x87cd85c6129b07c2f213c2da5f938d296de8a29940c0a3ceecc18e7a3b94f967511b03db2bdec96ef1f5b93e01be0737", + "0x82d77c1a2e83df0e63312529352fd6e60baf59c716b382a116fb4906a18163d9231bfc4905448da6a6b8d5626647202d", + "0xafab83d475728135b81217d49672f067a10c339ba11325dd0785fc2d9de97c95ed1650b619c26d950c07955ad41c5293", + "0xaf15f571aab17b49a7070c1b65b29532ef722376696c79475da62dd7ea4f5e9c3f5903885bcdfa412760d7829720489e", + "0x87220517aa6aa78cf4de29f322dc622dd8619f5e421bece6bac8984cb9199428e23a3a05b3a58ed9987218f421ba8492", + "0x8131bad0c24f8b96277fbed699678eddb33d384fb47c4ac9a674fb3290ba0318bd5de5bf130584877e24b6a8479de567", + "0x814c704c0a1acc070a950029d2fc78e4bc1f0a76acb302877fde7d126e4bc04d1aa07806fe1208dd0aadcc60b1dce703", + "0x85d00fe3ad92afa18f11f1f777e3e2d1b6c102ec21c04936831951dfc148693a75733bb7d1f6ac7f90f7554e116797fb", + "0x9375de137b57b624f978a37c3cbc4330171792016bdb1d966be6adb7b952080301434e8126f370986b50b105d59c6e76", + "0xb332ab3f85680240eafd13f53a8fc31b6e5467ae42525a0589b1933dbcba9b3a303655b1168f7f726c1d2798ca171406", + "0xb79306a9045d02f6dcab960ed94888f97a38766150f158bb2a263aab862e2f7f2a4a63fb884739d1a4fba81c148a900f", + "0xadf645fe095396c9fe09019e5b473afb4b010ef2a1defa0a021ae4c385785e0b5bf5abe4df2955f4e60bb2bae3214c11", + "0x8b36be218fbbecb5f926249e2d7b6345955354e1797d22604b660959c4b127d62b8c9ab4da90ddefb96d9a3aec6cbdec", + "0x81db25aa4418ba84f2ac1f8ff162a9b584146e5ef576d7fd8a544ac01a830a1f509c400ed510ca30e47c845c78cf08d0", + "0x8efbcbec18469c9ebcf8a2f339f9f1f1aac015f878a53668d0f7920268c81667cdd90688fd52630e0f21b0f3296e2973", + "0xa5f12589653d6d0f289f575e15f8326ba907128825457a833fbabf0d5e4c75f4689c3e8c816b3970a9bf96397119af9e", + "0x89d6e69429d6cc7d75e83527eb40bd2e7ca67637b990bd9268a211d0804ec4bc986aeede4b67d9a1cc5b0eee9baab29b", + "0x83236ccdbd778161af1609f0208a148245e74e795e7f127ea82d9892e9a8f8194ad3ad146decd48f057bdf4e6003b6b7", + "0x8845971bfb804fb79b8529569c979f20eb9ccfc31b2d8d64526c3dbb18e0a7a6504f747b1d906ffeb1613badf8d451ad", + "0xab5e304c6929a0b491434a2d58c05470ebb49d4bc6c10576c56fc6c59cd2fefe9e9603b5502eb8ada5d32d98473d93f6", + "0x8b1c651c4e8e81cbc4133ee63dc1cb3992f279ce0ae0284442207bb60d9641348438f4765ab1a495631ad7ee4d3f5319", + "0xa3e16bda3dbfc93c88ca5c3363aa75d3b7210af5977664b60970b451d1d1e578d16536c721faa3dddc47cd972cb8663f", + "0xb1e2d8ce59b750b3c49491e36153137f987f4ebd5238b8604e1a839666bf7f83245064ddd6fc0165c1cee3e16f58c9c5", + "0xacc482bf701262bf782a778f324d3c696a69402cd390cb052cd429289f91a9e6e72b58fd7698668ef0dc363d4bd02085", + "0x96f77660bd5ee4df431914065f2dbbeb821647f5657c1c1b26e4e6ab75e8efe92afd8fcac31be94d3daae242dd1bbd48", + "0xb9dc4d7d65d3994d6d273c87fef097be1e7f316132864465005782113795dd6b56147d6dc30ed654723e42a6de644e5a", + "0xb20c2cc06577ed2be77d885f0319814c5edd48e1f812f09e4cd9db2681bb4bb63704b560e30f6808d6bfbf128c927a6a", + "0xa0d507c63706eb66b76e0e9880d086cc9322dbb9fe8fefd0ed9d6a86d94808791ddedb9e52ba5147c2340b7dc53f0728", + "0xb148c85d6d205db008c5346b402878e95ffa7b2d140bee0403ce1b7452a032fac0100ada91acbef43615b82462314e20", + "0xb7c5f3bf04cec2e36d14de59af205f87af2659bf96727faeaf4e52f3f669ff10682e85f15541dca405f892d8212982a9", + "0xa37c34e90d3c3f3dc6b9404f462b32f2b9fbdb274ac1cbdb2d81454fd5e309c2f87829042796fc937559cfffa89b2189", + "0x81cc7bdb404df3cb269fbf13aa572c47c3291919ce35432be9a0893bbb910d5a112c8c50c5a29e24b5067aa236b51fd1", + "0xb5fb48a29e73bbb7e3f5124d73a5e62d1a6d909c7d57ca61ccb2defe5bdc8b83ed00f83178c68c5bc361233c5a159cc6", + "0xb964c634323bbf80b0f9e5889af61d8ad2f21319ce1929232a14f5ebc374da61bea95e2a65afc806595f3c026f6d93ee", + "0x9440740ff2963c350a7f50958c1e6353fac1e7ce64a9bd292afb4d2bf313a4d0f9b3352210405ef2d35ca20754e1546d", + "0x888de74e49a52292e0a84c7dc98e9d85929910283f48a01faa78b83d236ecc5663d0ce169172ef7b46cf92331096d24b", + "0x913927b02c84600487c65a7096260e78e28f8a914ad57cd8158ffc26240ec46b42aca6a6d0e6c4197151878c0eb9dbfb", + "0x838d83c6ab6e741dcce26904899a876bcc9263f9d3ecd7689324c375e1053d6bae6f66f4890aeca1757339b8792899fa", + "0x97c0bb0750c37aa797cc367aa8feae813f96bdb97b0c7cd0019608e28483dd67fd8c5b341f8b6d4a288a45af054255ce", + "0x964a1640002d7b9c08c424594a71baca0406bbd96d30ac127bab7ee6d7d7b49217ad894ecaa099db5ab995fb54465d4f", + "0x86d9f394dc2feb123a896059f9873ae1c310bc8989ced9fc1a2355709a1efa19eeab4e54dc1faf5af6052b4597d69dbe", + "0x926354811dce6b05d8d5b9d850e24d4a9b8a49bd1c24ab6e5cfdc05c5bc14558bc220b5e8860e470ab2d7643fe42a1d5", + "0xb88ccdf4cf0630a9b09a058603e3290474dec8b8c6b5e8c85a7929b4776a623bffd662397f227775c08451bea8fabe8b", + "0xb5bb667f3f7a79cb36d075481780a6ab76709aa18c69bfe7f9e5f847ade6eeef06a8da9217e0c7ed8d8f2a9e39cca19e", + "0xa3fe7af07aa8960f71d5aba225d5ca70be3cc46b636104f402b6f9bcda39622ca638e5c73d7413f2bd551487045069c0", + "0xb10ea0e5f547802d919bbced6fa11d9a099f41be4115014cd9f89c1da1aad500d51ac5d53883712b5ad5b3efac3367fe", + "0x991330f330f532b90d434a92633b8dda19b5110814356e51a7ef799731f20f522ea1f7a206fb1a84d0fcce6e59911f40", + "0xb6d5619e19897ddc05e2a26d6bb3202a3a84344a6092a329e6d9e55c26499ed596516dedd4678df3dd0188ab32b68ef5", + "0x8a1e281eaa65866d47cd732706436fe8e3833d78c1335a95ad1695c84b6f744c0adefa6f09105d7f4dc1b07c79344177", + "0x84d1e7c69bb947ee6b8b0a07225e4c4b887567e188cebc23a3754ab1d0d3673c85f68c730908df3ef914e2a16cc6a07c", + "0x8ea238f666f2f1c4892d9d72b056a2eaae8374293b8e01078839652565b4688ba8604858d430f6c18d8d4668d2cdd70a", + "0xaa5add841ecfc581eceff9acd65c6f127d9b271573dcb32cf81081e8fe07e443f778ed2b2342ce68dfbdd308a8b986d1", + "0x9270ce757201ce0e15db6bb08df713b3fdf59e507c311782196ec89e15bd98069b52136e8cfde697d04ec080b9846403", + "0xa7e9754877ae48ca0c6dcb6ca4706a6dfa463928dd13f875412d00c23b2fd93a6ebe54da471bb5b854698ec4a201d476", + "0x99ca4774a8c56bc199d61d3cd450bcd3713b1614bf803f15efd10118f845e6a8d516a69e09d738a4c84a83d3ec9f16c5", + "0xaf403bd08401fc8d9753dea792b1aefeb3b952ba3ea6bdb96c4ec9f3553ccb943a13d8fc1844be86734adebede19c65a", + "0xb11e0b7047ab828e36e628f960e0d6dd481c841e2698d86d1c0284be849b8a22b38ea5c4fb4762c4658ade0bf4d5b49b", + "0xabb0aef936876d041b77b2946d89f4decc72da32dcb3e57119b432f2d9c327344688810f521cf5d4d737bc38ac46cf53", + "0xa7ab5b591040fde0098a1c716c28c164b29f4168b87b31e5ba23c4941b9f3009ab4cebc14706b1d36267b35e245ab7fd", + "0x99192fe3a5c4a960c852529e7cd640266c5c8f36384a03d3eb09a19c33598e21f3b1201dd6a4dc3e2981605d937c5c8e", + "0x95cf728e753551c042d8bf8694821a3c93c767d6e534470ddb3cacc3d3726e498a105b83bd43a0b94836c0785cfec078", + "0xb312bf47ec507dd0331c64e3b4075256dd1741dcac1540d058e7f276cfa01d195aedcbaa51f03ccef2321ac6e4d0c5a8", + "0xad8dcf225c0afc88eb61167f47df8b623fbf1c348f1c0aca31ca4ad3b4cba99c5e98b24d11ab4f638d854185bea12d05", + "0x989f9d6e305074818050481933db18bd8b4b55567700ccabe7711b25c290b2ac49b26412253ecd33fa0a285eef0694bc", + "0xb93087b084a177b29e567e90f627f0f1f5025ececd2696eb9f0f2b691e80c93cad69a3f922bb500f626381e5756071aa", + "0xa62c2240200b9c01b2ee2746e02c259b6eddc707b762c7ca5ee453104aec134ed08389a0a1f6bdbaa02a5f1de7e92b30", + "0x82ee492ba5a723c9fe1bc263edd45d9e3a7b076dd0f33e641fd34e68be52532eda31a5a9c05a634eaa56c9fe46067c4b", + "0xa92ae6b79f6f0b2a86dea11febe3adfea7e1bd8b6d32ab761fbf6f9fdf6663510f07cfa9da0d758cb5451e3150c1b85a", + "0xa8cd176be3e266bb39d594242c4de52f60669be230fd24a11279e3c18ebd179155113f0e1a6968a3c1249c10ef84e1b8", + "0xb203f5f69a6e0affc3e7977d5245876d44a2f7e33a0d91c5dd8a702804e9068a8d628651d2e00b92ae1acdff5a5171a1", + "0xafc1368fb7e04f821793a3c801f282b62640183f9798baaca29ea3d3d6671aa0ea7efa8685ba44c9ff3ea689f2b8c52c", + "0x804bce7162085751e93e347b0a1378c9e7194203296d383f5dfffd4c8870015428e0f81e11ec6266f1c1489574be1bfc", + "0x89fde5804754c0e3a3f495273f943e6e956303195edb5406f024f265141d6617d24178c26a31ea274d8c2e179a9e927e", + "0xa3bd5daf28f4da27084877383d2308ac1ab3568637c6fe588fbc9d253d827a287f4b3d2d5596944b067407b163034e29", + "0xadc915b0792b01c44460564a59e3931017ad8325b2afa292fd5a547e6bb1e88a474b65e18410666619990f7e5a096c09", + "0xade28b76d63d879c5603de64e85d84b06cdbc0e2626542f1a6b1de86bd723b02fde3e859b9577286b8cc1cd7fd418c7c", + "0x80889e9b40c12e2ffe5eb06be3b7b41e6665fd2afa51b548178d00fb1e402c5144fa9e458a2f83c68db9ec13accf7af8", + "0x81f56e3790293973c9ec48810506afea620b09f5ed7bdefa7d00ecbac94fd8757f0bc353aee60cab7a113f4acee61be4", + "0xae4f975d9912c41e0ce72613455fcd0ff9c78ef6aeb511e684aef121d619a56499ea8480a6a733842c78c61f57efe61b", + "0x94b71e8f8dc9f435043648c75082b4fcd511ec917901d6911a157d585ded8c1c20457a284034256ef685d78c71802e1d", + "0x838ae142dbf2feb9ed43deb10895671896a5cec4602ac779d7260d1610bb9de199db8a404c0ae8506916741c07c7e45e", + "0x80d1aec12e837f6a1c80204222bbce595eec0f2ac74ddab459506a0bd0404206463d2587d4fbf829a582de8c6644763a", + "0xaefc99278250e3b076866bf432b676b2029cb9ec2505985057f91fdc6beac8354f608e9ab42e11b4d71b09376b3ccefb", + "0x83a9f7e913e3debbf3924df8bfc9d3639f8ae846287ac0fd41a76d50bcf64deb4b59408d52834ef1f844f27a76ce76de", + "0xa46b362638378931d7fb0442cdcef42977f8d5bcb7022314f44f26137de05b8486341f7640c2333ce4d62d6c981c46ef", + "0xaa0670a7bade0cb26d95bd3d3e39609a2810c5a317fe564a8acd3fd13a75bbb038e4d9d8ffd5ed9390b5bbfd0804c381", + "0x91b5f7aaea5006a35e533d00a6af4f8f44bcbd8d30800b11e4d6a05e5c61904333a83175d35b3645b1b062b8a691a65d", + "0xa23d56dd2d46f36e805c5cacc6210c5b0bea6b2bc95cda0c59fb052b27a8a59ac89fabb070ef30e67ec670a44448f6ec", + "0xb71a5a288306c5db8a7ea20db03fec797e73b2d48418d89a33c68ebdd1ef9d549c8c23309c6e3965faee7aaf8c65dcc0", + "0x8db498b477011621573d04c392857be9a3ad08b17d4b67acee6f60d008cbb0ef7e1eda57bd3f27c723c2100733d82dab", + "0xb70a4c983fb1f75b388d33e98d5090b3c3dc41d3d2855e5d2c9b5b73bb01cf88d393e079252d29656cb2815895a6ce15", + "0x888fbf6fe2837848322492c33bf359319968034b496f898774d5f540ec9dbdd076f7be20f1a94386c2668dc71fdc394f", + "0xa683b0ec7c09106497e905318717aed9b8eb6d9227692ec40b48a5a94cba9c36dc4aa6c0df526e66df1c1f48bc07da73", + "0x839e5497335c08cde6a38ffa2c8eda40db0b15877b055f9b0abc241376156c6e161bfb309cdc83fca94c5e93e705375d", + "0x973360f38774fa2438daba09c4dead8c72f15bd8dc1def58b94d233f62291001e8846f766a864a8da7b78740cafb9890", + "0xa1ea1ab5ba097240e176aa0eba9cba97ea0e5536657964247e0df8d83a0f4968bf9d6d7030b3bea04e6266f1e2f367f4", + "0xb94a6e63faa6e2189278b17eecaccd62907db88b1885f78538750188915cc5808439385891b5e469cd4dbb4e1f48237c", + "0x8d1a85562b22d2242cfad536fd8875a2a8d7c69d5576ad6d001f037edfd54723e2e93ed3615682d5852ec33cd3c762ba", + "0xb5df8d84dac225f718ccfbdbfb2cefc506c46b7214e03402944460dffdcf729df9d550a5015b94cd75594bcb34101459", + "0xa06691c0279f3e7da0759f75ddb8342af2f4150cad0fc0b87b099f88fbc393d8915b0ade9cf796425a45703bd0207a8e", + "0xae48b7dcc1734722b6a90f056073f306a455012a860b18ff128cbf1281dd2fb64024ce00fe98f1c8f77ff8577449248e", + "0x9959c4b644881d5115804f2719d2b6c70901637ed7dda7ea73251c2c4e48b398cbffee582649b75e61ad9f982f7fd38c", + "0xa4fc85abca954389f221a190de96b451ad68eff67b671dbe7006f48a26770afcd3487acda6d81df970701d5b4502622d", + "0x8aa77c4b455ff2ea4f0f70273db4e5691fdb5946715a2c9022c44f87f9dfe088858596d9db4a336743f5061b610efee9", + "0x8178cf41e1064dc694a75d885c13c62aac331f1696d65e51976581e3db5a509eb8cf9694a1ca7a75ec8c69204a01baf7", + "0x8dae7f8c29b47fdd09a45f2612bf4b39212b469a68a1973d930446f6d88e3cc5f21dc7f8e6521d279a2160269efd5f20", + "0x8b037d84bddbdc29ab1e6461dfae5bd3d3a4f718331c62dfbe32ec05fe2a658a73935daaf0de192a069716ca1e2a01b0", + "0x9167437dcaa5371325d890af26d2af44c88161cd157e4c12cf56479d8a7009e0ba8633a18e45063feb418a96da4a3ee0", + "0x8dabec2a7c4687a5e1aa77eb8b8f9a4722c03f0e952e80cfec92c59b82677d93e1d72bbe45b69a0c95fd43da6f049bbd", + "0xac3b56d2354f35d632bd572f3f695dd7edefea62a067843f4163271655718838b842836cd41012530f1c59f67e1c829d", + "0x8abbdd6c90808ada1b3a2491613efcd275932d069f427456fbb93fe862548de56a22ac5b2c4137eb74cc391852769390", + "0x8c8dc9d9a4a9f7496da56d047421d3ac4fbf4f41c97f7dda491140d43310aa1d5d886ff8026f9315ea7e83184ada2ebb", + "0xb2d61964574f5f988d49c6e5795eca267ff134b667d8b8ec192a74dcbff95873aaf056347599b6057fb65671fc44d88b", + "0x8c7c43b89f63727c3f4447f2f387796a3a9a6fda9cae68a67fb258e852dc23f76e7199e2f2d7fb281e05f9abc2b2d55e", + "0xb7eadc51848d519ee27d9fcda5f2335525c644c94b1b9ee203c63f8719d5aaf126b70de1b8d7fb3f2eec8d446bdf3619", + "0x9761ac5a49b4c35dcc5197616ea8b9fbb14cfeb93b3ab38d71cfe0d0b0f20de71ef79dce6a09a21e59b307abdf4da5f3", + "0xb5b04b0fb727e2397799a586a19070c74a8a67c1582004a3890180567af2cf742c69bcc4feeba17becb96f1caec9c6f6", + "0xa02a2c3bd553e80f16751b4fd2184be3ca8809f4cdb7f9e9aeb4733f354ebfbfe1f1e438e5e01063768e499346e9122c", + "0x84f0d5a1415b336ec529db15f2605fc825aa9fe675cbf18f113b94f0e000dd6394912dd2f45d0b040d10c4b15b7182b4", + "0x95e606150b2762f4d41a5bf684a5ded8ab6d039cf3784b7b16fb2217b94342c7e6627cd605de88b73ece2a7300817647", + "0x85c1f70d0a514d31ad6e53ac402aa5a58657d913c88a8e6e30e6d5eb3b35c753999a96242d028b9e183c4391d8847dd0", + "0x86346a5d5393882bace58d89a7647e575f9ceb39994b180a8ec5f942abd7e43250855319974a3f7420ec2c685524cd28", + "0xb9e2b3286c457c722559fbb4bb90b89b14378e60008e959679c7c083a929db741161f47e3eb8619f296ce51993a8158a", + "0xad32714b669969bf97e2a1081b7121089967327a6bd5783ddcd98d32019b242fff81cdca2c6072fee29e5723bc496ee9", + "0x9836ad0b845e97ccc4b77691b3202f82034997d71a87f88f78a3c07a9d2e587ac44b0b4467ba08f006b8f5f958983724", + "0x8e60ef0682cec7fa5207a661d921eeff25cdb9b70c8057efac30a4d2e87812266ee3579b6bc2e5392b16f26ef453d82d", + "0x937a78bbed047666d37d865a0640197f19878a4ea4ea6bb738a973e09326ccd398966a8f322e4aff52bf18572ab9756e", + "0xb4f8315e15c406e151544e9e5ecc854274ac2ea856e255470a0669f719c8fbc2c24672e7f3bbf690998328853f316e9b", + "0xa74afee1a8ddd7f5053855ead4792df93a3ff36934cbb2c827aa61b395d63738d4f4cb2718b16d1de0d73311e59b8293", + "0xb0c84f56f30abe406dde5c62a4b2952ab8d7b0090f3316b88de4ecc93224bf70c2a8f846a78787b09141795cd1a3c2c9", + "0xab529bfb0b2ba5c2ea164aacde032b63a91d924c3d15caade13f1e8989f1bee806a60efc27bbdcf2fd7129b72f90b533", + "0xa54721c6420d5c78521c53868929d2f08e543d10d0c01cfed1b3cf38bdd9abab4ec5229dcfe5aec41d41c77d0a93b25d", + "0x94fc6f546ae10c52dcf78c72df425d25ab6c5ec25b867e78aeeb77c42622ea87052e7a08197506462b18a9518a1252aa", + "0xacaa530fd9671e9a0ba07a19d8b93031a3239d7d3a818d6a7d140201b10d1c4a983626c526cac27375f9f5e2627ad502", + "0xaf1055fa3efb33fdf6259a73e65577e4f0423d03e9ef8ad9cccd6250bbb724d5d1f13db883f5bfe40d6fa47a57b85393", + "0xab3f1b57e29d35967bf848c33cd066e30137f7adc4f58749c65359b9f184d9a526dc081781a32a7316c622dc941613d8", + "0x833f8e80f60916bac54771552c421eb34c457245e9c44c3328b886afeb1a9dbc56053a16ab70744a11e3aee7e8565aa9", + "0x8a8019481b4675d3fbfb7adce4f72c8c4d2a8194895817be8739a8e6a95de280336fae216264a0bfeb30f0cd0b675bf3", + "0x93b125d666464077d7ff68e4801ab2930aeadeea658a76dc4d251bff98f02e9a3f4dc8160db9e14794266bb3b7908e64", + "0xb37e55721f2cb98432a1c9cb8f5ce7e466dd2fe21e08f23250864db494784c9c1c2cc579f52cb1d58926304d564c9142", + "0x97caf2b7fe768449609f692e5724f65a3c84cc0d656df85542d15ccdc4a4213b031dbc12a985d9ca6cfda89c456b0f77", + "0xb09f59fd9affa94ace296e2e65f499db39a89b5df69325c132f5b6d10939f12618f407825e14279124e5687d3ecc9348", + "0xa1af9c0561dc38704b032dff07de45592d5bb208cbd76fd3d6bce9eaf3419110de02b984e21a1feeb5f4bc70017f25df", + "0xb0404dd60dbd5524deb6389b7c26daa572e64430984b2f5f96d8fb75db40d6dd08fe563adffa6f840d86a45017026f26", + "0x83d0645c64ad57afdc0a3a7fa3f458ef8ef63e0006953e1184c229367eec898a651a7a1176071e37acb2ab9d31f641f2", + "0xa45f0f87447d0f4699af3233895a556340b0f53f31907ac339a772e92bf25ebdfd4cef8fdd16dc870247da11fc5a0016", + "0x91e8ca7b91a3907febbf4d3268016cacecf1e196a6ff07db5372af2f84e605f0e1e29a90f7f5b6fd31a9d5920100e7e5", + "0xa019e1b151524162b7f5d94aca1f74caf38a2f38bd65c26b225215fa6158b319b7bf8e833e52385f7a72ac120f7ff082", + "0x8015eb36f33d41aa83ed054e9c3b8e434f84a5033b3fbafefbbcca7c8c0037cad70eeee5c0d31f92ca607a3d3deb1942", + "0x988ee45e3df7c447113935f3b66e9a940c8d18219c40d372bc736728161bde711c3826a38e7f1e7a143b07773487536e", + "0xb981fbfc0fdbd3a1d1d46a88c24c679f0060d90299429ba8cb064f161e49121117f5b66f412c3c0b9217609a990d7d61", + "0x93d1353f6cf394ca4009c56d05ce2d10cf7385f38ebf7c47128ec91bfed297bb616f73c7c8b1987637115ce1eb7dd900", + "0x830109b2a5c33b9c00e16b419f68cab11c0766361ec9e7f7bebfb1ce548b928a74e9e4069e7582f6e02823812009f19a", + "0xaca1367f197d6300e8e4510e0c60f3931bf698ddd11a8a9595f3c5dcfad226c52b5a75c3de1083610a9544e29423a693", + "0x90199deb17941c3e977a58268140ef6b2c98b9b2098d64bafa7a675424de0341c4459238ebf59d9f660470c90fb5fca1", + "0xb2ce0db44ce2870e2cf0f97e37fd90536e27600db8589a404a3862a30dc994cea547b6d05c835f41a34f63ed1319e910", + "0x927c7c13107b4c6859433450f362f859926ed7cb382c024649dfc8c16ac561da674a6f6751d891d5caac0985f7965021", + "0x9036b6aceb5e070387803664cf29ad8877c929047e8f343c63651fb844322d55d92beec225854688963d94e1bcf58d67", + "0xaaef7f1bc3fee6a03f7f917210adc808c0ed3cf3c06a54e74573f20d4e977e6d52cbd188d39144acec0a85a0fc619a68", + "0xb1706cf84b6510c30423993c407f18df220f5b2b795c618c5b228626fa8b19ce497d894b3840400827b0acd791271533", + "0x910854a3e8800a014d864d085aac496ae42d6ff5b9eecc9b8a65ab6b5147b13fdd2ab5bed0fdada5382ab5bc0da5ac97", + "0xa91e48d526fc11761a64f06582d99929e9f8abc500f6d0aa2568686a022c892f19c8a38e222f0799f8d82a94cfbaa634", + "0x8f76bd2093c91117a99a6b36cd0e3f39f233e99f3a64853664faf8602b37864d35d1771321c0dc449a9bd25021c65560", + "0xa2e57ca37d5dcb651109e47f6a7af02946cd5b684ab7996fbc4941f41db42a47ce208673ed2f20b9ddda1d1434e18e5c", + "0x8924c6d0cd8935947f1af71d7b2cef09a6246d3e8ae9d589fd5334e9d780f8c749cbb256d0cba5fcf59e124ac1e41991", + "0x94a09d8fdb4cd39c759453f1413981ded933b739f3a6808c2ea9bf3bc688b7de032428fcc7a60991f86a7eed7b04df71", + "0xb0d761ec4501d3370708f5170d45e8b7bfdbccd7915e4a31cb05f5857b0d8ecf3b0304ef1b511f609652d3c3e0b6ab8b", + "0x86db986bb2a1a07aa292669685f7398844f358441c7ce21af0d08db893fa5c31a8850c62dd1b0a2110cde7abf2c14d94", + "0x88bde35f988a274ece4036230df2c2c5bbe2d49852ef3e7a35678dcd86659de0de2e806e048e432e327a015da38713ba", + "0x81777afd02300cf23bdbbb2761035c201cf3f7e79daa79640d3863295982c912e2db42d928171cdccec912dd833aea02", + "0x8fa8bd62a40c18a3212796658060f64ddc1907f14a660ad84cec5d640103f1e2478d3475cf7ddb32e3ef8387618ea6fd", + "0x922732e9ce471eff2806b66272fd04ebf6f215193430a00f590580f117e8b4b242faad3620063a19344340c9fd022d87", + "0xb4c3884f0dda5f35e5e28c39020cd2accc55fcc2e43483e0296ac1100357af603d5fdd17e26b288079b6ae6b43119626", + "0x89675b98b7221fcc88074f570c29971e5cc93dcf7ef83574203938ae8db95528923e5343ed2eec62c3fce758095de007", + "0x806531b7a4dfcefe14b1b56cb38d7eb83d54152a8fb4628332ba5f05f7f8910062f251299283f2d7cd849049e6b5d2de", + "0xa3ff46f822aefd2d351b17ae0c271b44a66c586055158ed3ffcac3b108c7a0736798980120e1dae05f24046cbda890c0", + "0xaa01c7c38c3a93ba29e5bbb8867eea8ae7ed710c0cd5c83d1700e34184be25f9873938728b4b0c8d3c84106407c022a9", + "0xa62a1c9b37d34a8012920826c90e2c8168cb97a38960bfc95705d6c015d3bce13b6f58ddca33281ad1cdd28a528f2a52", + "0xadbe8810d8a18bc934e4971504c8baa2cdcc0af06ba6842be22beb9edb85e8ae2d7cc8aa5b459e27f9449bbce14e9be4", + "0xa5e4bf2bf0418c1c78182b2da99ed1cf2ff5ce156657df27ef92953d79011e82008feb48ea7708cd632cb1b416b3a02c", + "0xb3e5b51dbf2de89cb284939e1ce36605fb19cc54346ed90d2519a9ae653cf3da46a92f3fa76ccdf11781f88e9d45528d", + "0xa075ea81ca690a2473f7223996b2ba173cc9deb74ec3727541a10b2ce06488838d28bad3df224c62ae721b01a6bf7c2b", + "0xa91eb3963a1c6572472a21c9d5704a6950427b2033ecfa3e464bab7db8db131e475c1b8e815db8c55183754d0de043e8", + "0x8df59e4c8fbb561a25cd641563d1db5c4b700e684a40f421d7b65bec387cd54670c4cfdc6812b0fd69c0f4941767dcc7" + ], + "aggregate_pubkey": "0x84653c6873e44c3c3dd5b5d3d54c35d4c36f682448f9ff32bb97ce9691686e6cf08d81738a01400d70c1179caf4f3eb2" + }, + "current_sync_committee_branch": [ + "0xc93297eb4b9566f47bcc0219f6ff87e8f9869c1db7850ecb723501cc9d19e5df", + "0x8f8a008f1690808f5802137dbce4d67948ebd8785e6903ec0e996970071b4efa", + "0xa5a15c4a78ee3a996dcb60939ebd81248dc5fc45544238e531a3810037b2bd67", + "0x8e9aad4f9364df033dd93c322c5d246566fff181f03b4ece137a52bf417d086b", + "0x9bff32eb22bf2604b2f2baaef48159da4ab68065d14f7c185d43b85d2bf57990" + ] + } +} \ No newline at end of file diff --git a/contracts/light-client/testdata/instantiate.json b/contracts/light-client/testdata/instantiate_mainnet.json similarity index 100% rename from contracts/light-client/testdata/instantiate.json rename to contracts/light-client/testdata/instantiate_mainnet.json From 9201dc38f6e45299c7d45817fbc1c558a7a67fbe Mon Sep 17 00:00:00 2001 From: themicp Date: Tue, 16 Jan 2024 16:24:38 +0200 Subject: [PATCH 3/3] Fix gateway address on goerli bootstrap message --- contracts/light-client/testdata/instantiate_goerli.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/contracts/light-client/testdata/instantiate_goerli.json b/contracts/light-client/testdata/instantiate_goerli.json index 7784a482..052ca6f1 100644 --- a/contracts/light-client/testdata/instantiate_goerli.json +++ b/contracts/light-client/testdata/instantiate_goerli.json @@ -5,7 +5,7 @@ "genesis_time": 1616508000, "genesis_root": "0x043db0d9a83813551ee2f33450d23797757d430911a9320530ad8a0eabc43efb" }, - "gateway_address": "", + "gateway_address": "0xe432150cce91c13a887f7D836923d5597adD8E31", "finalization": { "Finality": [] }