From 9303a211b7e85b4f7d7bcf653c431b7f119b8b33 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 22 Mar 2023 17:13:49 +0000 Subject: [PATCH 001/140] state getters and setters, change Move.toml dependency to sui/integration_v2 --- target_chains/sui/contracts/Move.toml | 2 +- .../sources/batch_price_attestation.move | 248 ++++++++++++++++++ target_chains/sui/contracts/sources/pyth.move | 1 + .../sui/contracts/sources/state.move | 124 +++++++++ 4 files changed, 374 insertions(+), 1 deletion(-) create mode 100644 target_chains/sui/contracts/sources/batch_price_attestation.move create mode 100644 target_chains/sui/contracts/sources/pyth.move create mode 100644 target_chains/sui/contracts/sources/state.move diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 52411cac74..7db7a62dd3 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -10,7 +10,7 @@ rev = "157ac72030d014f17d76cefe81f3915b4afab2c9" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" subdir = "sui/wormhole" -rev = "sui/wormhole-cleanup" +rev = "sui/integration_v2" [addresses] pyth = "0x250" diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move new file mode 100644 index 0000000000..5021535435 --- /dev/null +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -0,0 +1,248 @@ +module pyth::batch_price_attestation { + + use sui::tx_context::{Self, TxContext}; + + use pyth::price_feed::{Self}; + use pyth::price_info::{Self, PriceInfo}; + use pyth::price_identifier::{Self}; + use pyth::price_status; + use pyth::deserialize::{Self}; + // TODO - Import Sui clock and use it for timekeeping instead of tx_context::epoch. + // Replace epoch in deserialize_price_info with sui clock timestamp, and usage + // of epoch in test_deserialize_batch_price_attestation. + // TODO - Use specific error messages in this module, specifically + // for invalid_attestation_magic_value and invalid_batch_attestation_header_size. + use wormhole::cursor::{Self, Cursor}; + use wormhole::bytes::{Self}; + + use std::vector::{Self}; + + #[test_only] + use pyth::price; + #[test_only] + use pyth::i64; + + const MAGIC: u64 = 0x50325748; // "P2WH" (Pyth2Wormhole) raw ASCII bytes + + struct BatchPriceAttestation { + header: Header, + attestation_size: u64, + attestation_count: u64, + price_infos: vector, + } + + struct Header { + magic: u64, + version_major: u64, + version_minor: u64, + header_size: u64, + payload_id: u8, + } + + fun deserialize_header(cur: &mut Cursor): Header { + let magic = (deserialize::deserialize_u32(cur) as u64); + assert!(magic == MAGIC, 0); // TODO - add specific error value - error::invalid_attestation_magic_value() + let version_major = deserialize::deserialize_u16(cur); + let version_minor = deserialize::deserialize_u16(cur); + let header_size = deserialize::deserialize_u16(cur); + let payload_id = deserialize::deserialize_u8(cur); + + assert!(header_size >= 1, 0); // TODO - add specific error value - error::invalid_batch_attestation_header_size() + let unknown_header_bytes = header_size - 1; + let _unknown = bytes::take_bytes(cur, (unknown_header_bytes as u64)); + + Header { + magic: magic, + header_size: (header_size as u64), + version_minor: (version_minor as u64), + version_major: (version_major as u64), + payload_id: payload_id, + } + } + + public fun destroy(batch: BatchPriceAttestation): vector { + let BatchPriceAttestation { + header: Header { + magic: _, + version_major: _, + version_minor: _, + header_size: _, + payload_id: _, + }, + attestation_size: _, + attestation_count: _, + price_infos, + } = batch; + price_infos + } + + public fun get_attestation_count(batch: &BatchPriceAttestation): u64 { + batch.attestation_count + } + + public fun get_price_info(batch: &BatchPriceAttestation, index: u64): &PriceInfo { + vector::borrow(&batch.price_infos, index) + } + + public fun deserialize(bytes: vector, ctx: &mut TxContext): BatchPriceAttestation { + let cur = cursor::new(bytes); + let header = deserialize_header(&mut cur); + + let attestation_count = deserialize::deserialize_u16(&mut cur); + let attestation_size = deserialize::deserialize_u16(&mut cur); + let price_infos = vector::empty(); + + let i = 0; + while (i < attestation_count) { + let price_info = deserialize_price_info(&mut cur, ctx); + vector::push_back(&mut price_infos, price_info); + + // Consume any excess bytes + let parsed_bytes = 32+32+8+8+4+8+8+1+4+4+8+8+8+8+8; + let _excess = bytes::take_bytes(&mut cur, (attestation_size - parsed_bytes as u64)); + + i = i + 1; + }; + cursor::destroy_empty(cur); + + BatchPriceAttestation { + header, + attestation_count: (attestation_count as u64), + attestation_size: (attestation_size as u64), + price_infos: price_infos, + } + } + + fun deserialize_price_info(cur: &mut Cursor, ctx: &mut TxContext): PriceInfo { + + // Skip obselete field + let _product_identifier = deserialize::deserialize_vector(cur, 32); + let price_identifier = price_identifier::from_byte_vec(deserialize::deserialize_vector(cur, 32)); + let price = deserialize::deserialize_i64(cur); + let conf = deserialize::deserialize_u64(cur); + let expo = deserialize::deserialize_i32(cur); + let ema_price = deserialize::deserialize_i64(cur); + let ema_conf = deserialize::deserialize_u64(cur); + let status = price_status::from_u64((deserialize::deserialize_u8(cur) as u64)); + + // Skip obselete fields + let _num_publishers = deserialize::deserialize_u32(cur); + let _max_num_publishers = deserialize::deserialize_u32(cur); + + let attestation_time = deserialize::deserialize_u64(cur); + let publish_time = deserialize::deserialize_u64(cur); // + let prev_publish_time = deserialize::deserialize_u64(cur); + let prev_price = deserialize::deserialize_i64(cur); + let prev_conf = deserialize::deserialize_u64(cur); + + // Handle the case where the status is not trading. This logic will soon be moved into + // the attester. + + // If status is trading, use the current price. + // If not, use the the last known trading price. + let current_price = pyth::price::new(price, conf, expo, publish_time); + if (status != price_status::new_trading()) { + current_price = pyth::price::new(prev_price, prev_conf, expo, prev_publish_time); + }; + + // If status is trading, use the timestamp of the aggregate as the timestamp for the + // EMA price. If not, the EMA will have last been updated when the aggregate last had + // trading status, so use prev_publish_time (the time when the aggregate last had trading status). + let ema_timestamp = publish_time; + if (status != price_status::new_trading()) { + ema_timestamp = prev_publish_time; + }; + + price_info::new( + attestation_time, + tx_context::epoch(ctx), //TODO - use Sui Clock to get timestamp in seconds + price_feed::new( + price_identifier, + current_price, + pyth::price::new(ema_price, ema_conf, expo, ema_timestamp), + ) + ) + } + + #[test] + #[expected_failure] + fun test_deserialize_batch_price_attestation_invalid_magic() { + use sui::test_scenario::{Self, ctx}; + let test = test_scenario::begin(@0x1234); + + // A batch price attestation with a magic number of 0x50325749 + let bytes = x"5032574900030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"; + destroy(deserialize(bytes, ctx(&mut test))); + test_scenario::end(test); + } + + #[test] + fun test_deserialize_batch_price_attestation() { + use sui::test_scenario::{Self, ctx}; + // Set the arrival time + let test = test_scenario::begin(@0x1234); + let arrival_time = tx_context::epoch(ctx(&mut test)); + + // A raw batch price attestation + // The first attestation has a status of UNKNOWN + let bytes = x"5032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"; + + let expected = BatchPriceAttestation { + header: Header { + magic: 0x50325748, + version_major: 3, + version_minor: 0, + payload_id: 2, + header_size: 1, + }, + attestation_count: 4, + attestation_size: 149, + price_infos: vector[ + price_info::new( + 1663680747, + arrival_time, + price_feed::new( + price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"), + price::new(i64::new(1557, false), 7, i64::new(5, true), 1663680740), + price::new(i64::new(1500, false), 3, i64::new(5, true), 1663680740), + ), + ), + price_info::new( + 1663680747, + arrival_time, + price_feed::new( + price_identifier::from_byte_vec(x"3b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe"), + price::new(i64::new(1050, false), 3, i64::new(5, true), 1663680745), + price::new(i64::new(1483, false), 3, i64::new(5, true), 1663680745), + ), + ), + price_info::new( + 1663680747, + arrival_time, + price_feed::new( + price_identifier::from_byte_vec(x"33832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d"), + price::new(i64::new(1010, false), 2, i64::new(5, true), 1663680745), + price::new(i64::new(1511, false), 3, i64::new(5, true), 1663680745), + ), + ), + price_info::new( + 1663680747, + arrival_time, + price_feed::new( + price_identifier::from_byte_vec(x"21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db8"), + price::new(i64::new(1739, false), 1, i64::new(5, true), 1663680745), + price::new(i64::new(1508, false), 3, i64::new(5, true), 1663680745), + ), + ), + ], + }; + + let deserialized = deserialize(bytes, ctx(&mut test)); + + assert!(&expected == &deserialized, 1); + destroy(expected); + destroy(deserialized); + + test_scenario::end(test); + } +} diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move new file mode 100644 index 0000000000..c8779aa927 --- /dev/null +++ b/target_chains/sui/contracts/sources/pyth.move @@ -0,0 +1 @@ +module pyth::pyth {} \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move new file mode 100644 index 0000000000..d51732171a --- /dev/null +++ b/target_chains/sui/contracts/sources/state.move @@ -0,0 +1,124 @@ +module pyth::state { + use std::vector; + use sui::object::{Self, UID}; + use sui::transfer::{Self}; + use sui::tx_context::{Self, TxContext}; + use sui::test_scenario::{Self}; + + //use pyth::price_identifier::PriceIdentifier; + use pyth::data_source::{Self, DataSource}; + //use pyth::price_info::PriceInfo; + + use wormhole::set::{Self, Set}; + use wormhole::external_address::{Self}; + + friend pyth::pyth; + + struct State has key { + id: UID, + // TODO - Make data_sources a dynamic field of State, + // inside of something embedded in State, because there will be + // 10k+ data sources in the future, and we want to minimize the + // size of State. + data_sources: Set, + governance_data_source: DataSource, + last_executed_governance_sequence: u64, + stale_price_threshold: u64, + base_update_fee: u64 + } + + // Initialization + public(friend) fun init_and_share_state( + stale_price_threshold: u64, + base_update_fee: u64, + governance_data_source: DataSource, + sources: vector, + ctx: &mut TxContext + ) { + // Convert the vector of DataSource objects into a set + // of DataSource objects + let data_sources = set::new(ctx); + while (!vector::is_empty(&sources)) { + set::add(&mut data_sources, vector::pop_back(&mut sources)); + }; + transfer::share_object( + State { + id: object::new(ctx), + data_sources, + governance_data_source, + last_executed_governance_sequence: 0, + stale_price_threshold, + base_update_fee + } + ); + } + + // Accessors + public fun get_stale_price_threshold_secs(s: &State): u64 { + s.stale_price_threshold + } + + public fun get_base_update_fee(s: &State): u64 { + s.base_update_fee + } + + public fun is_valid_data_source(s: &State, data_source: DataSource): bool { + set::contains(&s.data_sources, data_source) + } + + public fun is_valid_governance_data_source(s: &State, source: DataSource): bool { + s.governance_data_source == source + } + + public fun get_last_executed_governance_sequence(s: &State): u64 { + s.last_executed_governance_sequence + } + + // Setters + public(friend) fun set_data_sources(s: &mut State, new_sources: vector, ctx: &mut TxContext) { + //let sources = &mut s.data_sources; + let new_set = set::new(ctx); + //set::empty(sources); + while (!vector::is_empty(&new_sources)) { + set::add(&mut new_set, vector::pop_back(&mut new_sources)); + }; + s.data_sources = new_set; + } + + // public(friend) fun set_latest_price_info(price_identifier: PriceIdentifier, price_info: PriceInfo) acquires LatestPriceInfo { + // let latest_price_info = borrow_global_mut(@pyth); + // table::upsert(&mut latest_price_info.info, price_identifier, price_info) + // } + + // public(friend) fun set_last_executed_governance_sequence(sequence: u64) acquires LastExecutedGovernanceSequence { + // let last_executed_governance_sequence = borrow_global_mut(@pyth); + // last_executed_governance_sequence.sequence = sequence + // } + + // public(friend) fun pyth_signer(): signer acquires SignerCapability { + // account::create_signer_with_capability(&borrow_global(@pyth).signer_capability) + // } + + // public(friend) fun set_contract_upgrade_authorized_hash(hash: Hash) acquires ContractUpgradeAuthorized, SignerCapability { + // if (exists(@pyth)) { + // let ContractUpgradeAuthorized { hash: _ } = move_from(@pyth); + // }; + + // move_to(&pyth_signer(), ContractUpgradeAuthorized { hash }); + // } + + // public(friend) fun set_governance_data_source(source: DataSource) acquires GovernanceDataSource { + // let valid_governance_data_source = borrow_global_mut(@pyth); + // valid_governance_data_source.source = source; + // } + + // public(friend) fun set_base_update_fee(fee: u64) acquires BaseUpdateFee { + // let update_fee = borrow_global_mut(@pyth); + // update_fee.fee = fee + // } + + // public(friend) fun set_stale_price_threshold_secs(threshold_secs: u64) acquires StalePriceThreshold { + // let stale_price_threshold = borrow_global_mut(@pyth); + // stale_price_threshold.threshold_secs = threshold_secs + // } +} \ No newline at end of file From b69917ea3a63be63babfc17fafdd877e952e2a09 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 22 Mar 2023 17:36:53 +0000 Subject: [PATCH 002/140] finish state.move --- target_chains/sui/contracts/sources/set.move | 46 ++++++++++++ .../sui/contracts/sources/state.move | 70 ++++++------------- 2 files changed, 68 insertions(+), 48 deletions(-) create mode 100644 target_chains/sui/contracts/sources/set.move diff --git a/target_chains/sui/contracts/sources/set.move b/target_chains/sui/contracts/sources/set.move new file mode 100644 index 0000000000..b0f53549c8 --- /dev/null +++ b/target_chains/sui/contracts/sources/set.move @@ -0,0 +1,46 @@ +/// A set data structure. +module pyth::set { + use sui::table::{Self, Table}; + use sui::tx_context::{TxContext}; + use std::vector; + + /// Empty struct. Used as the value type in mappings to encode a set + struct Unit has store, copy, drop {} + + /// A set containing elements of type `A` with support for membership + /// checking. + struct Set has store { + keys: vector, + elems: Table + } + + /// Create a new Set. + public fun new(ctx: &mut TxContext): Set { + Set { + keys: vector::empty(), + elems: table::new(ctx), + } + } + + /// Add a new element to the set. + /// Aborts if the element already exists + public fun add(set: &mut Set, key: A) { + table::add(&mut set.elems, key, Unit {}); + vector::push_back(&mut set.keys, key); + } + + /// Returns true iff `set` contains an entry for `key`. + public fun contains(set: &Set, key: A): bool { + table::contains(&set.elems, key) + } + + /// Removes all elements from the set + public fun empty(set: &mut Set) { + while (!vector::is_empty(&set.keys)) { + table::remove(&mut set.elems, vector::pop_back(&mut set.keys)); + } + } + + // TODO: destroy_empty, but this is tricky because std::table doesn't + // have this functionality. +} diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index d51732171a..d0a3009d13 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -2,15 +2,10 @@ module pyth::state { use std::vector; use sui::object::{Self, UID}; use sui::transfer::{Self}; - use sui::tx_context::{Self, TxContext}; - use sui::test_scenario::{Self}; + use sui::tx_context::{TxContext}; - //use pyth::price_identifier::PriceIdentifier; - use pyth::data_source::{Self, DataSource}; - //use pyth::price_info::PriceInfo; - - use wormhole::set::{Self, Set}; - use wormhole::external_address::{Self}; + use pyth::data_source::{DataSource}; + use pyth::set::{Self, Set}; friend pyth::pyth; @@ -75,50 +70,29 @@ module pyth::state { } // Setters - public(friend) fun set_data_sources(s: &mut State, new_sources: vector, ctx: &mut TxContext) { - //let sources = &mut s.data_sources; - let new_set = set::new(ctx); - //set::empty(sources); + public(friend) fun set_data_sources(s: &mut State, new_sources: vector) { + // Empty the existing set of data sources instead of dropping it, + // because it does not have drop ability. + set::empty(&mut s.data_sources); + // Add new sources to state.data_sources. while (!vector::is_empty(&new_sources)) { - set::add(&mut new_set, vector::pop_back(&mut new_sources)); + set::add(&mut s.data_sources, vector::pop_back(&mut new_sources)); }; - s.data_sources = new_set; } - // public(friend) fun set_latest_price_info(price_identifier: PriceIdentifier, price_info: PriceInfo) acquires LatestPriceInfo { - // let latest_price_info = borrow_global_mut(@pyth); - // table::upsert(&mut latest_price_info.info, price_identifier, price_info) - // } - - // public(friend) fun set_last_executed_governance_sequence(sequence: u64) acquires LastExecutedGovernanceSequence { - // let last_executed_governance_sequence = borrow_global_mut(@pyth); - // last_executed_governance_sequence.sequence = sequence - // } - - // public(friend) fun pyth_signer(): signer acquires SignerCapability { - // account::create_signer_with_capability(&borrow_global(@pyth).signer_capability) - // } - - // public(friend) fun set_contract_upgrade_authorized_hash(hash: Hash) acquires ContractUpgradeAuthorized, SignerCapability { - // if (exists(@pyth)) { - // let ContractUpgradeAuthorized { hash: _ } = move_from(@pyth); - // }; - - // move_to(&pyth_signer(), ContractUpgradeAuthorized { hash }); - // } + public(friend) fun set_last_executed_governance_sequence(s: &mut State, sequence: u64) { + s.last_executed_governance_sequence = sequence; + } - // public(friend) fun set_governance_data_source(source: DataSource) acquires GovernanceDataSource { - // let valid_governance_data_source = borrow_global_mut(@pyth); - // valid_governance_data_source.source = source; - // } + public(friend) fun set_governance_data_source(s: &mut State, source: DataSource) { + s. governance_data_source = source; + } - // public(friend) fun set_base_update_fee(fee: u64) acquires BaseUpdateFee { - // let update_fee = borrow_global_mut(@pyth); - // update_fee.fee = fee - // } + public(friend) fun set_base_update_fee(s: &mut State, fee: u64) { + s.base_update_fee = fee; + } - // public(friend) fun set_stale_price_threshold_secs(threshold_secs: u64) acquires StalePriceThreshold { - // let stale_price_threshold = borrow_global_mut(@pyth); - // stale_price_threshold.threshold_secs = threshold_secs - // } -} \ No newline at end of file + public(friend) fun set_stale_price_threshold_secs(s: &mut State, threshold_secs: u64) { + s.stale_price_threshold = threshold_secs; + } +} From 0380a1f244b07d46e3271b9cad23a805eb1d65e8 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 22 Mar 2023 18:08:21 +0000 Subject: [PATCH 003/140] add new line to pyth --- target_chains/sui/contracts/sources/pyth.move | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index c8779aa927..01d7493657 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -1 +1 @@ -module pyth::pyth {} \ No newline at end of file +module pyth::pyth {} From e799fc60c5ee3e08056723bf5dbe2aa1a9c91b2d Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 22 Mar 2023 19:19:48 +0000 Subject: [PATCH 004/140] use deployer cap pattern for state module --- .../sui/contracts/sources/state.move | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index d0a3009d13..7e1cd73640 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -2,13 +2,19 @@ module pyth::state { use std::vector; use sui::object::{Self, UID}; use sui::transfer::{Self}; - use sui::tx_context::{TxContext}; + use sui::tx_context::{Self, TxContext}; use pyth::data_source::{DataSource}; use pyth::set::{Self, Set}; friend pyth::pyth; + /// Capability for creating a bridge state object, granted to sender when this + /// module is deployed + struct DeployerCap has key, store { + id: UID + } + struct State has key { id: UID, // TODO - Make data_sources a dynamic field of State, @@ -22,14 +28,27 @@ module pyth::state { base_update_fee: u64 } + fun init(ctx: &mut TxContext) { + transfer::transfer( + DeployerCap { + id: object::new(ctx) + }, + tx_context::sender(ctx) + ); + } + // Initialization public(friend) fun init_and_share_state( + deployer: DeployerCap, stale_price_threshold: u64, base_update_fee: u64, governance_data_source: DataSource, sources: vector, ctx: &mut TxContext ) { + let DeployerCap { id } = deployer; + object::delete(id); + // Convert the vector of DataSource objects into a set // of DataSource objects let data_sources = set::new(ctx); From 9ac886050e256d9538a28c186a51a0981c5027fc Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 22 Mar 2023 19:17:04 +0000 Subject: [PATCH 005/140] sui pyth --- target_chains/sui/contracts/sources/pyth.move | 57 ++++++++++++++++++- 1 file changed, 56 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 01d7493657..7f60d433f7 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -1 +1,56 @@ -module pyth::pyth {} +module pyth::pyth { + use std::vector; + use sui::tx_context::{TxContext}; + + use pyth::data_source::{Self, DataSource}; + //use pyth::set::{Self}; + use pyth::state::{Self}; + + use wormhole::external_address::{Self}; + + struct PythInitializationEvent has copy, drop {} + + fun init( + stale_price_threshold: u64, + governance_emitter_chain_id: u64, + governance_emitter_address: vector, + data_sources_emitter_chain_ids: vector, + data_sources_emitter_addresses: vector>, + update_fee: u64, + ctx: &mut TxContext + ) { + state::init_and_share_state( + stale_price_threshold, + update_fee, + data_source::new( + governance_emitter_chain_id, + external_address::from_bytes(governance_emitter_address)), + parse_data_sources( + data_sources_emitter_chain_ids, + data_sources_emitter_addresses, + ), + ctx + ) + } + + fun parse_data_sources( + emitter_chain_ids: vector, + emitter_addresses: vector>): vector { + + // TODO - add custom error type error::data_source_emitter_address_and_chain_ids_different_lengths() + assert!(vector::length(&emitter_chain_ids) == vector::length(&emitter_addresses), 0); + + let sources = vector::empty(); + let i = 0; + while (i < vector::length(&emitter_chain_ids)) { + vector::push_back(&mut sources, data_source::new( + *vector::borrow(&emitter_chain_ids, i), + external_address::from_bytes(*vector::borrow(&emitter_addresses, i)) + )); + + i = i + 1; + }; + sources + } + +} From 05d2121189b71fc4ede1deabd1796ee4c99f9977 Mon Sep 17 00:00:00 2001 From: optke3 Date: Thu, 23 Mar 2023 19:39:07 +0000 Subject: [PATCH 006/140] update price feeds, dynamic object fields, Sui object PriceInfoObject --- .../sources/batch_price_attestation.move | 24 +-- .../sui/contracts/sources/data_source.move | 42 ++++ .../sui/contracts/sources/event.move | 33 +++ .../sui/contracts/sources/price_feed.move | 14 +- .../sui/contracts/sources/price_info.move | 95 ++++++++- target_chains/sui/contracts/sources/pyth.move | 196 +++++++++++++++++- .../sui/contracts/sources/state.move | 73 ++++--- 7 files changed, 424 insertions(+), 53 deletions(-) create mode 100644 target_chains/sui/contracts/sources/event.move diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index 5021535435..f7ccd00ae7 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -153,7 +153,7 @@ module pyth::batch_price_attestation { ema_timestamp = prev_publish_time; }; - price_info::new( + price_info::new_price_info( attestation_time, tx_context::epoch(ctx), //TODO - use Sui Clock to get timestamp in seconds price_feed::new( @@ -172,7 +172,7 @@ module pyth::batch_price_attestation { // A batch price attestation with a magic number of 0x50325749 let bytes = x"5032574900030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"; - destroy(deserialize(bytes, ctx(&mut test))); + let _ = destroy(deserialize(bytes, ctx(&mut test))); test_scenario::end(test); } @@ -198,42 +198,38 @@ module pyth::batch_price_attestation { attestation_count: 4, attestation_size: 149, price_infos: vector[ - price_info::new( + price_info::new_price_info( 1663680747, arrival_time, price_feed::new( price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"), price::new(i64::new(1557, false), 7, i64::new(5, true), 1663680740), price::new(i64::new(1500, false), 3, i64::new(5, true), 1663680740), - ), - ), - price_info::new( + ) ), + price_info::new_price_info( 1663680747, arrival_time, price_feed::new( price_identifier::from_byte_vec(x"3b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe"), price::new(i64::new(1050, false), 3, i64::new(5, true), 1663680745), price::new(i64::new(1483, false), 3, i64::new(5, true), 1663680745), - ), - ), - price_info::new( + ) ), + price_info::new_price_info( 1663680747, arrival_time, price_feed::new( price_identifier::from_byte_vec(x"33832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d"), price::new(i64::new(1010, false), 2, i64::new(5, true), 1663680745), price::new(i64::new(1511, false), 3, i64::new(5, true), 1663680745), - ), - ), - price_info::new( + ) ), + price_info::new_price_info( 1663680747, arrival_time, price_feed::new( price_identifier::from_byte_vec(x"21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db8"), price::new(i64::new(1739, false), 1, i64::new(5, true), 1663680745), price::new(i64::new(1508, false), 3, i64::new(5, true), 1663680745), - ), - ), + ) ), ], }; diff --git a/target_chains/sui/contracts/sources/data_source.move b/target_chains/sui/contracts/sources/data_source.move index c79e548f22..c8b7af8266 100644 --- a/target_chains/sui/contracts/sources/data_source.move +++ b/target_chains/sui/contracts/sources/data_source.move @@ -1,11 +1,53 @@ module pyth::data_source { + use sui::dynamic_field::{Self}; + use sui::object::{UID}; + use sui::tx_context::{TxContext}; + + use pyth::set::{Self}; + use wormhole::external_address::ExternalAddress; + const KEY: vector = b"data_sources"; + struct DataSource has copy, drop, store { emitter_chain: u64, emitter_address: ExternalAddress, } + public fun new_data_source_registry(parent_id: &mut UID, ctx: &mut TxContext) { + assert!( + !dynamic_field::exists_(parent_id, KEY), + 0 // TODO - add custom error type + ); + dynamic_field::add( + parent_id, + KEY, + set::new(ctx) + ) + } + + public fun add(parent_id: &mut UID, data_source: DataSource) { + assert!( + !contains(parent_id, data_source), + 0 // TODO - add custom error message + ); + set::add( + dynamic_field::borrow_mut(parent_id, KEY), + data_source + ) + } + + public fun empty(parent_id: &mut UID){ + set::empty( + dynamic_field::borrow_mut(parent_id, KEY) + ) + } + + public fun contains(parent_id: &UID, data_source: DataSource): bool { + let ref = dynamic_field::borrow(parent_id, KEY); + set::contains(ref, data_source) + } + public fun new(emitter_chain: u64, emitter_address: ExternalAddress): DataSource { DataSource { emitter_chain: emitter_chain, diff --git a/target_chains/sui/contracts/sources/event.move b/target_chains/sui/contracts/sources/event.move new file mode 100644 index 0000000000..fadb33d4fa --- /dev/null +++ b/target_chains/sui/contracts/sources/event.move @@ -0,0 +1,33 @@ +module pyth::event { + use sui::event::{Self}; + use pyth::price_feed::{PriceFeed}; + + friend pyth::pyth; + friend pyth::state; + + struct PythInitializationEvent has copy, drop {} + + /// Signifies that a price feed has been updated + struct PriceFeedUpdate has copy, store, drop { + /// Value of the price feed + price_feed: PriceFeed, + /// Timestamp of the update + timestamp: u64, + } + + public(friend) fun emit_price_feed_update(price_feed: PriceFeed, timestamp: u64) { + event::emit( + PriceFeedUpdate { + price_feed, + timestamp, + } + ); + } + + public(friend) fun emit_pyth_initialization_event() { + event::emit( + PythInitializationEvent {} + ); + } + +} diff --git a/target_chains/sui/contracts/sources/price_feed.move b/target_chains/sui/contracts/sources/price_feed.move index 01ae10ba59..43ba535552 100644 --- a/target_chains/sui/contracts/sources/price_feed.move +++ b/target_chains/sui/contracts/sources/price_feed.move @@ -23,8 +23,18 @@ module pyth::price_feed { } } - public fun get_price_identifier(price_feed: &PriceFeed): &PriceIdentifier { - &price_feed.price_identifier + public fun from( + price_feed: &PriceFeed + ): PriceFeed { + PriceFeed { + price_identifier: price_feed.price_identifier, + price: price_feed.price, + ema_price: price_feed.ema_price, + } + } + + public fun get_price_identifier(price_feed: &PriceFeed): PriceIdentifier { + price_feed.price_identifier } public fun get_price(price_feed: &PriceFeed): Price { diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index e533fc9bfd..d49695d30b 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -1,13 +1,76 @@ module pyth::price_info { - use pyth::price_feed::PriceFeed; + use sui::object::{Self, UID, ID}; + use sui::tx_context::{TxContext}; + use sui::dynamic_object_field::{Self}; + use sui::table::{Self}; + use pyth::price_feed::{Self, PriceFeed}; + use pyth::price_identifier::{PriceIdentifier}; + + const KEY: vector = b"price_info"; + + friend pyth::pyth; + + /// Sui Object version of PriceInfo. + /// Has a key and lives in global store. + struct PriceInfoObject has key, store { + id: UID, + price_info: PriceInfo + } + + /// Copyable and droppable. struct PriceInfo has copy, drop, store { attestation_time: u64, arrival_time: u64, price_feed: PriceFeed, } - public fun new(attestation_time: u64, arrival_time: u64, price_feed: PriceFeed): PriceInfo { + /// Creates a table which maps a PriceIdentifier to the + /// UID (in bytes) of the corresponding Sui PriceInfoObject. + public fun new_price_info_registry(parent_id: &mut UID, ctx: &mut TxContext) { + assert!( + !dynamic_object_field::exists_(parent_id, KEY), + 0 // TODO - add custom error message + ); + dynamic_object_field::add( + parent_id, + KEY, + table::new(ctx) + ) + } + + public fun add(parent_id: &mut UID, price_identifier: PriceIdentifier, id: ID) { + assert!( + !contains(parent_id, price_identifier), + 0 // TODO - add custom error message + ); + table::add( + dynamic_object_field::borrow_mut(parent_id, KEY), + price_identifier, + id + ) + } + + public fun contains(parent_id: &UID, price_identifier: PriceIdentifier): bool { + let ref = dynamic_object_field::borrow(parent_id, KEY); + table::contains(ref, price_identifier) + } + + public fun new_price_info_object( + price_info: PriceInfo, + ctx: &mut TxContext + ): PriceInfoObject { + PriceInfoObject { + id: object::new(ctx), + price_info: price_info + } + } + + public fun new_price_info( + attestation_time: u64, + arrival_time: u64, + price_feed: PriceFeed, + ): PriceInfo { PriceInfo { attestation_time: attestation_time, arrival_time: arrival_time, @@ -15,6 +78,27 @@ module pyth::price_info { } } + #[test_only] + public fun destroy(price_info: PriceInfoObject){ + let PriceInfoObject { + id: id, + price_info: _, + } = price_info; + object::delete(id); + } + + public fun uid_to_inner(price_info: &PriceInfoObject): ID { + object::uid_to_inner(&price_info.id) + } + + public fun get_price_info_from_price_info_object(price_info: &PriceInfoObject): PriceInfo { + price_info.price_info + } + + public fun get_price_info_price_identifier(price_info: &PriceInfo): PriceIdentifier { + price_feed::get_price_identifier(&price_info.price_feed) + } + public fun get_price_feed(price_info: &PriceInfo): &PriceFeed { &price_info.price_feed } @@ -26,4 +110,11 @@ module pyth::price_info { public fun get_arrival_time(price_info: &PriceInfo): u64 { price_info.arrival_time } + + public(friend) fun update_price_info_object( + price_info_object: &mut PriceInfoObject, + price_info: PriceInfo + ) { + price_info_object.price_info = price_info; + } } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 7f60d433f7..cfa2f67605 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -1,16 +1,28 @@ module pyth::pyth { use std::vector; use sui::tx_context::{TxContext}; + use sui::coin::{Coin}; + use sui::sui::{SUI}; + use sui::transfer::{Self}; + use sui::tx_context::{Self}; + use pyth::event::{Self as pyth_event}; use pyth::data_source::{Self, DataSource}; - //use pyth::set::{Self}; - use pyth::state::{Self}; + use pyth::state::{Self as state, State as PythState, DeployerCap}; + use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; + use pyth::batch_price_attestation::{Self}; + use pyth::price_feed::{Self}; + use pyth::price::{Self}; use wormhole::external_address::{Self}; + use wormhole::vaa::{Self}; + use wormhole::state::{State as WormState}; - struct PythInitializationEvent has copy, drop {} - fun init( + /// Call init_and_share_state with deployer cap to initialize + /// state and emit event corresponding to Pyth initialization. + public entry fun init_pyth( + deployer: DeployerCap, stale_price_threshold: u64, governance_emitter_chain_id: u64, governance_emitter_address: vector, @@ -20,6 +32,7 @@ module pyth::pyth { ctx: &mut TxContext ) { state::init_and_share_state( + deployer, stale_price_threshold, update_fee, data_source::new( @@ -30,12 +43,16 @@ module pyth::pyth { data_sources_emitter_addresses, ), ctx - ) + ); + + // Emit Pyth initialization event. + pyth_event::emit_pyth_initialization_event(); } fun parse_data_sources( emitter_chain_ids: vector, - emitter_addresses: vector>): vector { + emitter_addresses: vector> + ): vector { // TODO - add custom error type error::data_source_emitter_address_and_chain_ids_different_lengths() assert!(vector::length(&emitter_chain_ids) == vector::length(&emitter_addresses), 0); @@ -53,4 +70,171 @@ module pyth::pyth { sources } + /// Create and share new price feed objects if they don't already exist. + public fun create_price_feeds( + worm_state: &mut WormState, + pyth_state: &PythState, + vaas: vector>, + ctx: &mut TxContext + ){ + while (!vector::is_empty(&vaas)) { + let vaa = vector::pop_back(&mut vaas); + + // Deserialize the VAA + let vaa = vaa::parse_and_verify(worm_state, vaa, ctx); + + // Check that the VAA is from a valid data source (emitter) + assert!( + state::is_valid_data_source( + pyth_state, + data_source::new( + (vaa::emitter_chain(&vaa) as u64), + vaa::emitter_address(&vaa)) + ), + 0); // TODO - use custom error message - error::invalid_data_source() + + // Deserialize the batch price attestation + let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), ctx)); + while (!vector::is_empty(&price_infos)){ + let cur_price_info = vector::pop_back(&mut price_infos); + + // Only create new Sui PriceInfoObject if not already + // registered with the Pyth State object. + if (!state::price_feed_object_exists( + pyth_state, + price_feed::get_price_identifier( + price_info::get_price_feed(&cur_price_info) + ) + ) + ){ + // Create and share newly created Sui PriceInfoObject containing a price feed. + let new_price_info_object = price_info::new_price_info_object(cur_price_info, ctx); + transfer::share_object(new_price_info_object); + } + } + }; + } + + /// Update PriceInfo objects and corresponding price feeds with the + /// data in the given VAAs. + /// + /// The vaas argument is a vector of VAAs encoded as bytes. + /// + /// The javascript https://github.com/pyth-network/pyth-js/tree/main/pyth-aptos-js package + /// should be used to fetch these VAAs from the Price Service. More information about this + /// process can be found at https://docs.pyth.network/consume-data. + /// + /// The given fee must contain a sufficient number of coins to pay the update fee for the given vaas. + /// The update fee amount can be queried by calling get_update_fee(&vaas). + /// + /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees + public fun update_price_feeds( + worm_state: &WormState, + pyth_state: &PythState, + vaas: vector>, + price_info_objects: &mut vector, + fee: Coin, + ctx: &mut TxContext + ) { + // Charge the message update fee + // TODO - error::insufficient_fee() + //assert!(get_update_fee(&vaas) <= coin::value(&fee), 0); + transfer::transfer(fee, @pyth); + + // Update the price feed from each VAA + while (!vector::is_empty(&vaas)) { + update_price_feed_from_single_vaa( + worm_state, + pyth_state, + vector::pop_back(&mut vaas), + price_info_objects, + ctx + ); + }; + } + + /// Precondition: A Sui object of type PriceInfoObject must exist for each update + /// encoded in the worm_vaa (batch_attestation_vaa). These should be passed in + /// via the price_info_objects argument. + fun update_price_feed_from_single_vaa( + worm_state: &WormState, + pyth_state: &PythState, + worm_vaa: vector, + price_info_objects: &mut vector, + ctx: &mut TxContext + ) { + // Deserialize the VAA + let vaa = vaa::parse_and_verify(worm_state, worm_vaa, ctx); + + // Check that the VAA is from a valid data source (emitter) + assert!( + state::is_valid_data_source( + pyth_state, + data_source::new( + (vaa::emitter_chain(&vaa) as u64), + vaa::emitter_address(&vaa)) + ), + 0); // TODO - use custom error message - error::invalid_data_source() + + // Deserialize the batch price attestation + let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), ctx)); + + // Update price info objects. + update_cache(price_infos, price_info_objects, ctx); + } + + /// Update PriceInfoObjects using up-to-date PriceInfos. + fun update_cache( + updates: vector, + price_info_objects: &mut vector, + ctx: &mut TxContext + ){ + while (!vector::is_empty(&updates)) { + let update = vector::pop_back(&mut updates); + let i = 0; + let found = false; + // Find PriceInfoObjects corresponding to the current update (PriceInfo). + // TODO - This for loop might be expensive if there are a large + // number of updates and/or price_info_objects we are updating. + while (i < vector::length(price_info_objects)){ + // Check if the current price info object corresponds to the price feed that + // the update is meant for. + let price_info = price_info::get_price_info_from_price_info_object(vector::borrow(price_info_objects, i)); + if (price_info::get_price_info_price_identifier(&price_info) == + price_info::get_price_info_price_identifier(&update)){ + found = true; + // TODO: use clock timestamp instead of epoch in the future + pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), tx_context::epoch(ctx)); + + // Update the price info object with the new updated price info. + if (is_fresh_update(&update, vector::borrow(price_info_objects, i))){ + price_info::update_price_info_object( + vector::borrow_mut(price_info_objects, i), + update + ); + } + } + }; + if (!found){ + // TODO - throw error, since the price_feeds in price_info_objects do + // not constitute a superset of the price_feeds to be updated + } + }; + vector::destroy_empty(updates); + } + + /// Determine if the given price update is "fresh": we have nothing newer already cached for that + /// price feed within a PriceInfoObject. + fun is_fresh_update(update: &PriceInfo, price_info_object: &PriceInfoObject): bool { + // Get the timestamp of the update's current price + let price_feed = price_info::get_price_feed(update); + let update_timestamp = price::get_timestamp(&price_feed::get_price(price_feed)); + + // Get the timestamp of the cached data for the price identifier + let cached_price_info = price_info::get_price_info_from_price_info_object(price_info_object); + let cached_price_feed = price_info::get_price_feed(&cached_price_info); + let cached_timestamp = price::get_timestamp(&price_feed::get_price(cached_price_feed)); + + update_timestamp > cached_timestamp + } } diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 7e1cd73640..637dd1e876 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -1,11 +1,12 @@ module pyth::state { use std::vector; - use sui::object::{Self, UID}; + use sui::object::{Self, UID, ID}; use sui::transfer::{Self}; use sui::tx_context::{Self, TxContext}; - use pyth::data_source::{DataSource}; - use pyth::set::{Self, Set}; + use pyth::data_source::{Self, DataSource}; + use pyth::price_info::{Self}; + use pyth::price_identifier::{PriceIdentifier}; friend pyth::pyth; @@ -17,15 +18,10 @@ module pyth::state { struct State has key { id: UID, - // TODO - Make data_sources a dynamic field of State, - // inside of something embedded in State, because there will be - // 10k+ data sources in the future, and we want to minimize the - // size of State. - data_sources: Set, governance_data_source: DataSource, last_executed_governance_sequence: u64, stale_price_threshold: u64, - base_update_fee: u64 + base_update_fee: u64, } fun init(ctx: &mut TxContext) { @@ -49,22 +45,34 @@ module pyth::state { let DeployerCap { id } = deployer; object::delete(id); - // Convert the vector of DataSource objects into a set - // of DataSource objects - let data_sources = set::new(ctx); + let uid = object::new(ctx); + + // Create a set that contains all registered data sources and + // attach it to uid as a dynamic field to minimize the + // size of State. + data_source::new_data_source_registry(&mut uid, ctx); + + // Create a table that tracks the object IDs of price feeds and + // attach it to the uid as a dynamic object field to minimize the + // size of State. + price_info::new_price_info_registry(&mut uid, ctx); + + // Iterate through data sources and add them to the data source + // registry in state. while (!vector::is_empty(&sources)) { - set::add(&mut data_sources, vector::pop_back(&mut sources)); + data_source::add(&mut uid, vector::pop_back(&mut sources)); }; - transfer::share_object( - State { - id: object::new(ctx), - data_sources, - governance_data_source, - last_executed_governance_sequence: 0, - stale_price_threshold, - base_update_fee - } - ); + + // Share state so that is a shared Sui object. + transfer::share_object( + State { + id: uid, + governance_data_source, + last_executed_governance_sequence: 0, + stale_price_threshold, + base_update_fee, + } + ); } // Accessors @@ -77,7 +85,7 @@ module pyth::state { } public fun is_valid_data_source(s: &State, data_source: DataSource): bool { - set::contains(&s.data_sources, data_source) + data_source::contains(&s.id, data_source) } public fun is_valid_governance_data_source(s: &State, source: DataSource): bool { @@ -88,14 +96,17 @@ module pyth::state { s.last_executed_governance_sequence } + public fun price_feed_object_exists(s: &State, p: PriceIdentifier): bool { + price_info::contains(&s.id, p) + } + // Setters public(friend) fun set_data_sources(s: &mut State, new_sources: vector) { - // Empty the existing set of data sources instead of dropping it, - // because it does not have drop ability. - set::empty(&mut s.data_sources); - // Add new sources to state.data_sources. + // Empty the existing table of data sources registered in state. + data_source::empty(&mut s.id); + // Add the new data sources to the dynamic field registry. while (!vector::is_empty(&new_sources)) { - set::add(&mut s.data_sources, vector::pop_back(&mut new_sources)); + data_source::add(&mut s.id, vector::pop_back(&mut new_sources)); }; } @@ -114,4 +125,8 @@ module pyth::state { public(friend) fun set_stale_price_threshold_secs(s: &mut State, threshold_secs: u64) { s.stale_price_threshold = threshold_secs; } + + public(friend) fun register_price_feed(s: &mut State, p: PriceIdentifier, id: ID){ + price_info::add(&mut s.id, p, id); + } } From 096f31ab7828b72b5cd723b306dec0b2d0840db1 Mon Sep 17 00:00:00 2001 From: optke3 Date: Thu, 23 Mar 2023 20:11:26 +0000 Subject: [PATCH 007/140] register price info object with pyth state after creation --- .../sui/contracts/sources/price_info.move | 2 +- target_chains/sui/contracts/sources/pyth.move | 16 +++++++++++----- target_chains/sui/contracts/sources/state.move | 4 ++++ 3 files changed, 16 insertions(+), 6 deletions(-) diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index d49695d30b..9da41d6ee2 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -95,7 +95,7 @@ module pyth::price_info { price_info.price_info } - public fun get_price_info_price_identifier(price_info: &PriceInfo): PriceIdentifier { + public fun get_price_identifier(price_info: &PriceInfo): PriceIdentifier { price_feed::get_price_identifier(&price_info.price_feed) } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index cfa2f67605..d7666b407a 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -72,8 +72,8 @@ module pyth::pyth { /// Create and share new price feed objects if they don't already exist. public fun create_price_feeds( - worm_state: &mut WormState, - pyth_state: &PythState, + worm_state: &WormState, + pyth_state: &mut PythState, vaas: vector>, ctx: &mut TxContext ){ @@ -107,8 +107,14 @@ module pyth::pyth { ) ) ){ - // Create and share newly created Sui PriceInfoObject containing a price feed. + // Create and share newly created Sui PriceInfoObject containing a price feed, + // and then register a copy of its ID with State. let new_price_info_object = price_info::new_price_info_object(cur_price_info, ctx); + let price_identifier = price_info::get_price_identifier(&cur_price_info); + let id = price_info::uid_to_inner(&new_price_info_object); + + state::register_price_info_object(pyth_state, price_identifier, id); + transfer::share_object(new_price_info_object); } } @@ -200,8 +206,8 @@ module pyth::pyth { // Check if the current price info object corresponds to the price feed that // the update is meant for. let price_info = price_info::get_price_info_from_price_info_object(vector::borrow(price_info_objects, i)); - if (price_info::get_price_info_price_identifier(&price_info) == - price_info::get_price_info_price_identifier(&update)){ + if (price_info::get_price_identifier(&price_info) == + price_info::get_price_identifier(&update)){ found = true; // TODO: use clock timestamp instead of epoch in the future pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), tx_context::epoch(ctx)); diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 637dd1e876..ec6160e73a 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -110,6 +110,10 @@ module pyth::state { }; } + public(friend) fun register_price_info_object(s: &mut State, price_identifier: PriceIdentifier, id: ID) { + price_info::add(&mut s.id, price_identifier, id); + } + public(friend) fun set_last_executed_governance_sequence(s: &mut State, sequence: u64) { s.last_executed_governance_sequence = sequence; } From 690107d496cef24afc76185e16d8ceecac753c03 Mon Sep 17 00:00:00 2001 From: optke3 Date: Thu, 30 Mar 2023 18:40:34 +0000 Subject: [PATCH 008/140] sui governance --- target_chains/sui/contracts/Move.toml | 4 +- .../sources/governance/contract_upgrade.move | 12 +++ .../sources/governance/governance.move | 73 ++++++++++++++++ .../sources/governance/governance_action.move | 38 +++++++++ .../governance/governance_instruction.move | 84 +++++++++++++++++++ .../sources/governance/set_data_sources.move | 43 ++++++++++ .../set_governance_data_source.move | 36 ++++++++ .../governance/set_stale_price_threshold.move | 25 ++++++ .../sources/governance/set_update_fee.move | 40 +++++++++ target_chains/sui/contracts/sources/pyth.move | 4 +- .../sui/contracts/sources/state.move | 6 ++ 11 files changed, 361 insertions(+), 4 deletions(-) create mode 100644 target_chains/sui/contracts/sources/governance/contract_upgrade.move create mode 100644 target_chains/sui/contracts/sources/governance/governance.move create mode 100644 target_chains/sui/contracts/sources/governance/governance_action.move create mode 100644 target_chains/sui/contracts/sources/governance/governance_instruction.move create mode 100644 target_chains/sui/contracts/sources/governance/set_data_sources.move create mode 100644 target_chains/sui/contracts/sources/governance/set_governance_data_source.move create mode 100644 target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move create mode 100644 target_chains/sui/contracts/sources/governance/set_update_fee.move diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 7db7a62dd3..d1fc1dd52c 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -4,8 +4,8 @@ version = "0.0.1" [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" -subdir = "crates/sui-framework" -rev = "157ac72030d014f17d76cefe81f3915b4afab2c9" +subdir = "crates/sui-framework/packages/sui-framework" +rev = "82c9c80c11488858f1d3930f47ec9f335a566683" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move new file mode 100644 index 0000000000..c2c010f8c6 --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -0,0 +1,12 @@ +module pyth::contract_upgrade { + use pyth::state::{State}; + + use wormhole::state::{State as WormState}; + + friend pyth::governance; + + /// Payload should be the bytes digest of the new contract. + public(friend) fun execute(_worm_state: &WormState, _pyth_state: &State, _payload: vector){ + // TODO + } +} \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move new file mode 100644 index 0000000000..40b26ad95a --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -0,0 +1,73 @@ +module pyth::governance { + use sui::tx_context::{TxContext}; + + use pyth::data_source::{Self}; + use pyth::governance_instruction; + use pyth::governance_action; + use pyth::contract_upgrade; + use pyth::set_governance_data_source; + use pyth::set_data_sources; + use pyth::set_stale_price_threshold; + use pyth::state::{State}; + use pyth::set_update_fee; + use pyth::state; + + use wormhole::vaa::{Self, VAA}; + use wormhole::state::{State as WormState}; + + public entry fun execute_governance_instruction( + pyth_state : &mut State, + worm_state: &WormState, + vaa_bytes: vector, + ctx: &mut TxContext + ) { + let parsed_vaa = parse_and_verify_governance_vaa(pyth_state, worm_state, vaa_bytes, ctx); + let instruction = governance_instruction::from_byte_vec(vaa::take_payload(parsed_vaa)); + + // Dispatch the instruction to the appropiate handler + let action = governance_instruction::get_action(&instruction); + if (action == governance_action::new_contract_upgrade()) { + assert!(governance_instruction::get_target_chain_id(&instruction) != 0, + 0); // TODO - error::governance_contract_upgrade_chain_id_zero() + contract_upgrade::execute(worm_state, pyth_state, governance_instruction::destroy(instruction)); + } else if (action == governance_action::new_set_governance_data_source()) { + set_governance_data_source::execute(pyth_state, governance_instruction::destroy(instruction)); + } else if (action == governance_action::new_set_data_sources()) { + set_data_sources::execute(pyth_state, governance_instruction::destroy(instruction)); + } else if (action == governance_action::new_set_update_fee()) { + set_update_fee::execute(pyth_state, governance_instruction::destroy(instruction)); + } else if (action == governance_action::new_set_stale_price_threshold()) { + set_stale_price_threshold::execute(pyth_state, governance_instruction::destroy(instruction)); + } else { + governance_instruction::destroy(instruction); + assert!(false, 0); // TODO - error::invalid_governance_action() + } + } + + fun parse_and_verify_governance_vaa( + pyth_state: &mut State, + worm_state: &WormState, + bytes: vector, + ctx: &mut TxContext + ): VAA { + let parsed_vaa = vaa::parse_and_verify(worm_state, bytes, ctx); + + // Check that the governance data source is valid + assert!( + state::is_valid_governance_data_source( + pyth_state, + data_source::new( + (vaa::emitter_chain(&parsed_vaa) as u64), + vaa::emitter_address(&parsed_vaa))), + 0); // TODO - error::invalid_governance_data_source() + + // Check that the sequence number is greater than the last executed governance VAA + let sequence = vaa::sequence(&parsed_vaa); + assert!(sequence > state::get_last_executed_governance_sequence(pyth_state), 0); // TODO - error::invalid_governance_sequence_number() + state::set_last_executed_governance_sequence(pyth_state, sequence); + + parsed_vaa + } +} + +// TODO - add tests \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/governance/governance_action.move b/target_chains/sui/contracts/sources/governance/governance_action.move new file mode 100644 index 0000000000..0426083364 --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/governance_action.move @@ -0,0 +1,38 @@ +module pyth::governance_action { + //use pyth::error; + + const CONTRACT_UPGRADE: u8 = 0; + const SET_GOVERNANCE_DATA_SOURCE: u8 = 1; + const SET_DATA_SOURCES: u8 = 2; + const SET_UPDATE_FEE: u8 = 3; + const SET_STALE_PRICE_THRESHOLD: u8 = 4; + + struct GovernanceAction has copy, drop { + value: u8, + } + + public fun from_u8(value: u8): GovernanceAction { + assert!(CONTRACT_UPGRADE <= value && value <= SET_STALE_PRICE_THRESHOLD, 0); //TODO - add specific error: error::invalid_governance_action() + GovernanceAction { value } + } + + public fun new_contract_upgrade(): GovernanceAction { + GovernanceAction { value: CONTRACT_UPGRADE } + } + + public fun new_set_governance_data_source(): GovernanceAction { + GovernanceAction { value: SET_GOVERNANCE_DATA_SOURCE } + } + + public fun new_set_data_sources(): GovernanceAction { + GovernanceAction { value: SET_DATA_SOURCES } + } + + public fun new_set_update_fee(): GovernanceAction { + GovernanceAction { value: SET_UPDATE_FEE } + } + + public fun new_set_stale_price_threshold(): GovernanceAction { + GovernanceAction { value: SET_STALE_PRICE_THRESHOLD } + } +} diff --git a/target_chains/sui/contracts/sources/governance/governance_instruction.move b/target_chains/sui/contracts/sources/governance/governance_instruction.move new file mode 100644 index 0000000000..841e28addd --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/governance_instruction.move @@ -0,0 +1,84 @@ +module pyth::governance_instruction { + use wormhole::cursor; + use pyth::deserialize; + use pyth::governance_action::{Self, GovernanceAction}; + + const MAGIC: vector = x"5054474d"; // "PTGM": Pyth Governance Message + const MODULE: u8 = 1; + + struct GovernanceInstruction { + module_: u8, + action: GovernanceAction, + target_chain_id: u64, + payload: vector, + } + + fun validate(instruction: &GovernanceInstruction) { + assert!(instruction.module_ == MODULE, 0); // TODO - add custom error::invalid_governance_module() + let target_chain_id = instruction.target_chain_id; + assert!(target_chain_id == (wormhole::state::chain_id() as u64) || target_chain_id == 0, 0); // TODO - custom error: error::invalid_governance_target_chain_id() + } + + public fun from_byte_vec(bytes: vector): GovernanceInstruction { + let cursor = cursor::new(bytes); + let magic = deserialize::deserialize_vector(&mut cursor, 4); + assert!(magic == MAGIC, 0); // TODO error::invalid_governance_magic_value() + let module_ = deserialize::deserialize_u8(&mut cursor); + let action = governance_action::from_u8(deserialize::deserialize_u8(&mut cursor)); + let target_chain_id = deserialize::deserialize_u16(&mut cursor); + let payload = cursor::take_rest(cursor); + + let instruction = GovernanceInstruction { + module_, + action, + target_chain_id : (target_chain_id as u64), + payload + }; + validate(&instruction); + + instruction + } + + public fun get_module(instruction: &GovernanceInstruction): u8 { + instruction.module_ + } + + public fun get_action(instruction: &GovernanceInstruction): GovernanceAction { + instruction.action + } + + public fun get_target_chain_id(instruction: &GovernanceInstruction): u64 { + instruction.target_chain_id + } + + public fun destroy(instruction: GovernanceInstruction): vector { + let GovernanceInstruction { + module_: _, + action: _, + target_chain_id: _, + payload: payload + } = instruction; + payload + } + + #[test] + #[expected_failure] + fun test_from_byte_vec_invalid_magic() { + let bytes = x"5054474eb01087a85361f738f19454e66664d3c9"; + destroy(from_byte_vec(bytes)); + } + + #[test] + #[expected_failure] + fun test_from_byte_vec_invalid_module() { + let bytes = x"5054474db00187a85361f738f19454e66664d3c9"; + destroy(from_byte_vec(bytes)); + } + + #[test] + #[expected_failure] + fun test_from_byte_vec_invalid_target_chain_id() { + let bytes = x"5054474db00187a85361f738f19454e66664d3c9"; + destroy(from_byte_vec(bytes)); + } +} diff --git a/target_chains/sui/contracts/sources/governance/set_data_sources.move b/target_chains/sui/contracts/sources/governance/set_data_sources.move new file mode 100644 index 0000000000..b1d442592b --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/set_data_sources.move @@ -0,0 +1,43 @@ +module pyth::set_data_sources { + use std::vector; + + use wormhole::cursor; + use wormhole::external_address::{Self}; + + use pyth::deserialize; + use pyth::data_source::{Self, DataSource}; + use pyth::state::{Self, State}; + + friend pyth::governance; + + struct SetDataSources { + sources: vector, + } + + public(friend) fun execute(state: &mut State, payload: vector) { + let SetDataSources { sources } = from_byte_vec(payload); + state::set_data_sources(state, sources); + } + + fun from_byte_vec(bytes: vector): SetDataSources { + let cursor = cursor::new(bytes); + let data_sources_count = deserialize::deserialize_u8(&mut cursor); + + let sources = vector::empty(); + + let i = 0; + while (i < data_sources_count) { + let emitter_chain_id = deserialize::deserialize_u16(&mut cursor); + let emitter_address = external_address::from_bytes(deserialize::deserialize_vector(&mut cursor, 32)); + vector::push_back(&mut sources, data_source::new((emitter_chain_id as u64), emitter_address)); + + i = i + 1; + }; + + cursor::destroy_empty(cursor); + + SetDataSources { + sources + } + } +} diff --git a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move new file mode 100644 index 0000000000..77328a8788 --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move @@ -0,0 +1,36 @@ +module pyth::set_governance_data_source { + use pyth::deserialize; + use pyth::data_source; + use pyth::state::{Self, State}; + + use wormhole::cursor; + use wormhole::external_address::{Self, ExternalAddress}; + //use wormhole::state::{Self} + + friend pyth::governance; + + struct SetGovernanceDataSource { + emitter_chain_id: u64, + emitter_address: ExternalAddress, + initial_sequence: u64, + } + + public(friend) fun execute(pyth_state: &mut State, payload: vector) { + let SetGovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence } = from_byte_vec(payload); + state::set_governance_data_source(pyth_state, data_source::new(emitter_chain_id, emitter_address)); + state::set_last_executed_governance_sequence(pyth_state, initial_sequence); + } + + fun from_byte_vec(bytes: vector): SetGovernanceDataSource { + let cursor = cursor::new(bytes); + let emitter_chain_id = deserialize::deserialize_u16(&mut cursor); + let emitter_address = external_address::from_bytes(deserialize::deserialize_vector(&mut cursor, 32)); + let initial_sequence = deserialize::deserialize_u64(&mut cursor); + cursor::destroy_empty(cursor); + SetGovernanceDataSource { + emitter_chain_id: (emitter_chain_id as u64), + emitter_address, + initial_sequence + } + } +} diff --git a/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move new file mode 100644 index 0000000000..6fdb6a2ed0 --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move @@ -0,0 +1,25 @@ +module pyth::set_stale_price_threshold { + use wormhole::cursor; + use pyth::deserialize; + use pyth::state::{Self, State}; + + friend pyth::governance; + + struct SetStalePriceThreshold { + threshold: u64, + } + + public(friend) fun execute(state: &mut State, payload: vector) { + let SetStalePriceThreshold { threshold } = from_byte_vec(payload); + state::set_stale_price_threshold_secs(state, threshold); + } + + fun from_byte_vec(bytes: vector): SetStalePriceThreshold { + let cursor = cursor::new(bytes); + let threshold = deserialize::deserialize_u64(&mut cursor); + cursor::destroy_empty(cursor); + SetStalePriceThreshold { + threshold + } + } +} diff --git a/target_chains/sui/contracts/sources/governance/set_update_fee.move b/target_chains/sui/contracts/sources/governance/set_update_fee.move new file mode 100644 index 0000000000..c300a69855 --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/set_update_fee.move @@ -0,0 +1,40 @@ +module pyth::set_update_fee { + use sui::math::{Self}; + + use pyth::deserialize; + use pyth::state::{Self, State}; + + use wormhole::cursor; + + + friend pyth::governance; + + const MAX_U64: u128 = (1 << 64) - 1; + + struct SetUpdateFee { + mantissa: u64, + exponent: u64, + } + + public(friend) fun execute(pyth_state: &mut State, payload: vector) { + let SetUpdateFee { mantissa, exponent } = from_byte_vec(payload); + assert!(exponent <= 255, 0); // TODO - throw error that exponent does not fit in a u8 + let fee = apply_exponent(mantissa, (exponent as u8)); + state::set_base_update_fee(pyth_state, fee); + } + + fun from_byte_vec(bytes: vector): SetUpdateFee { + let cursor = cursor::new(bytes); + let mantissa = deserialize::deserialize_u64(&mut cursor); + let exponent = deserialize::deserialize_u64(&mut cursor); + cursor::destroy_empty(cursor); + SetUpdateFee { + mantissa, + exponent, + } + } + + fun apply_exponent(mantissa: u64, exponent: u8): u64 { + mantissa * math::pow(10, exponent) + } +} diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index d7666b407a..c368bbc1ae 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -115,7 +115,7 @@ module pyth::pyth { state::register_price_info_object(pyth_state, price_identifier, id); - transfer::share_object(new_price_info_object); + transfer::public_share_object(new_price_info_object); } } }; @@ -145,7 +145,7 @@ module pyth::pyth { // Charge the message update fee // TODO - error::insufficient_fee() //assert!(get_update_fee(&vaas) <= coin::value(&fee), 0); - transfer::transfer(fee, @pyth); + transfer::public_transfer(fee, @pyth); // Update the price feed from each VAA while (!vector::is_empty(&vaas)) { diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index ec6160e73a..dca62a116e 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -9,6 +9,12 @@ module pyth::state { use pyth::price_identifier::{PriceIdentifier}; friend pyth::pyth; + friend pyth::governance_action; + friend pyth::set_update_fee; + friend pyth::set_stale_price_threshold; + friend pyth::set_data_sources; + friend pyth::governance; + friend pyth::set_governance_data_source; /// Capability for creating a bridge state object, granted to sender when this /// module is deployed From 7966b572e69f1ed94fa1fdf224de1c7d318e34ed Mon Sep 17 00:00:00 2001 From: optke3 Date: Thu, 30 Mar 2023 18:48:14 +0000 Subject: [PATCH 009/140] some newlines --- .../sui/contracts/sources/governance/contract_upgrade.move | 2 +- target_chains/sui/contracts/sources/governance/governance.move | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index c2c010f8c6..e0130c1304 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -9,4 +9,4 @@ module pyth::contract_upgrade { public(friend) fun execute(_worm_state: &WormState, _pyth_state: &State, _payload: vector){ // TODO } -} \ No newline at end of file +} diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index 40b26ad95a..bdebad43e3 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -70,4 +70,4 @@ module pyth::governance { } } -// TODO - add tests \ No newline at end of file +// TODO - add tests From e0fc80322623a7768c155b12094240f1e89500e4 Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 3 Apr 2023 21:01:46 +0000 Subject: [PATCH 010/140] error codes --- .../sources/batch_price_attestation.move | 58 ++++++++++--------- .../sui/contracts/sources/data_source.move | 6 +- .../sui/contracts/sources/event.move | 2 +- .../sources/governance/governance.move | 13 +++-- .../sources/governance/governance_action.move | 4 +- .../governance/governance_instruction.move | 9 ++- .../sources/governance/set_update_fee.move | 3 +- .../sui/contracts/sources/price_info.move | 6 +- target_chains/sui/contracts/sources/pyth.move | 45 +++++++++----- 9 files changed, 92 insertions(+), 54 deletions(-) diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index f7ccd00ae7..fd4ada51da 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -1,28 +1,24 @@ module pyth::batch_price_attestation { - - use sui::tx_context::{Self, TxContext}; + use std::vector::{Self}; + use sui::clock::{Self, Clock}; use pyth::price_feed::{Self}; use pyth::price_info::{Self, PriceInfo}; use pyth::price_identifier::{Self}; use pyth::price_status; use pyth::deserialize::{Self}; - // TODO - Import Sui clock and use it for timekeeping instead of tx_context::epoch. - // Replace epoch in deserialize_price_info with sui clock timestamp, and usage - // of epoch in test_deserialize_batch_price_attestation. - // TODO - Use specific error messages in this module, specifically - // for invalid_attestation_magic_value and invalid_batch_attestation_header_size. + use wormhole::cursor::{Self, Cursor}; use wormhole::bytes::{Self}; - use std::vector::{Self}; - #[test_only] use pyth::price; #[test_only] use pyth::i64; const MAGIC: u64 = 0x50325748; // "P2WH" (Pyth2Wormhole) raw ASCII bytes + const E_INVALID_ATTESTATION_MAGIC_VALUE: u64 = 0; + const E_INVALID_BATCH_ATTESTATION_HEADER_SIZE: u64 = 1; struct BatchPriceAttestation { header: Header, @@ -41,13 +37,13 @@ module pyth::batch_price_attestation { fun deserialize_header(cur: &mut Cursor): Header { let magic = (deserialize::deserialize_u32(cur) as u64); - assert!(magic == MAGIC, 0); // TODO - add specific error value - error::invalid_attestation_magic_value() + assert!(magic == MAGIC, E_INVALID_ATTESTATION_MAGIC_VALUE); let version_major = deserialize::deserialize_u16(cur); let version_minor = deserialize::deserialize_u16(cur); let header_size = deserialize::deserialize_u16(cur); let payload_id = deserialize::deserialize_u8(cur); - assert!(header_size >= 1, 0); // TODO - add specific error value - error::invalid_batch_attestation_header_size() + assert!(header_size >= 1, E_INVALID_BATCH_ATTESTATION_HEADER_SIZE); let unknown_header_bytes = header_size - 1; let _unknown = bytes::take_bytes(cur, (unknown_header_bytes as u64)); @@ -84,7 +80,7 @@ module pyth::batch_price_attestation { vector::borrow(&batch.price_infos, index) } - public fun deserialize(bytes: vector, ctx: &mut TxContext): BatchPriceAttestation { + public fun deserialize(bytes: vector, clock: &Clock): BatchPriceAttestation { let cur = cursor::new(bytes); let header = deserialize_header(&mut cur); @@ -94,7 +90,7 @@ module pyth::batch_price_attestation { let i = 0; while (i < attestation_count) { - let price_info = deserialize_price_info(&mut cur, ctx); + let price_info = deserialize_price_info(&mut cur, clock); vector::push_back(&mut price_infos, price_info); // Consume any excess bytes @@ -113,7 +109,7 @@ module pyth::batch_price_attestation { } } - fun deserialize_price_info(cur: &mut Cursor, ctx: &mut TxContext): PriceInfo { + fun deserialize_price_info(cur: &mut Cursor, clock: &Clock): PriceInfo { // Skip obselete field let _product_identifier = deserialize::deserialize_vector(cur, 32); @@ -155,7 +151,7 @@ module pyth::batch_price_attestation { price_info::new_price_info( attestation_time, - tx_context::epoch(ctx), //TODO - use Sui Clock to get timestamp in seconds + clock::timestamp_ms(clock) / 1000, // Divide by 1000 to get timestamp in seconds price_feed::new( price_identifier, current_price, @@ -167,21 +163,30 @@ module pyth::batch_price_attestation { #[test] #[expected_failure] fun test_deserialize_batch_price_attestation_invalid_magic() { - use sui::test_scenario::{Self, ctx}; + use sui::test_scenario::{Self, take_shared, return_shared, ctx}; let test = test_scenario::begin(@0x1234); + clock::create_for_testing(ctx(&mut test)); + test_scenario::next_tx(&mut test, @0x1234); + let test_clock = take_shared(&test); // A batch price attestation with a magic number of 0x50325749 let bytes = x"5032574900030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"; - let _ = destroy(deserialize(bytes, ctx(&mut test))); + let _ = destroy(deserialize(bytes, &test_clock)); + return_shared(test_clock); test_scenario::end(test); } #[test] fun test_deserialize_batch_price_attestation() { - use sui::test_scenario::{Self, ctx}; + use sui::test_scenario::{Self, take_shared, return_shared, ctx}; // Set the arrival time let test = test_scenario::begin(@0x1234); - let arrival_time = tx_context::epoch(ctx(&mut test)); + clock::create_for_testing(ctx(&mut test)); + test_scenario::next_tx(&mut test, @0x1234); + let test_clock = take_shared(&test); + let arrival_time_in_seconds = clock::timestamp_ms(&test_clock) / 1000; + + // let arrival_time = tx_context::epoch(ctx(&mut test)); // A raw batch price attestation // The first attestation has a status of UNKNOWN @@ -200,7 +205,7 @@ module pyth::batch_price_attestation { price_infos: vector[ price_info::new_price_info( 1663680747, - arrival_time, + arrival_time_in_seconds, price_feed::new( price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"), price::new(i64::new(1557, false), 7, i64::new(5, true), 1663680740), @@ -208,7 +213,7 @@ module pyth::batch_price_attestation { ) ), price_info::new_price_info( 1663680747, - arrival_time, + arrival_time_in_seconds, price_feed::new( price_identifier::from_byte_vec(x"3b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe"), price::new(i64::new(1050, false), 3, i64::new(5, true), 1663680745), @@ -216,7 +221,7 @@ module pyth::batch_price_attestation { ) ), price_info::new_price_info( 1663680747, - arrival_time, + arrival_time_in_seconds, price_feed::new( price_identifier::from_byte_vec(x"33832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d"), price::new(i64::new(1010, false), 2, i64::new(5, true), 1663680745), @@ -224,21 +229,22 @@ module pyth::batch_price_attestation { ) ), price_info::new_price_info( 1663680747, - arrival_time, + arrival_time_in_seconds, price_feed::new( price_identifier::from_byte_vec(x"21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db8"), price::new(i64::new(1739, false), 1, i64::new(5, true), 1663680745), price::new(i64::new(1508, false), 3, i64::new(5, true), 1663680745), - ) ), + ) + ), ], }; - let deserialized = deserialize(bytes, ctx(&mut test)); + let deserialized = deserialize(bytes, &test_clock); assert!(&expected == &deserialized, 1); destroy(expected); destroy(deserialized); - + return_shared(test_clock); test_scenario::end(test); } } diff --git a/target_chains/sui/contracts/sources/data_source.move b/target_chains/sui/contracts/sources/data_source.move index c8b7af8266..88b751ccd8 100644 --- a/target_chains/sui/contracts/sources/data_source.move +++ b/target_chains/sui/contracts/sources/data_source.move @@ -8,6 +8,8 @@ module pyth::data_source { use wormhole::external_address::ExternalAddress; const KEY: vector = b"data_sources"; + const E_DATA_SOURCE_REGISTRY_ALREADY_EXISTS: u64 = 0; + const E_DATA_SOURCE_ALREADY_REGISTERED: u64 = 1; struct DataSource has copy, drop, store { emitter_chain: u64, @@ -17,7 +19,7 @@ module pyth::data_source { public fun new_data_source_registry(parent_id: &mut UID, ctx: &mut TxContext) { assert!( !dynamic_field::exists_(parent_id, KEY), - 0 // TODO - add custom error type + E_DATA_SOURCE_REGISTRY_ALREADY_EXISTS // TODO - add custom error type ); dynamic_field::add( parent_id, @@ -29,7 +31,7 @@ module pyth::data_source { public fun add(parent_id: &mut UID, data_source: DataSource) { assert!( !contains(parent_id, data_source), - 0 // TODO - add custom error message + E_DATA_SOURCE_ALREADY_REGISTERED ); set::add( dynamic_field::borrow_mut(parent_id, KEY), diff --git a/target_chains/sui/contracts/sources/event.move b/target_chains/sui/contracts/sources/event.move index a57fed66ed..a40c5d218b 100644 --- a/target_chains/sui/contracts/sources/event.move +++ b/target_chains/sui/contracts/sources/event.move @@ -15,7 +15,7 @@ module pyth::event { timestamp: u64, } - public(friend) fun emit_price_feed_update(price_feed: PriceFeed, timestamp: u64) { + public(friend) fun emit_price_feed_update(price_feed: PriceFeed, timestamp: u64 /* in seconds */) { event::emit( PriceFeedUpdateEvent { price_feed, diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index bdebad43e3..40eb979b56 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -15,6 +15,11 @@ module pyth::governance { use wormhole::vaa::{Self, VAA}; use wormhole::state::{State as WormState}; + const E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO: u64 = 0; + const E_INVALID_GOVERNANCE_ACTION: u64 = 1; + const E_INVALID_GOVERNANCE_DATA_SOURCE: u64 = 2; + const E_INVALID_GOVERNANCE_SEQUENCE_NUMBER: u64 = 3; + public entry fun execute_governance_instruction( pyth_state : &mut State, worm_state: &WormState, @@ -28,7 +33,7 @@ module pyth::governance { let action = governance_instruction::get_action(&instruction); if (action == governance_action::new_contract_upgrade()) { assert!(governance_instruction::get_target_chain_id(&instruction) != 0, - 0); // TODO - error::governance_contract_upgrade_chain_id_zero() + E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO); contract_upgrade::execute(worm_state, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_governance_data_source()) { set_governance_data_source::execute(pyth_state, governance_instruction::destroy(instruction)); @@ -40,7 +45,7 @@ module pyth::governance { set_stale_price_threshold::execute(pyth_state, governance_instruction::destroy(instruction)); } else { governance_instruction::destroy(instruction); - assert!(false, 0); // TODO - error::invalid_governance_action() + assert!(false, E_INVALID_GOVERNANCE_ACTION); } } @@ -59,11 +64,11 @@ module pyth::governance { data_source::new( (vaa::emitter_chain(&parsed_vaa) as u64), vaa::emitter_address(&parsed_vaa))), - 0); // TODO - error::invalid_governance_data_source() + E_INVALID_GOVERNANCE_DATA_SOURCE); // Check that the sequence number is greater than the last executed governance VAA let sequence = vaa::sequence(&parsed_vaa); - assert!(sequence > state::get_last_executed_governance_sequence(pyth_state), 0); // TODO - error::invalid_governance_sequence_number() + assert!(sequence > state::get_last_executed_governance_sequence(pyth_state), E_INVALID_GOVERNANCE_SEQUENCE_NUMBER); state::set_last_executed_governance_sequence(pyth_state, sequence); parsed_vaa diff --git a/target_chains/sui/contracts/sources/governance/governance_action.move b/target_chains/sui/contracts/sources/governance/governance_action.move index 0426083364..efd79735ce 100644 --- a/target_chains/sui/contracts/sources/governance/governance_action.move +++ b/target_chains/sui/contracts/sources/governance/governance_action.move @@ -7,12 +7,14 @@ module pyth::governance_action { const SET_UPDATE_FEE: u8 = 3; const SET_STALE_PRICE_THRESHOLD: u8 = 4; + const E_INVALID_GOVERNANCE_ACTION: u64 = 5; + struct GovernanceAction has copy, drop { value: u8, } public fun from_u8(value: u8): GovernanceAction { - assert!(CONTRACT_UPGRADE <= value && value <= SET_STALE_PRICE_THRESHOLD, 0); //TODO - add specific error: error::invalid_governance_action() + assert!(CONTRACT_UPGRADE <= value && value <= SET_STALE_PRICE_THRESHOLD, E_INVALID_GOVERNANCE_ACTION); GovernanceAction { value } } diff --git a/target_chains/sui/contracts/sources/governance/governance_instruction.move b/target_chains/sui/contracts/sources/governance/governance_instruction.move index 841e28addd..52a3516be2 100644 --- a/target_chains/sui/contracts/sources/governance/governance_instruction.move +++ b/target_chains/sui/contracts/sources/governance/governance_instruction.move @@ -6,6 +6,9 @@ module pyth::governance_instruction { const MAGIC: vector = x"5054474d"; // "PTGM": Pyth Governance Message const MODULE: u8 = 1; + const E_INVALID_GOVERNANCE_MODULE: u64 = 0; + const E_INVALID_GOVERNANCE_MAGIC_VALUE: u64 = 1; + struct GovernanceInstruction { module_: u8, action: GovernanceAction, @@ -14,15 +17,15 @@ module pyth::governance_instruction { } fun validate(instruction: &GovernanceInstruction) { - assert!(instruction.module_ == MODULE, 0); // TODO - add custom error::invalid_governance_module() + assert!(instruction.module_ == MODULE, E_INVALID_GOVERNANCE_MODULE); let target_chain_id = instruction.target_chain_id; - assert!(target_chain_id == (wormhole::state::chain_id() as u64) || target_chain_id == 0, 0); // TODO - custom error: error::invalid_governance_target_chain_id() + assert!(target_chain_id == (wormhole::state::chain_id() as u64) || target_chain_id == 0, E_INVALID_GOVERNANCE_MODULE); } public fun from_byte_vec(bytes: vector): GovernanceInstruction { let cursor = cursor::new(bytes); let magic = deserialize::deserialize_vector(&mut cursor, 4); - assert!(magic == MAGIC, 0); // TODO error::invalid_governance_magic_value() + assert!(magic == MAGIC, E_INVALID_GOVERNANCE_MAGIC_VALUE); let module_ = deserialize::deserialize_u8(&mut cursor); let action = governance_action::from_u8(deserialize::deserialize_u8(&mut cursor)); let target_chain_id = deserialize::deserialize_u16(&mut cursor); diff --git a/target_chains/sui/contracts/sources/governance/set_update_fee.move b/target_chains/sui/contracts/sources/governance/set_update_fee.move index c300a69855..0286fc07d2 100644 --- a/target_chains/sui/contracts/sources/governance/set_update_fee.move +++ b/target_chains/sui/contracts/sources/governance/set_update_fee.move @@ -10,6 +10,7 @@ module pyth::set_update_fee { friend pyth::governance; const MAX_U64: u128 = (1 << 64) - 1; + const E_EXPONENT_DOES_NOT_FIT_IN_U8: u64 = 0; struct SetUpdateFee { mantissa: u64, @@ -18,7 +19,7 @@ module pyth::set_update_fee { public(friend) fun execute(pyth_state: &mut State, payload: vector) { let SetUpdateFee { mantissa, exponent } = from_byte_vec(payload); - assert!(exponent <= 255, 0); // TODO - throw error that exponent does not fit in a u8 + assert!(exponent <= 255, E_EXPONENT_DOES_NOT_FIT_IN_U8); let fee = apply_exponent(mantissa, (exponent as u8)); state::set_base_update_fee(pyth_state, fee); } diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index 9da41d6ee2..cd98aaefc3 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -8,6 +8,8 @@ module pyth::price_info { use pyth::price_identifier::{PriceIdentifier}; const KEY: vector = b"price_info"; + const E_PRICE_INFO_REGISTRY_ALREADY_EXISTS: u64 = 0; + const E_PRICE_IDENTIFIER_ALREADY_REGISTERED: u64 = 1; friend pyth::pyth; @@ -30,7 +32,7 @@ module pyth::price_info { public fun new_price_info_registry(parent_id: &mut UID, ctx: &mut TxContext) { assert!( !dynamic_object_field::exists_(parent_id, KEY), - 0 // TODO - add custom error message + E_PRICE_INFO_REGISTRY_ALREADY_EXISTS ); dynamic_object_field::add( parent_id, @@ -42,7 +44,7 @@ module pyth::price_info { public fun add(parent_id: &mut UID, price_identifier: PriceIdentifier, id: ID) { assert!( !contains(parent_id, price_identifier), - 0 // TODO - add custom error message + E_PRICE_IDENTIFIER_ALREADY_REGISTERED ); table::add( dynamic_object_field::borrow_mut(parent_id, KEY), diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index c368bbc1ae..0422503824 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -1,10 +1,10 @@ module pyth::pyth { use std::vector; use sui::tx_context::{TxContext}; - use sui::coin::{Coin}; + use sui::coin::{Self, Coin}; use sui::sui::{SUI}; use sui::transfer::{Self}; - use sui::tx_context::{Self}; + use sui::clock::{Self, Clock}; use pyth::event::{Self as pyth_event}; use pyth::data_source::{Self, DataSource}; @@ -18,6 +18,9 @@ module pyth::pyth { use wormhole::vaa::{Self}; use wormhole::state::{State as WormState}; + const E_DATA_SOURCE_EMITTER_ADDRESS_AND_CHAIN_IDS_DIFFERENT_LENGTHS: u64 = 0; + const E_INVALID_DATA_SOURCE: u64 = 1; + const E_INSUFFICIENT_FEE: u64 = 2; /// Call init_and_share_state with deployer cap to initialize /// state and emit event corresponding to Pyth initialization. @@ -54,8 +57,8 @@ module pyth::pyth { emitter_addresses: vector> ): vector { - // TODO - add custom error type error::data_source_emitter_address_and_chain_ids_different_lengths() - assert!(vector::length(&emitter_chain_ids) == vector::length(&emitter_addresses), 0); + assert!(vector::length(&emitter_chain_ids) == vector::length(&emitter_addresses), + E_DATA_SOURCE_EMITTER_ADDRESS_AND_CHAIN_IDS_DIFFERENT_LENGTHS); let sources = vector::empty(); let i = 0; @@ -75,6 +78,7 @@ module pyth::pyth { worm_state: &WormState, pyth_state: &mut PythState, vaas: vector>, + clock: &Clock, ctx: &mut TxContext ){ while (!vector::is_empty(&vaas)) { @@ -91,10 +95,10 @@ module pyth::pyth { (vaa::emitter_chain(&vaa) as u64), vaa::emitter_address(&vaa)) ), - 0); // TODO - use custom error message - error::invalid_data_source() + E_INVALID_DATA_SOURCE); // Deserialize the batch price attestation - let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), ctx)); + let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), clock)); while (!vector::is_empty(&price_infos)){ let cur_price_info = vector::pop_back(&mut price_infos); @@ -140,11 +144,13 @@ module pyth::pyth { vaas: vector>, price_info_objects: &mut vector, fee: Coin, + clock: &Clock, ctx: &mut TxContext ) { // Charge the message update fee - // TODO - error::insufficient_fee() - //assert!(get_update_fee(&vaas) <= coin::value(&fee), 0); + assert!(get_total_update_fee(pyth_state, &vaas) <= coin::value(&fee), E_INSUFFICIENT_FEE); + + // TODO: use Wormhole fee collector instead of transferring funds to deployer address. transfer::public_transfer(fee, @pyth); // Update the price feed from each VAA @@ -154,6 +160,7 @@ module pyth::pyth { pyth_state, vector::pop_back(&mut vaas), price_info_objects, + clock, ctx ); }; @@ -167,6 +174,7 @@ module pyth::pyth { pyth_state: &PythState, worm_vaa: vector, price_info_objects: &mut vector, + clock: &Clock, ctx: &mut TxContext ) { // Deserialize the VAA @@ -180,20 +188,20 @@ module pyth::pyth { (vaa::emitter_chain(&vaa) as u64), vaa::emitter_address(&vaa)) ), - 0); // TODO - use custom error message - error::invalid_data_source() + E_INVALID_DATA_SOURCE); // Deserialize the batch price attestation - let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), ctx)); + let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), clock)); // Update price info objects. - update_cache(price_infos, price_info_objects, ctx); + update_cache(price_infos, price_info_objects, clock); } /// Update PriceInfoObjects using up-to-date PriceInfos. fun update_cache( updates: vector, price_info_objects: &mut vector, - ctx: &mut TxContext + clock: &Clock, ){ while (!vector::is_empty(&updates)) { let update = vector::pop_back(&mut updates); @@ -209,8 +217,7 @@ module pyth::pyth { if (price_info::get_price_identifier(&price_info) == price_info::get_price_identifier(&update)){ found = true; - // TODO: use clock timestamp instead of epoch in the future - pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), tx_context::epoch(ctx)); + pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), clock::timestamp_ms(clock)/1000); // Update the price info object with the new updated price info. if (is_fresh_update(&update, vector::borrow(price_info_objects, i))){ @@ -243,4 +250,14 @@ module pyth::pyth { update_timestamp > cached_timestamp } + + /// Get the number of AptosCoin's required to perform the given price updates. + /// + /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees + public fun get_total_update_fee(pyth_state: &PythState, update_data: &vector>): u64 { + state::get_base_update_fee(pyth_state) * vector::length(update_data) + } } + +// TODO - pyth tests +// https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/aptos/contracts/sources/pyth.move#L384 From 84ec0d37374cb163f4bfe124aaa72e9e7f07cb2e Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 3 Apr 2023 21:18:53 +0000 Subject: [PATCH 011/140] update and comment --- .../contracts/sources/governance/governance_instruction.move | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/governance/governance_instruction.move b/target_chains/sui/contracts/sources/governance/governance_instruction.move index 52a3516be2..21fbec12d4 100644 --- a/target_chains/sui/contracts/sources/governance/governance_instruction.move +++ b/target_chains/sui/contracts/sources/governance/governance_instruction.move @@ -8,6 +8,7 @@ module pyth::governance_instruction { const E_INVALID_GOVERNANCE_MODULE: u64 = 0; const E_INVALID_GOVERNANCE_MAGIC_VALUE: u64 = 1; + const E_TARGET_CHAIN_MISMATCH: u64 = 2; struct GovernanceInstruction { module_: u8, @@ -19,13 +20,14 @@ module pyth::governance_instruction { fun validate(instruction: &GovernanceInstruction) { assert!(instruction.module_ == MODULE, E_INVALID_GOVERNANCE_MODULE); let target_chain_id = instruction.target_chain_id; - assert!(target_chain_id == (wormhole::state::chain_id() as u64) || target_chain_id == 0, E_INVALID_GOVERNANCE_MODULE); + assert!(target_chain_id == (wormhole::state::chain_id() as u64) || target_chain_id == 0, E_TARGET_CHAIN_MISMATCH); } public fun from_byte_vec(bytes: vector): GovernanceInstruction { let cursor = cursor::new(bytes); let magic = deserialize::deserialize_vector(&mut cursor, 4); assert!(magic == MAGIC, E_INVALID_GOVERNANCE_MAGIC_VALUE); + // "module" is a reserved keyword, so we use "module_" instead. let module_ = deserialize::deserialize_u8(&mut cursor); let action = governance_action::from_u8(deserialize::deserialize_u8(&mut cursor)); let target_chain_id = deserialize::deserialize_u16(&mut cursor); From c13c23d7a1e82a95f5419dfa15673822198fc1fd Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 4 Apr 2023 02:50:48 +0000 Subject: [PATCH 012/140] unit tests for pyth.move, add UpgradeCap to Pyth State (will be used for contract upgrades) --- target_chains/sui/contracts/sources/pyth.move | 155 ++++++++++++++++++ .../sui/contracts/sources/state.move | 17 ++ 2 files changed, 172 insertions(+) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 0422503824..df94e27cfb 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -5,6 +5,7 @@ module pyth::pyth { use sui::sui::{SUI}; use sui::transfer::{Self}; use sui::clock::{Self, Clock}; + use sui::package::{UpgradeCap}; use pyth::event::{Self as pyth_event}; use pyth::data_source::{Self, DataSource}; @@ -26,6 +27,7 @@ module pyth::pyth { /// state and emit event corresponding to Pyth initialization. public entry fun init_pyth( deployer: DeployerCap, + upgrade_cap: UpgradeCap, stale_price_threshold: u64, governance_emitter_chain_id: u64, governance_emitter_address: vector, @@ -36,6 +38,7 @@ module pyth::pyth { ) { state::init_and_share_state( deployer, + upgrade_cap, stale_price_threshold, update_fee, data_source::new( @@ -261,3 +264,155 @@ module pyth::pyth { // TODO - pyth tests // https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/aptos/contracts/sources/pyth.move#L384 + +module pyth::pyth_tests{ + use sui::sui::SUI; + use sui::coin::{Self, Coin}; + use sui::clock::{Self}; + use sui::test_scenario::{Self, Scenario, ctx}; + use sui::package::Self; + use sui::object::Self; + + use pyth::state::{Self}; + use pyth::price_identifier::{Self}; + use pyth::price_info::{Self, PriceInfo}; + use pyth::price_feed::{Self}; + use pyth::data_source::{Self, DataSource}; + use pyth::i64::{Self}; + use pyth::price::{Self}; + + use wormhole::setup::{Self as wormhole_setup, DeployerCap}; + use wormhole::external_address::{Self}; + + #[test_only] + /// Init Wormhole core bridge state. + /// Init Pyth state. + /// Set initial Sui clock time, + /// Mint some SUI fee coins. + fun setup_test( + stale_price_threshold: u64, + governance_emitter_chain_id: u64, + governance_emitter_address: vector, + data_sources: vector, + base_update_fee: u64, + to_mint: u64 + ): (Scenario, Coin) { + + let deployer = @0x1234; + let scenario = test_scenario::begin(deployer); + + // Initialize Wormhole core bridge. + wormhole_setup::init_test_only(ctx(&mut scenario)); + + // Take the `DeployerCap` from the sender of the transaction. + let deployer_cap = + test_scenario::take_from_address( + &scenario, + deployer + ); + + // This will be created and sent to the transaction sender automatically + // when the contract is published. This exists in place of grabbing + // it from the sender. + let upgrade_cap = + package::test_publish( + object::id_from_address(@0x0), + test_scenario::ctx(&mut scenario) + ); + + let governance_chain = 1234; + let governance_contract = + x"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; + let initial_guardians = + vector[ + x"1337133713371337133713371337133713371337", + x"c0dec0dec0dec0dec0dec0dec0dec0dec0dec0de", + x"ba5edba5edba5edba5edba5edba5edba5edba5ed" + ]; + let guardian_set_seconds_to_live = 5678; + let message_fee = 350; + + wormhole_setup::init_and_share_state( + deployer_cap, + upgrade_cap, + governance_chain, + governance_contract, + initial_guardians, + guardian_set_seconds_to_live, + message_fee, + test_scenario::ctx(&mut scenario) + ); + + // Create and share a global clock object for timekeeping. + clock::create_for_testing(ctx(&mut scenario)); + + // Initialize Pyth state. + let pyth_upgrade_cap= + package::test_publish( + object::id_from_address(@0x123456), + test_scenario::ctx(&mut scenario) + ); + + state::init_test_only(ctx(&mut scenario)); + + let pyth_deployer_cap = test_scenario::take_from_address( + &scenario, + @pyth + ); + + state::init_and_share_state( + pyth_deployer_cap, + pyth_upgrade_cap, + stale_price_threshold, + base_update_fee, + data_source::new(governance_emitter_chain_id, external_address::from_bytes(governance_emitter_address)), + data_sources, + ctx(&mut scenario) + ); + + let coins = coin::mint_for_testing(to_mint, ctx(&mut scenario)); + (scenario, coins) + } + + #[test_only] + fun get_mock_price_infos(): vector { + vector[ + price_info::new_price_info( + 1663680747, + 1663074349, + price_feed::new( + price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"), + price::new(i64::new(1557, false), 7, i64::new(5, true), 1663680740), + price::new(i64::new(1500, false), 3, i64::new(5, true), 1663680740), + ), + ), + price_info::new_price_info( + 1663680747, + 1663074349, + price_feed::new( + price_identifier::from_byte_vec(x"3b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe"), + price::new(i64::new(1050, false), 3, i64::new(5, true), 1663680745), + price::new(i64::new(1483, false), 3, i64::new(5, true), 1663680745), + ), + ), + price_info::new_price_info( + 1663680747, + 1663074349, + price_feed::new( + price_identifier::from_byte_vec(x"33832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d"), + price::new(i64::new(1010, false), 2, i64::new(5, true), 1663680745), + price::new(i64::new(1511, false), 3, i64::new(5, true), 1663680745), + ), + ), + price_info::new_price_info( + 1663680747, + 1663074349, + price_feed::new( + price_identifier::from_byte_vec(x"21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db8"), + price::new(i64::new(1739, false), 1, i64::new(5, true), 1663680745), + price::new(i64::new(1508, false), 3, i64::new(5, true), 1663680745), + ), + ), + ] + } +} \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index bed995e1c0..0cd5254e2d 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -3,12 +3,14 @@ module pyth::state { use sui::object::{Self, UID, ID}; use sui::transfer::{Self}; use sui::tx_context::{Self, TxContext}; + use sui::package::{UpgradeCap}; use pyth::data_source::{Self, DataSource}; use pyth::price_info::{Self}; use pyth::price_identifier::{PriceIdentifier}; friend pyth::pyth; + friend pyth::pyth_tests; friend pyth::governance_action; friend pyth::set_update_fee; friend pyth::set_stale_price_threshold; @@ -28,6 +30,7 @@ module pyth::state { last_executed_governance_sequence: u64, stale_price_threshold: u64, base_update_fee: u64, + upgrade_cap: UpgradeCap } fun init(ctx: &mut TxContext) { @@ -39,9 +42,22 @@ module pyth::state { ); } + #[test_only] + public fun init_test_only(ctx: &mut TxContext) { + init(ctx); + + // This will be created and sent to the transaction sender + // automatically when the contract is published. + transfer::public_transfer( + sui::package::test_publish(object::id_from_address(@pyth), ctx), + tx_context::sender(ctx) + ); + } + // Initialization public(friend) fun init_and_share_state( deployer: DeployerCap, + upgrade_cap: UpgradeCap, stale_price_threshold: u64, base_update_fee: u64, governance_data_source: DataSource, @@ -73,6 +89,7 @@ module pyth::state { transfer::share_object( State { id: uid, + upgrade_cap, governance_data_source, last_executed_governance_sequence: 0, stale_price_threshold, From 4dd4c419252898dae6afaa89f754c4a74e551e83 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 8 Apr 2023 16:03:58 +0000 Subject: [PATCH 013/140] updates --- target_chains/sui/contracts/Move.toml | 2 +- .../sources/governance/governance.move | 10 +- .../sources/governance/set_data_sources.move | 3 +- .../set_governance_data_source.move | 3 +- target_chains/sui/contracts/sources/pyth.move | 106 +++++++++++++++--- 5 files changed, 102 insertions(+), 22 deletions(-) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index d1fc1dd52c..116588fc4d 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -5,7 +5,7 @@ version = "0.0.1" [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" subdir = "crates/sui-framework/packages/sui-framework" -rev = "82c9c80c11488858f1d3930f47ec9f335a566683" +rev = "81dbcf2b6cab07d623a1012bf31daf658963c765" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index 40eb979b56..d84657a03d 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -1,5 +1,5 @@ module pyth::governance { - use sui::tx_context::{TxContext}; + use sui::clock::{Clock}; use pyth::data_source::{Self}; use pyth::governance_instruction; @@ -24,9 +24,9 @@ module pyth::governance { pyth_state : &mut State, worm_state: &WormState, vaa_bytes: vector, - ctx: &mut TxContext + clock: &Clock ) { - let parsed_vaa = parse_and_verify_governance_vaa(pyth_state, worm_state, vaa_bytes, ctx); + let parsed_vaa = parse_and_verify_governance_vaa(pyth_state, worm_state, vaa_bytes, clock); let instruction = governance_instruction::from_byte_vec(vaa::take_payload(parsed_vaa)); // Dispatch the instruction to the appropiate handler @@ -53,9 +53,9 @@ module pyth::governance { pyth_state: &mut State, worm_state: &WormState, bytes: vector, - ctx: &mut TxContext + clock: &Clock, ): VAA { - let parsed_vaa = vaa::parse_and_verify(worm_state, bytes, ctx); + let parsed_vaa = vaa::parse_and_verify(worm_state, bytes, clock); // Check that the governance data source is valid assert!( diff --git a/target_chains/sui/contracts/sources/governance/set_data_sources.move b/target_chains/sui/contracts/sources/governance/set_data_sources.move index b1d442592b..f22969bccf 100644 --- a/target_chains/sui/contracts/sources/governance/set_data_sources.move +++ b/target_chains/sui/contracts/sources/governance/set_data_sources.move @@ -3,6 +3,7 @@ module pyth::set_data_sources { use wormhole::cursor; use wormhole::external_address::{Self}; + use wormhole::bytes32::{Self}; use pyth::deserialize; use pyth::data_source::{Self, DataSource}; @@ -28,7 +29,7 @@ module pyth::set_data_sources { let i = 0; while (i < data_sources_count) { let emitter_chain_id = deserialize::deserialize_u16(&mut cursor); - let emitter_address = external_address::from_bytes(deserialize::deserialize_vector(&mut cursor, 32)); + let emitter_address = external_address::new(bytes32::from_bytes(deserialize::deserialize_vector(&mut cursor, 32))); vector::push_back(&mut sources, data_source::new((emitter_chain_id as u64), emitter_address)); i = i + 1; diff --git a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move index 77328a8788..4616339b65 100644 --- a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move +++ b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move @@ -5,6 +5,7 @@ module pyth::set_governance_data_source { use wormhole::cursor; use wormhole::external_address::{Self, ExternalAddress}; + use wormhole::bytes32::{Self}; //use wormhole::state::{Self} friend pyth::governance; @@ -24,7 +25,7 @@ module pyth::set_governance_data_source { fun from_byte_vec(bytes: vector): SetGovernanceDataSource { let cursor = cursor::new(bytes); let emitter_chain_id = deserialize::deserialize_u16(&mut cursor); - let emitter_address = external_address::from_bytes(deserialize::deserialize_vector(&mut cursor, 32)); + let emitter_address = external_address::new(bytes32::from_bytes(deserialize::deserialize_vector(&mut cursor, 32))); let initial_sequence = deserialize::deserialize_u64(&mut cursor); cursor::destroy_empty(cursor); SetGovernanceDataSource { diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index df94e27cfb..aa8f9967b6 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -13,15 +13,18 @@ module pyth::pyth { use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; use pyth::batch_price_attestation::{Self}; use pyth::price_feed::{Self}; - use pyth::price::{Self}; + use pyth::price::{Self, Price}; + use pyth::price_identifier::{PriceIdentifier}; use wormhole::external_address::{Self}; use wormhole::vaa::{Self}; use wormhole::state::{State as WormState}; + use wormhole::bytes32::{Self}; const E_DATA_SOURCE_EMITTER_ADDRESS_AND_CHAIN_IDS_DIFFERENT_LENGTHS: u64 = 0; const E_INVALID_DATA_SOURCE: u64 = 1; const E_INSUFFICIENT_FEE: u64 = 2; + const E_STALE_PRICE_UPDATE: u64 = 3; /// Call init_and_share_state with deployer cap to initialize /// state and emit event corresponding to Pyth initialization. @@ -43,7 +46,8 @@ module pyth::pyth { update_fee, data_source::new( governance_emitter_chain_id, - external_address::from_bytes(governance_emitter_address)), + external_address::new((bytes32::from_bytes(governance_emitter_address))) + ), parse_data_sources( data_sources_emitter_chain_ids, data_sources_emitter_addresses, @@ -68,7 +72,7 @@ module pyth::pyth { while (i < vector::length(&emitter_chain_ids)) { vector::push_back(&mut sources, data_source::new( *vector::borrow(&emitter_chain_ids, i), - external_address::from_bytes(*vector::borrow(&emitter_addresses, i)) + external_address::new(bytes32::from_bytes(*vector::borrow(&emitter_addresses, i))) )); i = i + 1; @@ -88,7 +92,7 @@ module pyth::pyth { let vaa = vector::pop_back(&mut vaas); // Deserialize the VAA - let vaa = vaa::parse_and_verify(worm_state, vaa, ctx); + let vaa = vaa::parse_and_verify(worm_state, vaa, clock); // Check that the VAA is from a valid data source (emitter) assert!( @@ -147,9 +151,8 @@ module pyth::pyth { vaas: vector>, price_info_objects: &mut vector, fee: Coin, - clock: &Clock, - ctx: &mut TxContext - ) { + clock: &Clock + ){ // Charge the message update fee assert!(get_total_update_fee(pyth_state, &vaas) <= coin::value(&fee), E_INSUFFICIENT_FEE); @@ -163,8 +166,7 @@ module pyth::pyth { pyth_state, vector::pop_back(&mut vaas), price_info_objects, - clock, - ctx + clock ); }; } @@ -177,11 +179,10 @@ module pyth::pyth { pyth_state: &PythState, worm_vaa: vector, price_info_objects: &mut vector, - clock: &Clock, - ctx: &mut TxContext + clock: &Clock ) { // Deserialize the VAA - let vaa = vaa::parse_and_verify(worm_state, worm_vaa, ctx); + let vaa = vaa::parse_and_verify(worm_state, worm_vaa, clock); // Check that the VAA is from a valid data source (emitter) assert!( @@ -254,14 +255,90 @@ module pyth::pyth { update_timestamp > cached_timestamp } + // ----------------------------------------------------------------------------- + // Query the cached prices + // + // It is strongly recommended to update the cached prices using the functions above, + // before using the functions below to query the cached data. + /// Get the number of AptosCoin's required to perform the given price updates. /// + + /// Determine if a price feed for the given price_identifier exists + public fun price_feed_exists(state: &PythState, price_identifier: PriceIdentifier): bool { + state::price_feed_object_exists(state, price_identifier) + } + + /// Get the latest available price cached for the given price identifier, if that price is + /// no older than the stale price threshold. + /// + /// Please refer to the documentation at https://docs.pyth.network/consumers/best-practices for + /// how to how this price safely. + /// + /// Important: Pyth uses an on-demand update model, where consumers need to update the + /// cached prices before using them. Please read more about this at https://docs.pyth.network/consume-data/on-demand. + /// get_price() is likely to abort unless you call update_price_feeds() to update the cached price + /// beforehand, as the cached prices may be older than the stale price threshold. + /// + /// The price_info_object is a Sui object with the key ability that uniquely + /// contains a price feed for a given price_identifier. + /// + public fun get_price(state: &PythState, price_info_object: &PriceInfoObject, clock: &Clock): Price { + get_price_no_older_than(price_info_object, clock, state::get_stale_price_threshold_secs(state)) + } + + /// Get the latest available price cached for the given price identifier, if that price is + /// no older than the given age. + public fun get_price_no_older_than(price_info_object: &PriceInfoObject, clock: &Clock, max_age_secs: u64): Price { + let price = get_price_unsafe(price_info_object); + check_price_is_fresh(&price, clock, max_age_secs); + price + } + + /// Get the latest available price cached for the given price identifier. + /// + /// WARNING: the returned price can be from arbitrarily far in the past. + /// This function makes no guarantees that the returned price is recent or + /// useful for any particular application. Users of this function should check + /// the returned timestamp to ensure that the returned price is sufficiently + /// recent for their application. The checked get_price_no_older_than() + /// function should be used in preference to this. + public fun get_price_unsafe(price_info_object: &PriceInfoObject): Price { + // TODO: extract Price from this guy... + let price_info = price_info::get_price_info_from_price_info_object(price_info_object); + price_feed::get_price( + price_info::get_price_feed(&price_info) + ) + } + + fun abs_diff(x: u64, y: u64): u64 { + if (x > y) { + return x - y + } else { + return y - x + } + } + + /// Get the stale price threshold: the amount of time after which a cached price + /// is considered stale and no longer returned by get_price()/get_ema_price(). + public fun get_stale_price_threshold_secs(state: &PythState): u64 { + state::get_stale_price_threshold_secs(state) + } + + fun check_price_is_fresh(price: &Price, clock: &Clock, max_age_secs: u64) { + let age = abs_diff(clock::timestamp_ms(clock)/1000, price::get_timestamp(price)); + assert!(age < max_age_secs, E_STALE_PRICE_UPDATE); + } + /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees public fun get_total_update_fee(pyth_state: &PythState, update_data: &vector>): u64 { state::get_base_update_fee(pyth_state) * vector::length(update_data) } } + + + // TODO - pyth tests // https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/aptos/contracts/sources/pyth.move#L384 @@ -283,6 +360,7 @@ module pyth::pyth_tests{ use wormhole::setup::{Self as wormhole_setup, DeployerCap}; use wormhole::external_address::{Self}; + use wormhole::bytes32::{Self}; #[test_only] /// Init Wormhole core bridge state. @@ -332,7 +410,7 @@ module pyth::pyth_tests{ let guardian_set_seconds_to_live = 5678; let message_fee = 350; - wormhole_setup::init_and_share_state( + wormhole_setup::complete( deployer_cap, upgrade_cap, governance_chain, @@ -365,7 +443,7 @@ module pyth::pyth_tests{ pyth_upgrade_cap, stale_price_threshold, base_update_fee, - data_source::new(governance_emitter_chain_id, external_address::from_bytes(governance_emitter_address)), + data_source::new(governance_emitter_chain_id, external_address::new(bytes32::from_bytes(governance_emitter_address))), data_sources, ctx(&mut scenario) ); From b8877f64e93bfdc3c8c532dd686a4e5a616334b8 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 9 Apr 2023 18:35:32 +0000 Subject: [PATCH 014/140] test_get_update_fee test passes --- target_chains/sui/contracts/sources/pyth.move | 39 +++++++++++++------ 1 file changed, 28 insertions(+), 11 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index aa8f9967b6..a0b92ff396 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -261,9 +261,6 @@ module pyth::pyth { // It is strongly recommended to update the cached prices using the functions above, // before using the functions below to query the cached data. - /// Get the number of AptosCoin's required to perform the given price updates. - /// - /// Determine if a price feed for the given price_identifier exists public fun price_feed_exists(state: &PythState, price_identifier: PriceIdentifier): bool { state::price_feed_object_exists(state, price_identifier) @@ -336,27 +333,22 @@ module pyth::pyth { } } - - - -// TODO - pyth tests -// https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/aptos/contracts/sources/pyth.move#L384 - module pyth::pyth_tests{ use sui::sui::SUI; use sui::coin::{Self, Coin}; use sui::clock::{Self}; - use sui::test_scenario::{Self, Scenario, ctx}; + use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; use sui::package::Self; use sui::object::Self; - use pyth::state::{Self}; + use pyth::state::{Self, State as PythState}; use pyth::price_identifier::{Self}; use pyth::price_info::{Self, PriceInfo}; use pyth::price_feed::{Self}; use pyth::data_source::{Self, DataSource}; use pyth::i64::{Self}; use pyth::price::{Self}; + use pyth::pyth::{Self}; use wormhole::setup::{Self as wormhole_setup, DeployerCap}; use wormhole::external_address::{Self}; @@ -493,4 +485,29 @@ module pyth::pyth_tests{ ), ] } + + #[test_only] + fun test_get_update_fee() { + let single_update_fee = 50; + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 100000, 0); + + let pyth_state = take_shared(&scenario); + // Pass in a single VAA + assert!(pyth::get_total_update_fee(&pyth_state, &vector[ + x"fb1543888001083cf2e6ef3afdcf827e89b11efd87c563638df6e1995ada9f93", + ]) == single_update_fee, 1); + + // Pass in multiple VAAs + assert!(pyth::get_total_update_fee(&pyth_state, &vector[ + x"4ee17a1a4524118de513fddcf82b77454e51be5d6fc9e29fc72dd6c204c0e4fa", + x"c72fdf81cfc939d4286c93fbaaae2eec7bae28a5926fa68646b43a279846ccc1", + x"d9a8123a793529c31200339820a3210059ecace6c044f81ecad62936e47ca049", + x"84e4f21b3e65cef47fda25d15b4eddda1edf720a1d062ccbf441d6396465fbe6", + x"9e73f9041476a93701a0b9c7501422cc2aa55d16100bec628cf53e0281b6f72f" + ]) == 250, 1); + + return_shared(pyth_state); + coin::burn_for_testing(test_coins); + test_scenario::end(scenario); + } } \ No newline at end of file From 5dcb6137d796274b416ace09efd92b60a44f6a14 Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 16:39:17 +0000 Subject: [PATCH 015/140] fix test_get_update_fee and test_update_price_feeds_corrupt_vaa --- target_chains/sui/contracts/Move.lock | 29 +++++++++ target_chains/sui/contracts/sources/pyth.move | 59 ++++++++++++++----- .../sui/contracts/sources/state.move | 14 ++++- 3 files changed, 87 insertions(+), 15 deletions(-) create mode 100644 target_chains/sui/contracts/Move.lock diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock new file mode 100644 index 0000000000..b892597451 --- /dev/null +++ b/target_chains/sui/contracts/Move.lock @@ -0,0 +1,29 @@ +# @generated by Move, please check-in and do not edit manually. + +[move] +version = 0 + +dependencies = [ + { name = "Sui" }, + { name = "Wormhole" }, +] + +[[move.package]] +name = "MoveStdlib" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "81dbcf2b6cab07d623a1012bf31daf658963c765", subdir = "crates/sui-framework/packages/move-stdlib" } + +[[move.package]] +name = "Sui" +source = { git = "https://github.com/MystenLabs/sui.git", rev = "81dbcf2b6cab07d623a1012bf31daf658963c765", subdir = "crates/sui-framework/packages/sui-framework" } + +dependencies = [ + { name = "MoveStdlib" }, +] + +[[move.package]] +name = "Wormhole" +source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "sui/integration_v2", subdir = "sui/wormhole" } + +dependencies = [ + { name = "Sui" }, +] diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index a0b92ff396..27dfe73f97 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -336,7 +336,7 @@ module pyth::pyth { module pyth::pyth_tests{ use sui::sui::SUI; use sui::coin::{Self, Coin}; - use sui::clock::{Self}; + use sui::clock::{Self, Clock}; use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; use sui::package::Self; use sui::object::Self; @@ -353,11 +353,14 @@ module pyth::pyth_tests{ use wormhole::setup::{Self as wormhole_setup, DeployerCap}; use wormhole::external_address::{Self}; use wormhole::bytes32::{Self}; + use wormhole::state::{State as WormState}; + + const DEPLOYER: address = @0x1234; #[test_only] /// Init Wormhole core bridge state. /// Init Pyth state. - /// Set initial Sui clock time, + /// Set initial Sui clock time. /// Mint some SUI fee coins. fun setup_test( stale_price_threshold: u64, @@ -368,17 +371,17 @@ module pyth::pyth_tests{ to_mint: u64 ): (Scenario, Coin) { - let deployer = @0x1234; - let scenario = test_scenario::begin(deployer); + let scenario = test_scenario::begin(DEPLOYER); // Initialize Wormhole core bridge. wormhole_setup::init_test_only(ctx(&mut scenario)); - + //debug::print(&0x1111); + test_scenario::next_tx(&mut scenario, DEPLOYER); // Take the `DeployerCap` from the sender of the transaction. let deployer_cap = test_scenario::take_from_address( &scenario, - deployer + DEPLOYER ); // This will be created and sent to the transaction sender automatically @@ -386,7 +389,7 @@ module pyth::pyth_tests{ // it from the sender. let upgrade_cap = package::test_publish( - object::id_from_address(@0x0), + object::id_from_address(@wormhole), test_scenario::ctx(&mut scenario) ); @@ -419,15 +422,15 @@ module pyth::pyth_tests{ // Initialize Pyth state. let pyth_upgrade_cap= package::test_publish( - object::id_from_address(@0x123456), + object::id_from_address(@pyth), test_scenario::ctx(&mut scenario) ); state::init_test_only(ctx(&mut scenario)); - + test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_deployer_cap = test_scenario::take_from_address( &scenario, - @pyth + DEPLOYER ); state::init_and_share_state( @@ -486,11 +489,11 @@ module pyth::pyth_tests{ ] } - #[test_only] + #[test] fun test_get_update_fee() { let single_update_fee = 50; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 100000, 0); - + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], single_update_fee, 0); + test_scenario::next_tx(&mut scenario, DEPLOYER, ); let pyth_state = take_shared(&scenario); // Pass in a single VAA assert!(pyth::get_total_update_fee(&pyth_state, &vector[ @@ -510,4 +513,32 @@ module pyth::pyth_tests{ coin::burn_for_testing(test_coins); test_scenario::end(scenario); } -} \ No newline at end of file + + #[test] + #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] + fun test_update_price_feeds_corrupt_vaa() { + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 100000, 0); + test_scenario::next_tx(&mut scenario, DEPLOYER); + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + let clock = take_shared(&scenario); + + // Pass in a corrupt VAA, which should fail deseriaizing + let corrupt_vaa = x"90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; + + // Create Pyth price feed + pyth::create_price_feeds( + &mut worm_state, + &mut pyth_state, + vector[corrupt_vaa], + &clock, + ctx(&mut scenario) + ); + + return_shared(pyth_state); + return_shared(worm_state); + return_shared(clock); + coin::burn_for_testing(test_coins); + test_scenario::end(scenario); + } +} diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 0cd5254e2d..ff9a7c0bfb 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -3,12 +3,14 @@ module pyth::state { use sui::object::{Self, UID, ID}; use sui::transfer::{Self}; use sui::tx_context::{Self, TxContext}; - use sui::package::{UpgradeCap}; + use sui::package::{Self, UpgradeCap}; use pyth::data_source::{Self, DataSource}; use pyth::price_info::{Self}; use pyth::price_identifier::{PriceIdentifier}; + use wormhole::setup::{assert_package_upgrade_cap}; + friend pyth::pyth; friend pyth::pyth_tests; friend pyth::governance_action; @@ -64,9 +66,19 @@ module pyth::state { sources: vector, ctx: &mut TxContext ) { + // TODO - version control + // let version = wormhole::version_control::version(); + //assert!(version == 1, E_INVALID_BUILD_VERSION); + let DeployerCap { id } = deployer; object::delete(id); + assert_package_upgrade_cap( + &upgrade_cap, + package::compatible_policy(), + 1 // version + ); + let uid = object::new(ctx); // Create a set that contains all registered data sources and From edf67353dfb96ccae0479603ba399647b99ee8fc Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 17:28:28 +0000 Subject: [PATCH 016/140] test_update_price_feeds_invalid_data_source --- target_chains/sui/contracts/sources/pyth.move | 52 +++++++++++++++++-- 1 file changed, 48 insertions(+), 4 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 27dfe73f97..adcf9e4a52 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -357,6 +357,14 @@ module pyth::pyth_tests{ const DEPLOYER: address = @0x1234; + #[test_only] + /// A vector containing a single VAA with: + /// - emitter chain ID 17 + /// - emitter address 0x71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b + /// - payload corresponding to the batch price attestation of the prices returned by get_mock_price_infos() + const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; + + #[test_only] /// Init Wormhole core bridge state. /// Init Pyth state. @@ -398,9 +406,10 @@ module pyth::pyth_tests{ x"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; let initial_guardians = vector[ - x"1337133713371337133713371337133713371337", - x"c0dec0dec0dec0dec0dec0dec0dec0dec0dec0de", - x"ba5edba5edba5edba5edba5edba5edba5edba5ed" + x"beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe" + //x"1337133713371337133713371337133713371337", + //x"c0dec0dec0dec0dec0dec0dec0dec0dec0dec0de", + //x"ba5edba5edba5edba5edba5edba5edba5edba5ed" ]; let guardian_set_seconds_to_live = 5678; let message_fee = 350; @@ -517,7 +526,7 @@ module pyth::pyth_tests{ #[test] #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] fun test_update_price_feeds_corrupt_vaa() { - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 100000, 0); + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); @@ -541,4 +550,39 @@ module pyth::pyth_tests{ coin::burn_for_testing(test_coins); test_scenario::end(scenario); } + + #[test] + #[expected_failure(abort_code = pyth::pyth::E_INVALID_DATA_SOURCE)] + fun test_update_price_feeds_invalid_data_source() { + // Initialize the contract with some valid data sources, excluding our test VAA's source + let data_sources = vector[ + data_source::new( + 4, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007742")) + ), + data_source::new( + 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637")) + ) + ]; + + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, 50, 0); + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + let clock = take_shared(&scenario); + + pyth::create_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &clock, + ctx(&mut scenario) + ); + + return_shared(pyth_state); + return_shared(worm_state); + return_shared(clock); + coin::burn_for_testing(test_coins); + test_scenario::end(scenario); + } } From 48ccac678ce70e4bfbf2eb8e8ebdca768d2f79ea Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 18:34:55 +0000 Subject: [PATCH 017/140] test_create_and_update_price_feeds --- target_chains/sui/contracts/Move.toml | 2 +- target_chains/sui/contracts/sources/pyth.move | 71 +++++++++++++++++-- 2 files changed, 66 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 116588fc4d..82e23e229d 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -5,7 +5,7 @@ version = "0.0.1" [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" subdir = "crates/sui-framework/packages/sui-framework" -rev = "81dbcf2b6cab07d623a1012bf31daf658963c765" +rev = "ddfc3fa0768a38286787319603a5458a9ff91cc1" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index adcf9e4a52..8e8cbba71a 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -230,7 +230,8 @@ module pyth::pyth { update ); } - } + }; + i = i + 1; }; if (!found){ // TODO - throw error, since the price_feeds in price_info_objects do @@ -334,6 +335,8 @@ module pyth::pyth { } module pyth::pyth_tests{ + use std::vector::{Self}; + use sui::sui::SUI; use sui::coin::{Self, Coin}; use sui::clock::{Self, Clock}; @@ -343,7 +346,7 @@ module pyth::pyth_tests{ use pyth::state::{Self, State as PythState}; use pyth::price_identifier::{Self}; - use pyth::price_info::{Self, PriceInfo}; + use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; use pyth::price_feed::{Self}; use pyth::data_source::{Self, DataSource}; use pyth::i64::{Self}; @@ -364,7 +367,6 @@ module pyth::pyth_tests{ /// - payload corresponding to the batch price attestation of the prices returned by get_mock_price_infos() const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; - #[test_only] /// Init Wormhole core bridge state. /// Init Pyth state. @@ -383,7 +385,6 @@ module pyth::pyth_tests{ // Initialize Wormhole core bridge. wormhole_setup::init_test_only(ctx(&mut scenario)); - //debug::print(&0x1111); test_scenario::next_tx(&mut scenario, DEPLOYER); // Take the `DeployerCap` from the sender of the transaction. let deployer_cap = @@ -525,7 +526,7 @@ module pyth::pyth_tests{ #[test] #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] - fun test_update_price_feeds_corrupt_vaa() { + fun test_create_price_feeds_corrupt_vaa() { let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); @@ -553,7 +554,7 @@ module pyth::pyth_tests{ #[test] #[expected_failure(abort_code = pyth::pyth::E_INVALID_DATA_SOURCE)] - fun test_update_price_feeds_invalid_data_source() { + fun test_create_price_feeds_invalid_data_source() { // Initialize the contract with some valid data sources, excluding our test VAA's source let data_sources = vector[ data_source::new( @@ -585,4 +586,62 @@ module pyth::pyth_tests{ coin::burn_for_testing(test_coins); test_scenario::end(scenario); } + + #[test_only] + fun data_sources_for_test_vaa(): vector { + // Set some valid data sources, including our test VAA's source + vector[ + data_source::new( + 1, external_address::new(bytes32::from_bytes(x"0000000000000000000000000000000000000000000000000000000000000004"))), + data_source::new( + 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637"))), + data_source::new( + 17, external_address::new(bytes32::new(x"71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b"))) + ] + } + + #[test] + fun test_create_and_update_price_feeds() { + let data_sources = data_sources_for_test_vaa(); + let base_update_fee = 50; + let coins_to_mint = 5000; + + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + let clock = take_shared(&scenario); + + pyth::create_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &clock, + ctx(&mut scenario) + ); + + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let price_info_object = take_shared(&scenario); + let w = vector[price_info_object]; + + pyth::update_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &mut w, + test_coins, + &clock + ); + + price_info_object = vector::pop_back(&mut w); + vector::destroy_empty(w); + return_shared(pyth_state); + return_shared(worm_state); + return_shared(price_info_object); + return_shared(clock); + test_scenario::end(scenario); + } + } From 1c2dd4a2be014e92ff524e7f5e36ae4d0713555b Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 19:31:14 +0000 Subject: [PATCH 018/140] test_create_and_update_price_feeds_success and test_create_and_update_price_feeds_price_info_object_not_found_failure --- target_chains/sui/contracts/sources/pyth.move | 172 +++++++++++++++++- 1 file changed, 163 insertions(+), 9 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 8e8cbba71a..f8e246e3a6 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -25,6 +25,7 @@ module pyth::pyth { const E_INVALID_DATA_SOURCE: u64 = 1; const E_INSUFFICIENT_FEE: u64 = 2; const E_STALE_PRICE_UPDATE: u64 = 3; + const E_PRICE_INFO_OBJECT_NOT_FOUND: u64 = 4; /// Call init_and_share_state with deployer cap to initialize /// state and emit event corresponding to Pyth initialization. @@ -234,8 +235,7 @@ module pyth::pyth { i = i + 1; }; if (!found){ - // TODO - throw error, since the price_feeds in price_info_objects do - // not constitute a superset of the price_feeds to be updated + abort(E_PRICE_INFO_OBJECT_NOT_FOUND) } }; vector::destroy_empty(updates); @@ -342,7 +342,7 @@ module pyth::pyth_tests{ use sui::clock::{Self, Clock}; use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; use sui::package::Self; - use sui::object::Self; + use sui::object::{Self, ID}; use pyth::state::{Self, State as PythState}; use pyth::price_identifier::{Self}; @@ -499,6 +499,30 @@ module pyth::pyth_tests{ ] } + #[test_only] + fun check_price_feeds_cached(expected: &vector, actual: &vector) { + // Check that we can retrieve the correct current price and ema price for each price feed + let i = 0; + while (i < vector::length(expected)) { + let price_feed = price_info::get_price_feed(vector::borrow(expected, i)); + let price = price_feed::get_price(price_feed); + let ema_price = price_feed::get_ema_price(price_feed); + let price_identifier = price_info::get_price_identifier(vector::borrow(expected, i)); + + let actual_price_info = price_info::get_price_info_from_price_info_object(vector::borrow(actual, i)); + let actual_price_feed = price_info::get_price_feed(&actual_price_info); + let actual_price = price_feed::get_price(actual_price_feed); + let actual_ema_price = price_feed::get_ema_price(actual_price_feed); + let actual_price_identifier = price_info::get_price_identifier(&actual_price_info); + + assert!(price == actual_price, 0); + assert!(ema_price == actual_ema_price, 0); + assert!(price_identifier::get_bytes(&price_identifier) == price_identifier::get_bytes(&actual_price_identifier), 0); + + i = i + 1; + }; + } + #[test] fun test_get_update_fee() { let single_update_fee = 50; @@ -565,7 +589,7 @@ module pyth::pyth_tests{ ) ]; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, 50, 0); + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, 50, 0); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); @@ -601,7 +625,7 @@ module pyth::pyth_tests{ } #[test] - fun test_create_and_update_price_feeds() { + fun test_create_and_update_price_feeds_success() { let data_sources = data_sources_for_test_vaa(); let base_update_fee = 50; let coins_to_mint = 5000; @@ -621,22 +645,152 @@ module pyth::pyth_tests{ ctx(&mut scenario) ); + // Affirm that 4 objects, which correspond to the 4 new price info objects + // containing the price feeds were created and shared. + let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); + let shared_ids = test_scenario::shared(&effects); + let created_ids = test_scenario::created(&effects); + assert!(vector::length(&shared_ids)==4, 0); + assert!(vector::length(&created_ids)==4, 0); + + let price_info_object_1 = take_shared(&scenario); + let price_info_object_2 = take_shared(&scenario); + let price_info_object_3 = take_shared(&scenario); + let price_info_object_4 = take_shared(&scenario); + + // Create vector of price info objects (Sui objects with key ability and living in global store), + // which contain the price feeds we want to update. Note that these can be passed into + // update_price_feeds in any order! + let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3, price_info_object_4]; + + pyth::update_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &mut price_info_object_vec, + test_coins, + &clock + ); + + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + + vector::destroy_empty(price_info_object_vec); + return_shared(pyth_state); + return_shared(worm_state); + return_shared(price_info_object_1); + return_shared(price_info_object_2); + return_shared(price_info_object_3); + return_shared(price_info_object_4); + + return_shared(clock); + test_scenario::end(scenario); + } + + #[test] + #[expected_failure(abort_code = pyth::pyth::E_PRICE_INFO_OBJECT_NOT_FOUND)] + fun test_create_and_update_price_feeds_price_info_object_not_found_failure() { + let data_sources = data_sources_for_test_vaa(); + let base_update_fee = 50; + let coins_to_mint = 5000; + + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + let clock = take_shared(&scenario); + + pyth::create_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &clock, + ctx(&mut scenario) + ); + + // Affirm that 4 objects, which correspond to the 4 new price info objects + // containing the price feeds were created and shared. + let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); + let shared_ids = test_scenario::shared(&effects); + let created_ids = test_scenario::created(&effects); + assert!(vector::length(&shared_ids)==4, 0); + assert!(vector::length(&created_ids)==4, 0); + + let price_info_object_1 = take_shared(&scenario); + let price_info_object_2 = take_shared(&scenario); + let price_info_object_3 = take_shared(&scenario); + let price_info_object_4 = take_shared(&scenario); + + // Note that here we only pass in 3 price info objects corresponding to 3 out + // of the 4 price feeds. + let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3]; + + pyth::update_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &mut price_info_object_vec, + test_coins, + &clock + ); + + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + + vector::destroy_empty(price_info_object_vec); + return_shared(pyth_state); + return_shared(worm_state); + return_shared(price_info_object_1); + return_shared(price_info_object_2); + return_shared(price_info_object_3); + return_shared(price_info_object_4); + + return_shared(clock); + test_scenario::end(scenario); + } + + #[test] + #[expected_failure(abort_code = pyth::pyth::E_INSUFFICIENT_FEE)] + fun test_create_and_update_price_feeds_insufficient_fee() { + let data_sources = data_sources_for_test_vaa(); + let base_update_fee = 50; + let coins_to_mint = 5; + + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + let clock = take_shared(&scenario); + + pyth::create_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &clock, + ctx(&mut scenario) + ); + test_scenario::next_tx(&mut scenario, DEPLOYER); let price_info_object = take_shared(&scenario); - let w = vector[price_info_object]; + let price_info_object_vec = vector[price_info_object]; pyth::update_price_feeds( &mut worm_state, &mut pyth_state, TEST_VAAS, - &mut w, + &mut price_info_object_vec, test_coins, &clock ); - price_info_object = vector::pop_back(&mut w); - vector::destroy_empty(w); + price_info_object = vector::pop_back(&mut price_info_object_vec); + vector::destroy_empty(price_info_object_vec); return_shared(pyth_state); return_shared(worm_state); return_shared(price_info_object); From b1b66241cabd8158ae3e53bcf3563676fc348772 Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 19:41:09 +0000 Subject: [PATCH 019/140] test_update_cache --- target_chains/sui/contracts/sources/pyth.move | 71 ++++++++++++++++++- 1 file changed, 68 insertions(+), 3 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index f8e246e3a6..a5b10fee53 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -27,6 +27,8 @@ module pyth::pyth { const E_STALE_PRICE_UPDATE: u64 = 3; const E_PRICE_INFO_OBJECT_NOT_FOUND: u64 = 4; + friend pyth::pyth_tests; + /// Call init_and_share_state with deployer cap to initialize /// state and emit event corresponding to Pyth initialization. public entry fun init_pyth( @@ -213,8 +215,9 @@ module pyth::pyth { let i = 0; let found = false; // Find PriceInfoObjects corresponding to the current update (PriceInfo). - // TODO - This for loop might be expensive if there are a large - // number of updates and/or price_info_objects we are updating. + // TODO - Construct an in-memory table to make look-ups faster? + // This loop might be expensive if there are a large number + // of updates and/or price_info_objects we are updating. while (i < vector::length(price_info_objects)){ // Check if the current price info object corresponds to the price feed that // the update is meant for. @@ -676,8 +679,8 @@ module pyth::pyth_tests{ price_info_object_2 = vector::pop_back(&mut price_info_object_vec); price_info_object_3 = vector::pop_back(&mut price_info_object_vec); price_info_object_4 = vector::pop_back(&mut price_info_object_vec); - vector::destroy_empty(price_info_object_vec); + return_shared(pyth_state); return_shared(worm_state); return_shared(price_info_object_1); @@ -798,4 +801,66 @@ module pyth::pyth_tests{ test_scenario::end(scenario); } + #[test] + fun test_update_cache(){ + let data_sources = data_sources_for_test_vaa(); + let base_update_fee = 50; + let coins_to_mint = 5000; + + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + let clock = take_shared(&scenario); + + pyth::create_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &clock, + ctx(&mut scenario) + ); + + // Affirm that 4 objects, which correspond to the 4 new price info objects + // containing the price feeds were created and shared. + let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); + let shared_ids = test_scenario::shared(&effects); + let created_ids = test_scenario::created(&effects); + assert!(vector::length(&shared_ids)==4, 0); + assert!(vector::length(&created_ids)==4, 0); + + let price_info_object_1 = take_shared(&scenario); + let price_info_object_2 = take_shared(&scenario); + let price_info_object_3 = take_shared(&scenario); + let price_info_object_4 = take_shared(&scenario); + + let updates = get_mock_price_infos(); + let price_info_object_vec = vector[ + price_info_object_1, + price_info_object_2, + price_info_object_3, + price_info_object_4 + ]; + + check_price_feeds_cached(&updates, &price_info_object_vec); + + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + vector::destroy_empty(price_info_object_vec); + + return_shared(pyth_state); + return_shared(worm_state); + return_shared(price_info_object_1); + return_shared(price_info_object_2); + return_shared(price_info_object_3); + return_shared(price_info_object_4); + coin::burn_for_testing(test_coins); + + return_shared(clock); + test_scenario::end(scenario); + } + } From a9e37b49c4f0e1e6bcf45d1aab761fd057f8989d Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 19:41:56 +0000 Subject: [PATCH 020/140] update --- target_chains/sui/contracts/sources/pyth.move | 8 +------- 1 file changed, 1 insertion(+), 7 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index a5b10fee53..9a1c701095 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -822,13 +822,7 @@ module pyth::pyth_tests{ ctx(&mut scenario) ); - // Affirm that 4 objects, which correspond to the 4 new price info objects - // containing the price feeds were created and shared. - let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); - let shared_ids = test_scenario::shared(&effects); - let created_ids = test_scenario::created(&effects); - assert!(vector::length(&shared_ids)==4, 0); - assert!(vector::length(&created_ids)==4, 0); + test_scenario::next_tx(&mut scenario, DEPLOYER); let price_info_object_1 = take_shared(&scenario); let price_info_object_2 = take_shared(&scenario); From 2965e29dffa13f7178feedee23f348ce0fb92613 Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 21:35:32 +0000 Subject: [PATCH 021/140] test_update_cache_old_update --- target_chains/sui/contracts/sources/pyth.move | 147 ++++++++++++++++-- 1 file changed, 138 insertions(+), 9 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 9a1c701095..6a6d539c73 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -205,7 +205,7 @@ module pyth::pyth { } /// Update PriceInfoObjects using up-to-date PriceInfos. - fun update_cache( + public(friend) fun update_cache( updates: vector, price_info_objects: &mut vector, clock: &Clock, @@ -218,7 +218,7 @@ module pyth::pyth { // TODO - Construct an in-memory table to make look-ups faster? // This loop might be expensive if there are a large number // of updates and/or price_info_objects we are updating. - while (i < vector::length(price_info_objects)){ + while (i < vector::length(price_info_objects) && found == false){ // Check if the current price info object corresponds to the price feed that // the update is meant for. let price_info = price_info::get_price_info_from_price_info_object(vector::borrow(price_info_objects, i)); @@ -503,6 +503,7 @@ module pyth::pyth_tests{ } #[test_only] + /// Compare the expected price feed with the actual Pyth price feeds. fun check_price_feeds_cached(expected: &vector, actual: &vector) { // Check that we can retrieve the correct current price and ema price for each price feed let i = 0; @@ -675,10 +676,10 @@ module pyth::pyth_tests{ &clock ); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - price_info_object_2 = vector::pop_back(&mut price_info_object_vec); - price_info_object_3 = vector::pop_back(&mut price_info_object_vec); price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); vector::destroy_empty(price_info_object_vec); return_shared(pyth_state); @@ -740,9 +741,9 @@ module pyth::pyth_tests{ &clock ); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - price_info_object_2 = vector::pop_back(&mut price_info_object_vec); price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); vector::destroy_empty(price_info_object_vec); return_shared(pyth_state); @@ -829,6 +830,7 @@ module pyth::pyth_tests{ let price_info_object_3 = take_shared(&scenario); let price_info_object_4 = take_shared(&scenario); + // These updates are price infos that correspond to the ones in TEST_VAAS. let updates = get_mock_price_infos(); let price_info_object_vec = vector[ price_info_object_1, @@ -837,14 +839,142 @@ module pyth::pyth_tests{ price_info_object_4 ]; + // Check that TEST_VAAS was indeed used to instantiate the price feeds correctly, + // by confirming that the info in updates is contained in price_info_object_vec. check_price_feeds_cached(&updates, &price_info_object_vec); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + price_info_object_3 = vector::pop_back(&mut price_info_object_vec); price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + vector::destroy_empty(price_info_object_vec); + + return_shared(pyth_state); + return_shared(worm_state); + return_shared(price_info_object_1); + return_shared(price_info_object_2); + return_shared(price_info_object_3); + return_shared(price_info_object_4); + coin::burn_for_testing(test_coins); + + return_shared(clock); + test_scenario::end(scenario); + } + + #[test] + fun test_update_cache_old_update() { + let data_sources = data_sources_for_test_vaa(); + let base_update_fee = 50; + let coins_to_mint = 5000; + + let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + let clock = take_shared(&scenario); + + pyth::create_price_feeds( + &mut worm_state, + &mut pyth_state, + TEST_VAAS, + &clock, + ctx(&mut scenario) + ); + + test_scenario::next_tx(&mut scenario, DEPLOYER); + + let price_info_object_1 = take_shared(&scenario); + let price_info_object_2 = take_shared(&scenario); + let price_info_object_3 = take_shared(&scenario); + let price_info_object_4 = take_shared(&scenario); + + let price_info_object_vec = vector[ + price_info_object_1, + price_info_object_2, + price_info_object_3, + price_info_object_4 + ]; + + // Hardcode the price identifier, price, and ema_price for price_info_object_1, because + // it's easier than unwrapping price_info_object_1 and getting the quantities via getters. + let timestamp = 1663680740; + let price_identifier = price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"); + let price = price::new(i64::new(1557, false), 7, i64::new(5, true), timestamp); + let ema_price = price::new(i64::new(1500, false), 3, i64::new(5, true), timestamp); + + // Attempt to update the price with an update older than the current cached one. + let old_price = price::new(i64::new(1243, true), 9802, i64::new(6, false), timestamp - 200); + let old_ema_price = price::new(i64::new(8976, true), 234, i64::new(897, false), timestamp - 200); + let old_update = price_info::new_price_info( + 1257278600, + 1690226180, + price_feed::new( + price_identifier, + old_price, + old_ema_price, + ) + ); + pyth::update_cache(vector[old_update], &mut price_info_object_vec, &clock); + + price_info_object_4 = vector::pop_back(&mut price_info_object_vec); price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + + vector::destroy_empty(price_info_object_vec); + + // Confirm that the current price and ema price didn't change + let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); + let current_price_feed = price_info::get_price_feed(¤t_price_info); + let current_price = price_feed::get_price(current_price_feed); + let current_ema_price = price_feed::get_ema_price(current_price_feed); + + // Confirm that no price update occurred when we tried to update cache with an + // outdated update: old_update. + assert!(current_price == price, 1); + assert!(current_ema_price == ema_price, 1); + + test_scenario::next_tx(&mut scenario, DEPLOYER); + + // Update the cache with a fresh update. + let fresh_price = price::new(i64::new(5243, true), 2, i64::new(3, false), timestamp + 200); + let fresh_ema_price = price::new(i64::new(8976, true), 21, i64::new(32, false), timestamp + 200); + let fresh_update = price_info::new_price_info( + 1257278600, + 1690226180, + price_feed::new( + price_identifier, + fresh_price, + fresh_ema_price, + ) + ); + + let price_info_object_vec = vector[ + price_info_object_1, + price_info_object_2, + price_info_object_3, + price_info_object_4 + ]; + + pyth::update_cache(vector[fresh_update], &mut price_info_object_vec, &clock); + price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + vector::destroy_empty(price_info_object_vec); + // Confirm that the Pyth cached price got updated to fresh_price + let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); + let current_price_feed = price_info::get_price_feed(¤t_price_info); + let current_price = price_feed::get_price(current_price_feed); + let current_ema_price = price_feed::get_ema_price(current_price_feed); + + assert!(current_price==fresh_price, 0); + assert!(current_ema_price==fresh_ema_price, 0); + return_shared(pyth_state); return_shared(worm_state); return_shared(price_info_object_1); @@ -856,5 +986,4 @@ module pyth::pyth_tests{ return_shared(clock); test_scenario::end(scenario); } - } From af364b8978f7ec66b59e471685bbeb74a11a5f4e Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 22:02:51 +0000 Subject: [PATCH 022/140] update_price_feeds_if_fresh --- target_chains/sui/contracts/sources/pyth.move | 53 ++++++++++++++++--- 1 file changed, 47 insertions(+), 6 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 6a6d539c73..898c32739f 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -26,6 +26,8 @@ module pyth::pyth { const E_INSUFFICIENT_FEE: u64 = 2; const E_STALE_PRICE_UPDATE: u64 = 3; const E_PRICE_INFO_OBJECT_NOT_FOUND: u64 = 4; + const E_INVALID_PUBLISH_TIMES_LENGTH: u64 = 5; + const E_NO_FRESH_DATA: u64 = 6; friend pyth::pyth_tests; @@ -140,7 +142,7 @@ module pyth::pyth { /// /// The vaas argument is a vector of VAAs encoded as bytes. /// - /// The javascript https://github.com/pyth-network/pyth-js/tree/main/pyth-aptos-js package + /// The javascript https://github.com/pyth-network/pyth-js/tree/main/pyth-sui-js package /// should be used to fetch these VAAs from the Price Service. More information about this /// process can be found at https://docs.pyth.network/consume-data. /// @@ -244,6 +246,48 @@ module pyth::pyth { vector::destroy_empty(updates); } + /// Update the cached price feeds with the data in the given VAAs, using + /// update_price_feeds(). However, this function will only have an effect if any of the + /// prices in the update are fresh. The price_identifiers and publish_times parameters + /// are used to determine if the update is fresh without doing any serialisation or verification + /// of the VAAs, potentially saving time and gas. If the update contains no fresh data, this function + /// will revert with error::no_fresh_data(). + /// + /// For a given price update i in the batch, that price is considered fresh if the current cached + /// price for price_identifiers[i] is older than publish_times[i]. + public fun update_price_feeds_if_fresh( + vaas: vector>, + worm_state: &WormState, + pyth_state: &PythState, + price_info_objects: &mut vector, + publish_times: vector, + fee: Coin, + clock: &Clock + ) { + assert!(vector::length(price_info_objects) == vector::length(&publish_times), + E_INVALID_PUBLISH_TIMES_LENGTH + ); + + let fresh_data = false; + let i = 0; + while (i < vector::length(&publish_times)) { + let cur_price_info = price_info::get_price_info_from_price_info_object(vector::borrow(price_info_objects, i)); + let cur_price_feed = price_info::get_price_feed(&cur_price_info); + let cur_price = price_feed::get_price(cur_price_feed); + + let cached_timestamp = price::get_timestamp(&cur_price); + if (cached_timestamp < *vector::borrow(&publish_times, i)) { + fresh_data = true; + break + }; + + i = i + 1; + }; + + assert!(fresh_data, E_NO_FRESH_DATA); + update_price_feeds(worm_state, pyth_state, vaas, price_info_objects, fee, clock); + } + /// Determine if the given price update is "fresh": we have nothing newer already cached for that /// price feed within a PriceInfoObject. fun is_fresh_update(update: &PriceInfo, price_info_object: &PriceInfoObject): bool { @@ -411,9 +455,6 @@ module pyth::pyth_tests{ let initial_guardians = vector[ x"beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe" - //x"1337133713371337133713371337133713371337", - //x"c0dec0dec0dec0dec0dec0dec0dec0dec0dec0de", - //x"ba5edba5edba5edba5edba5edba5edba5edba5ed" ]; let guardian_set_seconds_to_live = 5678; let message_fee = 350; @@ -502,8 +543,8 @@ module pyth::pyth_tests{ ] } - #[test_only] - /// Compare the expected price feed with the actual Pyth price feeds. + #[test_only] + /// Compare the expected price feed with the actual Pyth price feeds. fun check_price_feeds_cached(expected: &vector, actual: &vector) { // Check that we can retrieve the correct current price and ema price for each price feed let i = 0; From c3b8858f8cf42f3ad6e17704538de15e2bdbd57c Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 10 Apr 2023 22:07:41 +0000 Subject: [PATCH 023/140] comment --- target_chains/sui/contracts/sources/price_info.move | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index cd98aaefc3..3c258fcba0 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -13,8 +13,8 @@ module pyth::price_info { friend pyth::pyth; - /// Sui Object version of PriceInfo. - /// Has a key and lives in global store. + /// Sui object version of PriceInfo. + /// Has a key ability, is unique for each price identifier, and lives in global store. struct PriceInfoObject has key, store { id: UID, price_info: PriceInfo From 29d1bc19ddbc3defdba71f8300fea494c4adbbf9 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 11 Apr 2023 15:46:22 +0000 Subject: [PATCH 024/140] contract upgrades start --- .../sources/governance/contract_upgrade.move | 124 ++++++++- .../sui/contracts/sources/migrate.move | 67 +++++ .../contracts/sources/required_version.move | 241 ++++++++++++++++++ .../sui/contracts/sources/state.move | 140 +++++++++- .../contracts/sources/version_control.move | 51 ++++ 5 files changed, 613 insertions(+), 10 deletions(-) create mode 100644 target_chains/sui/contracts/sources/migrate.move create mode 100644 target_chains/sui/contracts/sources/required_version.move create mode 100644 target_chains/sui/contracts/sources/version_control.move diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index e0130c1304..a25bd11bc1 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -1,12 +1,128 @@ -module pyth::contract_upgrade { +// SPDX-License-Identifier: Apache 2 + +/// This module implements handling a governance VAA to enact upgrading the +/// Wormhole contract to a new build. The procedure to upgrade this contract +/// requires a Programmable Transaction, which includes the following procedure: +/// 1. Load new build. +/// 2. Authorize upgrade. +/// 3. Upgrade. +/// 4. Commit upgrade. +module wormhole::upgrade_contract { + use sui::clock::{Clock}; + use sui::event::{Self}; + use sui::object::{Self, ID}; + use sui::package::{UpgradeReceipt, UpgradeTicket}; + use pyth::state::{State}; use wormhole::state::{State as WormState}; + use wormhole::bytes32::{Self, Bytes32}; + use wormhole::consumed_vaas::{Self}; + use wormhole::cursor::{Self}; + use wormhole::state::{Self, State}; friend pyth::governance; - /// Payload should be the bytes digest of the new contract. - public(friend) fun execute(_worm_state: &WormState, _pyth_state: &State, _payload: vector){ - // TODO + /// Digest is all zeros. + const E_DIGEST_ZERO_BYTES: u64 = 0; + /// Specific governance payload ID (action) to complete upgrading the + /// contract. + const ACTION_UPGRADE_CONTRACT: u8 = 1; + + // Event reflecting package upgrade. + struct ContractUpgraded has drop, copy { + old_contract: ID, + new_contract: ID + } + + struct UpgradeContract { + digest: Bytes32 + } + + /// Redeem governance VAA to issue an `UpgradeTicket` for the upgrade given + /// a contract upgrade VAA. This governance message is only relevant for Sui + /// because a contract upgrade is only relevant to one particular network + /// (in this case Sui), whose build digest is encoded in this message. + /// + /// NOTE: This method is guarded by a minimum build version check. This + /// method could break backward compatibility on an upgrade. + public fun execute( + wormhole_state: &mut State, + vaa_buf: vector, + the_clock: &Clock + ): UpgradeTicket { + let msg = + governance_message::parse_and_verify_vaa( + wormhole_state, + vaa_buf, + the_clock + ); + + // Do not allow this VAA to be replayed. + consumed_vaas::consume( + state::borrow_mut_consumed_vaas(wormhole_state), + governance_message::vaa_hash(&msg) + ); + + // Proceed with processing new implementation version. + handle_upgrade_contract(wormhole_state, msg) + } + + /// Finalize the upgrade that ran to produce the given `receipt`. This + /// method invokes `state::commit_upgrade` which interacts with + /// `sui::package`. + public fun commit_upgrade( + self: &mut State, + receipt: UpgradeReceipt, + ) { + let latest_package_id = state::commit_upgrade(self, receipt); + + // Emit an event reflecting package ID change. + event::emit( + ContractUpgraded { + old_contract: object::id_from_address(@wormhole), + new_contract: latest_package_id + } + ); + } + + fun handle_upgrade_contract( + wormhole_state: &mut State, + msg: GovernanceMessage + ): UpgradeTicket { + // Verify that this governance message is to update the Wormhole fee. + let governance_payload = + governance_message::take_local_action( + msg, + state::governance_module(), + ACTION_UPGRADE_CONTRACT + ); + + // Deserialize the payload as amount to change the Wormhole fee. + let UpgradeContract { digest } = deserialize(governance_payload); + + state::authorize_upgrade(wormhole_state, digest) + } + + fun deserialize(payload: vector): UpgradeContract { + let cur = cursor::new(payload); + + // This amount cannot be greater than max u64. + let digest = bytes32::take_bytes(&mut cur); + assert!(bytes32::is_nonzero(&digest), E_DIGEST_ZERO_BYTES); + + cursor::destroy_empty(cur); + + UpgradeContract { digest } + } + + #[test_only] + public fun action(): u8 { + ACTION_UPGRADE_CONTRACT } } + +#[test_only] +module wormhole::upgrade_contract_tests { + // TODO +} \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/migrate.move b/target_chains/sui/contracts/sources/migrate.move new file mode 100644 index 0000000000..48f6df31b2 --- /dev/null +++ b/target_chains/sui/contracts/sources/migrate.move @@ -0,0 +1,67 @@ +// SPDX-License-Identifier: Apache 2 + +/// Note: This module is largely taken from the Sui Wormhole package: +/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/migrate.move + +/// This module implements an entry method intended to be called after an +/// upgrade has been commited. The purpose is to add one-off migration logic +/// that would alter pyth `State`. +/// +/// Included in migration is the ability to ensure that breaking changes for +/// any of pyth's methods by enforcing the current build version as their +/// required minimum version. +module pyth::migrate { + use pyth::state::{Self, State}; + + // This import is only used when `state::require_current_version` is used. + // use pytg::version_control::{Self as control}; + + /// Upgrade procedure is not complete (most likely due to an upgrade not + /// being initialized since upgrades can only be performed via programmable + /// transaction). + const E_CANNOT_MIGRATE: u64 = 0; + + /// Execute migration logic. See `pyth::migrate` description for more + /// info. + public entry fun migrate(pyth_state: &mut State) { + // pyth `State` only allows one to call `migrate` after the upgrade + // procedure completed. + assert!(state::can_migrate(pyth_state), E_CANNOT_MIGRATE); + + //////////////////////////////////////////////////////////////////////// + // + // If there are any methods that require the current build, we need to + // explicity require them here. + // + // Calls to `require_current_version` are commented out for convenience. + // + //////////////////////////////////////////////////////////////////////// + + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + + //////////////////////////////////////////////////////////////////////// + // + // NOTE: Put any one-off migration logic here. + // + // Most upgrades likely won't need to do anything, in which case the + // rest of this function's body may be empty. Make sure to delete it + // after the migration has gone through successfully. + // + // WARNING: The migration does *not* proceed atomically with the + // upgrade (as they are done in separate transactions). + // If the nature of your migration absolutely requires the migration to + // happen before certain other functionality is available, then guard + // that functionality with the `assert!` from above. + // + //////////////////////////////////////////////////////////////////////// + + //////////////////////////////////////////////////////////////////////// + // Ensure that `migrate` cannot be called again. + state::disable_migration(pyth_state); + } +} diff --git a/target_chains/sui/contracts/sources/required_version.move b/target_chains/sui/contracts/sources/required_version.move new file mode 100644 index 0000000000..4528c5d076 --- /dev/null +++ b/target_chains/sui/contracts/sources/required_version.move @@ -0,0 +1,241 @@ +// SPDX-License-Identifier: Apache 2 + +/// Note: This module is based on the required_version module +/// from the Sui Wormhole package: +/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/resources/required_version.move + +/// This module implements a mechanism for version control. While keeping track +/// of the latest version of a package build, `RequiredVersion` manages the +/// minimum required version number for any method in that package. For any +/// upgrade where a particular method can have backward compatibility, the +/// minimum version would not have to change (because the method should work the +/// same way with the previous version or current version). +/// +/// If there happens to be a breaking change for a particular method, this +/// module can force that the method's minimum requirement be the latest build. +/// If a previous build were used, the method would abort if a check is in place +/// with `RequiredVersion`. +/// +/// There is no magic behind the way ths module works. `RequiredVersion` is +/// intended to live in a package's shared object that gets passed into its +/// methods (e.g. pyth's `State` object). +module pyth::required_version { + use sui::dynamic_field::{Self as field}; + use sui::object::{Self, UID}; + use sui::package::{Self, UpgradeCap}; + use sui::tx_context::{TxContext}; + + /// Build version passed does not meet method's minimum required version. + const E_OUTDATED_VERSION: u64 = 0; + + /// Container to keep track of latest build version. Dynamic fields are + /// associated with its `id`. + struct RequiredVersion has store { + id: UID, + latest_version: u64 + } + + struct Key has store, drop, copy {} + + /// Create new `RequiredVersion` with a configured starting version. + public fun new(version: u64, ctx: &mut TxContext): RequiredVersion { + RequiredVersion { + id: object::new(ctx), + latest_version: version + } + } + + /// Retrieve latest build version. + public fun current(self: &RequiredVersion): u64 { + self.latest_version + } + + /// Add specific method handling via custom `MethodType`. At the time a + /// method is added, the minimum build version associated with this method + /// by default is the latest version. + public fun add(self: &mut RequiredVersion) { + field::add(&mut self.id, Key {}, self.latest_version) + } + + /// This method will abort if the version for a particular `MethodType` is + /// not up-to-date with the version of the current build. + /// + /// For example, if the minimum requirement for `foobar` module (with an + /// appropriately named `MethodType` like `FooBar`) is `1` and the current + /// implementation version is `2`, this method will succeed because the + /// build meets the minimum required version of `1` in order for `foobar` to + /// work. So if someone were to use an older build like version `1`, this + /// method will succeed. + /// + /// But if `check_minimum_requirement` were invoked for `foobar` when the + /// minimum requirement is `2` and the current build is only version `1`, + /// then this method will abort because the build does not meet the minimum + /// version requirement for `foobar`. + /// + /// This method also assumes that the `MethodType` being checked for is + /// already a dynamic field (using `add`) during initialization. + public fun check_minimum_requirement( + self: &RequiredVersion, + build_version: u64 + ) { + assert!( + build_version >= minimum_for(self), + E_OUTDATED_VERSION + ); + } + + /// At `commit_upgrade`, use this method to update the tracker's knowledge + /// of the latest upgrade (build) version, which is obtained from the + /// `UpgradeCap` in `sui::package`. + public fun update_latest( + self: &mut RequiredVersion, + upgrade_cap: &UpgradeCap + ) { + self.latest_version = package::version(upgrade_cap); + } + + /// Once the global version is updated via `commit_upgrade` and there is a + /// particular method that has a breaking change, use this method to uptick + /// that method's minimum required version to the latest. + public fun require_current_version(self: &mut RequiredVersion) { + let min_version = field::borrow_mut(&mut self.id, Key {}); + *min_version = self.latest_version; + } + + /// Retrieve the minimum required version for a particular method (via + /// `MethodType`). + public fun minimum_for(self: &RequiredVersion): u64 { + *field::borrow(&self.id, Key {}) + } + + #[test_only] + public fun set_required_version( + self: &mut RequiredVersion, + version: u64 + ) { + *field::borrow_mut(&mut self.id, Key {}) = version; + } + + #[test_only] + public fun destroy(req: RequiredVersion) { + let RequiredVersion { id, latest_version: _} = req; + object::delete(id); + } +} + +#[test_only] +module pyth::required_version_test { + use sui::hash::{keccak256}; + use sui::object::{Self}; + use sui::package::{Self}; + use sui::tx_context::{Self}; + + use pyth::required_version::{Self}; + + struct SomeMethod {} + struct AnotherMethod {} + + #[test] + public fun test_check_minimum_requirement() { + let ctx = &mut tx_context::dummy(); + + let version = 1; + let req = required_version::new(version, ctx); + assert!(required_version::current(&req) == version, 0); + + required_version::add(&mut req); + assert!(required_version::minimum_for(&req) == version, 0); + + // Should not abort here. + required_version::check_minimum_requirement(&req, version); + + // And should not abort if the version is anything greater than the + // current. + let new_version = version + 1; + required_version::check_minimum_requirement( + &req, + new_version + ); + + // Uptick based on new upgrade. + let upgrade_cap = package::test_publish( + object::id_from_address(@pyth), + ctx + ); + let digest = keccak256(&x"DEADBEEF"); + let policy = package::upgrade_policy(&upgrade_cap); + let upgrade_ticket = + package::authorize_upgrade(&mut upgrade_cap, policy, digest); + let upgrade_receipt = package::test_upgrade(upgrade_ticket); + package::commit_upgrade(&mut upgrade_cap, upgrade_receipt); + assert!(package::version(&upgrade_cap) == new_version, 0); + + // Update to the latest version. + required_version::update_latest(&mut req, &upgrade_cap); + assert!(required_version::current(&req) == new_version, 0); + + // Should still not abort here. + required_version::check_minimum_requirement( + &req, + new_version + ); + + // Require new version for `SomeMethod` and show that + // `check_minimum_requirement` still succeeds. + required_version::require_current_version(&mut req); + assert!( + required_version::minimum_for(&req) == new_version, + 0 + ); + required_version::check_minimum_requirement( + &req, + new_version + ); + + // If another method gets added to the mix, it should automatically meet + // the minimum requirement because its version will be the latest. + required_version::add(&mut req); + assert!( + required_version::minimum_for(&req) == new_version, + 0 + ); + required_version::check_minimum_requirement( + &req, + new_version + ); + + // Clean up. + package::make_immutable(upgrade_cap); + required_version::destroy(req); + } + + #[test] + #[expected_failure(abort_code = required_version::E_OUTDATED_VERSION)] + public fun test_cannot_check_minimum_requirement_with_outdated_version() { + let ctx = &mut tx_context::dummy(); + + let version = 1; + let req = required_version::new(version, ctx); + assert!(required_version::current(&req) == version, 0); + + required_version::add(&mut req); + + // Should not abort here. + required_version::check_minimum_requirement(&req, version); + + // Uptick minimum requirement and fail at `check_minimum_requirement`. + let new_version = 10; + required_version::set_required_version( + &mut req, + new_version + ); + let old_version = new_version - 1; + required_version::check_minimum_requirement( + &req, + old_version + ); + + // Clean up. + required_version::destroy(req); + } +} diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index ff9a7c0bfb..13d6763c0f 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -3,13 +3,18 @@ module pyth::state { use sui::object::{Self, UID, ID}; use sui::transfer::{Self}; use sui::tx_context::{Self, TxContext}; - use sui::package::{Self, UpgradeCap}; + use sui::dynamic_field::{Self as field}; + use sui::package::{Self, UpgradeCap, UpgradeReceipt, UpgradeTicket}; use pyth::data_source::{Self, DataSource}; use pyth::price_info::{Self}; use pyth::price_identifier::{PriceIdentifier}; + use pyth::required_version::{Self, RequiredVersion}; + use wormhole::version_control::{Self as control}; use wormhole::setup::{assert_package_upgrade_cap}; + use wormhole::consumed_vaas::{Self}; + use wormhole::bytes32::{Self, Bytes32}; friend pyth::pyth; friend pyth::pyth_tests; @@ -19,6 +24,11 @@ module pyth::state { friend pyth::set_data_sources; friend pyth::governance; friend pyth::set_governance_data_source; + friend pyth::migrate; + + const E_BUILD_VERSION_MISMATCH: u64 = 0; + const E_INVALID_BUILD_VERSION: u64 = 1; + const E_VAA_ALREADY_CONSUMED: u64 = 2; /// Capability for creating a bridge state object, granted to sender when this /// module is deployed @@ -26,13 +36,27 @@ module pyth::state { id: UID } + /// Used as key for dynamic field reflecting whether `migrate` can be + /// called. + /// + /// See `migrate` module for more info. + struct MigrationControl has store, drop, copy {} + + /// Used as key for dynamic field for consumed VAAs + struct ConsumedVAAsKey has store, drop, copy {} + struct State has key { id: UID, governance_data_source: DataSource, last_executed_governance_sequence: u64, stale_price_threshold: u64, base_update_fee: u64, - upgrade_cap: UpgradeCap + + // Upgrade capability. + upgrade_cap: UpgradeCap, + + /// Contract build version tracker. + required_version: RequiredVersion } fun init(ctx: &mut TxContext) { @@ -56,7 +80,7 @@ module pyth::state { ); } - // Initialization + /// Initialization public(friend) fun init_and_share_state( deployer: DeployerCap, upgrade_cap: UpgradeCap, @@ -66,9 +90,9 @@ module pyth::state { sources: vector, ctx: &mut TxContext ) { - // TODO - version control - // let version = wormhole::version_control::version(); - //assert!(version == 1, E_INVALID_BUILD_VERSION); + // Only init and share state once (in the initial deployment). + let version = wormhole::version_control::version(); + assert!(version == 1, E_INVALID_BUILD_VERSION); let DeployerCap { id } = deployer; object::delete(id); @@ -81,6 +105,9 @@ module pyth::state { let uid = object::new(ctx); + field::add(&mut uid, MigrationControl {}, false); + field::add(&mut uid, ConsumedVAAsKey {}, consumed_vaas::new(ctx)); + // Create a set that contains all registered data sources and // attach it to uid as a dynamic field to minimize the // size of State. @@ -106,10 +133,111 @@ module pyth::state { last_executed_governance_sequence: 0, stale_price_threshold, base_update_fee, + required_version: required_version::new(control::version(), ctx) } ); } + /// Retrieve current build version of latest upgrade. + public fun current_version(self: &State): u64 { + required_version::current(&self.required_version) + } + + /// Issue an `UpgradeTicket` for the upgrade. + public(friend) fun authorize_upgrade( + self: &mut State, + implementation_digest: Bytes32 + ): UpgradeTicket { + let policy = package::upgrade_policy(&self.upgrade_cap); + + // TODO: grab package ID from `UpgradeCap` and store it + // in a dynamic field. This will be the old ID after the upgrade. + // Both IDs will be emitted in a `ContractUpgraded` event. + package::authorize_upgrade( + &mut self.upgrade_cap, + policy, + bytes32::to_bytes(implementation_digest), + ) + } + + /// Finalize the upgrade that ran to produce the given `receipt`. + public(friend) fun commit_upgrade( + self: &mut State, + receipt: UpgradeReceipt + ): ID { + // Uptick the upgrade cap version number using this receipt. + package::commit_upgrade(&mut self.upgrade_cap, receipt); + + // Check that the upticked hard-coded version version agrees with the + // upticked version number. + assert!( + package::version(&self.upgrade_cap) == control::version() + 1, + E_BUILD_VERSION_MISMATCH + ); + + // Update global version. + required_version::update_latest( + &mut self.required_version, + &self.upgrade_cap + ); + + // Enable `migrate` to be called after commiting the upgrade. + // + // A separate method is required because `state` is a dependency of + // `migrate`. This method warehouses state modifications required + // for the new implementation plus enabling any methods required to be + // gated by the current implementation version. In most cases `migrate` + // is a no-op. But it still must be called in order to reset the + // migration control to `false`. + // + // See `migrate` module for more info. + enable_migration(self); + + package::upgrade_package(&self.upgrade_cap) + } + + /// Enforce a particular method to use the current build version as its + /// minimum required version. This method ensures that a method is not + /// backwards compatible with older builds. + public(friend) fun require_current_version(self: &mut State) { + required_version::require_current_version( + &mut self.required_version, + ) + } + + /// Check whether a particular method meets the minimum build version for + /// the latest Wormhole implementation. + public(friend) fun check_minimum_requirement(self: &State) { + required_version::check_minimum_requirement( + &self.required_version, + control::version() + ) + } + + // Upgrade and migration-related functionality + + /// Check whether `migrate` can be called. + /// + /// See `wormhole::migrate` module for more info. + public fun can_migrate(self: &State): bool { + *field::borrow(&self.id, MigrationControl {}) + } + + /// Allow `migrate` to be called after upgrade. + /// + /// See `wormhole::migrate` module for more info. + public(friend) fun enable_migration(self: &mut State) { + *field::borrow_mut(&mut self.id, MigrationControl {}) = true; + } + + /// Disallow `migrate` to be called. + /// + /// See `wormhole::migrate` module for more info. + public(friend) fun disable_migration(self: &mut State) { + *field::borrow_mut(&mut self.id, MigrationControl {}) = false; + } + + // Accessors public fun get_stale_price_threshold_secs(s: &State): u64 { s.stale_price_threshold diff --git a/target_chains/sui/contracts/sources/version_control.move b/target_chains/sui/contracts/sources/version_control.move new file mode 100644 index 0000000000..974c7b8f05 --- /dev/null +++ b/target_chains/sui/contracts/sources/version_control.move @@ -0,0 +1,51 @@ +// SPDX-License-Identifier: Apache 2 + +/// Note: This module is based on the version_control module in +/// the Sui Wormhole package: +/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/version_control.move + +/// This module implements dynamic field keys as empty structs. These keys with +/// `RequiredVersion` are used to determine minimum build requirements for +/// particular Pyth methods and breaking backward compatibility for these +/// methods if an upgrade requires the latest upgrade version for its +/// functionality. +/// +/// See `pyth::required_version` and `pyth::state` for more info. +module pyth::version_control { + /// This value tracks the current version of the Wormhole version. We are + /// placing this constant value at the top, which goes against Move style + /// guides so that we bring special attention to changing this value when + /// a new implementation is built for a contract upgrade. + const CURRENT_BUILD_VERSION: u64 = 1; + + /// Key used to check minimum version requirement for `emitter` module. + struct Emitter {} + + /// Key used to check minimum version requirement for `governance_message` + /// module. + struct GovernanceMessage {} + + /// Key used to check minimum version requirement for `publish_module` + /// module. + struct PublishMessage {} + + /// Key used to check minimum version requirement for `set_fee` module. + struct SetFee {} + + /// Key used to check minimum version requirement for `transfer_fee` module. + struct TransferFee {} + + /// Key used to check minimum version requirement for `update_guardian_set` + /// module. + struct UpdateGuardianSet {} + + /// Key used to check minimum version requirement for `vaa` module. + struct Vaa {} + + /// Return const value `CURRENT_BUILD_VERSION` for this particular build. + /// This value is used to determine whether this implementation meets + /// minimum requirements for various Pyth methods required by `State`. + public fun version(): u64 { + CURRENT_BUILD_VERSION + } +} From acacf1704fdae5eb479b2747f1269ff3e90ca598 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 11 Apr 2023 22:29:47 +0000 Subject: [PATCH 025/140] contract upgradeability --- .../sources/governance/contract_upgrade.move | 61 +++++----------- .../sources/governance/governance.move | 52 ++++++++++---- .../sources/governance/governance_action.move | 5 ++ .../sources/governance/set_data_sources.move | 11 +-- .../set_governance_data_source.move | 14 ++-- .../governance/set_stale_price_threshold.move | 11 +-- .../sources/governance/set_update_fee.move | 11 +-- .../sources/governance/transfer_fee.move | 51 ++++++++++++++ .../sui/contracts/sources/migrate.move | 12 ++-- target_chains/sui/contracts/sources/pyth.move | 23 ++++--- .../sui/contracts/sources/state.move | 69 ++++++++++++++----- .../contracts/sources/version_control.move | 31 ++++----- 12 files changed, 229 insertions(+), 122 deletions(-) create mode 100644 target_chains/sui/contracts/sources/governance/transfer_fee.move diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index a25bd11bc1..6b9453861f 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -1,25 +1,26 @@ // SPDX-License-Identifier: Apache 2 +/// Note: This module is based on the upgrade_contract module +/// from the Sui Wormhole package: +/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/governance/upgrade_contract.move + /// This module implements handling a governance VAA to enact upgrading the -/// Wormhole contract to a new build. The procedure to upgrade this contract +/// Pyth contract to a new build. The procedure to upgrade this contract /// requires a Programmable Transaction, which includes the following procedure: /// 1. Load new build. /// 2. Authorize upgrade. /// 3. Upgrade. /// 4. Commit upgrade. -module wormhole::upgrade_contract { +module pyth::contract_upgrade { use sui::clock::{Clock}; use sui::event::{Self}; use sui::object::{Self, ID}; use sui::package::{UpgradeReceipt, UpgradeTicket}; - use pyth::state::{State}; + use pyth::state::{Self, State}; - use wormhole::state::{State as WormState}; use wormhole::bytes32::{Self, Bytes32}; - use wormhole::consumed_vaas::{Self}; use wormhole::cursor::{Self}; - use wormhole::state::{Self, State}; friend pyth::governance; @@ -47,25 +48,12 @@ module wormhole::upgrade_contract { /// NOTE: This method is guarded by a minimum build version check. This /// method could break backward compatibility on an upgrade. public fun execute( - wormhole_state: &mut State, - vaa_buf: vector, - the_clock: &Clock + pyth_state: &mut State, + payload: vector, + _the_clock: &Clock ): UpgradeTicket { - let msg = - governance_message::parse_and_verify_vaa( - wormhole_state, - vaa_buf, - the_clock - ); - - // Do not allow this VAA to be replayed. - consumed_vaas::consume( - state::borrow_mut_consumed_vaas(wormhole_state), - governance_message::vaa_hash(&msg) - ); - // Proceed with processing new implementation version. - handle_upgrade_contract(wormhole_state, msg) + handle_upgrade_contract(pyth_state, payload) } /// Finalize the upgrade that ran to produce the given `receipt`. This @@ -80,28 +68,20 @@ module wormhole::upgrade_contract { // Emit an event reflecting package ID change. event::emit( ContractUpgraded { - old_contract: object::id_from_address(@wormhole), + old_contract: object::id_from_address(@pyth), new_contract: latest_package_id } ); } fun handle_upgrade_contract( - wormhole_state: &mut State, - msg: GovernanceMessage + pyth_state: &mut State, + payload: vector ): UpgradeTicket { - // Verify that this governance message is to update the Wormhole fee. - let governance_payload = - governance_message::take_local_action( - msg, - state::governance_module(), - ACTION_UPGRADE_CONTRACT - ); - - // Deserialize the payload as amount to change the Wormhole fee. - let UpgradeContract { digest } = deserialize(governance_payload); - - state::authorize_upgrade(wormhole_state, digest) + + let UpgradeContract { digest } = deserialize(payload); + + state::authorize_upgrade(pyth_state, digest) } fun deserialize(payload: vector): UpgradeContract { @@ -121,8 +101,3 @@ module wormhole::upgrade_contract { ACTION_UPGRADE_CONTRACT } } - -#[test_only] -module wormhole::upgrade_contract_tests { - // TODO -} \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index d84657a03d..1198e70fdc 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -1,5 +1,7 @@ module pyth::governance { use sui::clock::{Clock}; + use sui::package::{UpgradeTicket}; + use sui::tx_context::{TxContext}; use pyth::data_source::{Self}; use pyth::governance_instruction; @@ -8,6 +10,7 @@ module pyth::governance { use pyth::set_governance_data_source; use pyth::set_data_sources; use pyth::set_stale_price_threshold; + use pyth::transfer_fee; use pyth::state::{State}; use pyth::set_update_fee; use pyth::state; @@ -18,23 +21,47 @@ module pyth::governance { const E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO: u64 = 0; const E_INVALID_GOVERNANCE_ACTION: u64 = 1; const E_INVALID_GOVERNANCE_DATA_SOURCE: u64 = 2; - const E_INVALID_GOVERNANCE_SEQUENCE_NUMBER: u64 = 3; + const E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE: u64 = 3; + const E_GOVERNANCE_ACTION_MUST_BE_CONTRACT_UPGRADE: u64 = 4; - public entry fun execute_governance_instruction( + /// Rather than having execute_governance_instruction handle the contract + /// upgrade governance instruction, we have a separate function that processes + /// contract upgrade instructions, because doing contract upgrades is a + /// multi-step process, and the first step of doing a contract upgrade + /// yields a return value, namely the upgrade ticket, which is non-droppable. + public fun execute_contract_upgrade_governance_instruction( pyth_state : &mut State, worm_state: &WormState, vaa_bytes: vector, clock: &Clock + ): UpgradeTicket { + let parsed_vaa = parse_and_verify_and_replay_protect_governance_vaa(pyth_state, worm_state, vaa_bytes, clock); + let instruction = governance_instruction::from_byte_vec(vaa::take_payload(parsed_vaa)); + let action = governance_instruction::get_action(&instruction); + assert!(action == governance_action::new_contract_upgrade(), + E_GOVERNANCE_ACTION_MUST_BE_CONTRACT_UPGRADE); + assert!(governance_instruction::get_target_chain_id(&instruction) != 0, + E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO); + contract_upgrade::execute(pyth_state, governance_instruction::destroy(instruction), clock) + } + + /// Execute a governance instruction. + public entry fun execute_governance_instruction( + pyth_state : &mut State, + worm_state: &WormState, + vaa_bytes: vector, + clock: &Clock, + ctx: &mut TxContext ) { - let parsed_vaa = parse_and_verify_governance_vaa(pyth_state, worm_state, vaa_bytes, clock); + let parsed_vaa = parse_and_verify_and_replay_protect_governance_vaa(pyth_state, worm_state, vaa_bytes, clock); let instruction = governance_instruction::from_byte_vec(vaa::take_payload(parsed_vaa)); - // Dispatch the instruction to the appropiate handler + // Get the governance action. let action = governance_instruction::get_action(&instruction); + + // Dispatch the instruction to the appropiate handler. if (action == governance_action::new_contract_upgrade()) { - assert!(governance_instruction::get_target_chain_id(&instruction) != 0, - E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO); - contract_upgrade::execute(worm_state, pyth_state, governance_instruction::destroy(instruction)); + abort(E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE) } else if (action == governance_action::new_set_governance_data_source()) { set_governance_data_source::execute(pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_data_sources()) { @@ -43,13 +70,15 @@ module pyth::governance { set_update_fee::execute(pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_stale_price_threshold()) { set_stale_price_threshold::execute(pyth_state, governance_instruction::destroy(instruction)); + } else if (action == governance_action::new_transfer_fee()) { + transfer_fee::execute(pyth_state, governance_instruction::destroy(instruction), ctx); } else { governance_instruction::destroy(instruction); assert!(false, E_INVALID_GOVERNANCE_ACTION); } } - fun parse_and_verify_governance_vaa( + fun parse_and_verify_and_replay_protect_governance_vaa( pyth_state: &mut State, worm_state: &WormState, bytes: vector, @@ -66,11 +95,8 @@ module pyth::governance { vaa::emitter_address(&parsed_vaa))), E_INVALID_GOVERNANCE_DATA_SOURCE); - // Check that the sequence number is greater than the last executed governance VAA - let sequence = vaa::sequence(&parsed_vaa); - assert!(sequence > state::get_last_executed_governance_sequence(pyth_state), E_INVALID_GOVERNANCE_SEQUENCE_NUMBER); - state::set_last_executed_governance_sequence(pyth_state, sequence); - + // Prevent replay attacks by consuming the VAA digest (adding it to a set) + state::consume_vaa(pyth_state, vaa::digest(&parsed_vaa)); parsed_vaa } } diff --git a/target_chains/sui/contracts/sources/governance/governance_action.move b/target_chains/sui/contracts/sources/governance/governance_action.move index efd79735ce..762060eb23 100644 --- a/target_chains/sui/contracts/sources/governance/governance_action.move +++ b/target_chains/sui/contracts/sources/governance/governance_action.move @@ -6,6 +6,7 @@ module pyth::governance_action { const SET_DATA_SOURCES: u8 = 2; const SET_UPDATE_FEE: u8 = 3; const SET_STALE_PRICE_THRESHOLD: u8 = 4; + const TRANSFER_FEE: u8 = 5; const E_INVALID_GOVERNANCE_ACTION: u64 = 5; @@ -37,4 +38,8 @@ module pyth::governance_action { public fun new_set_stale_price_threshold(): GovernanceAction { GovernanceAction { value: SET_STALE_PRICE_THRESHOLD } } + + public fun new_transfer_fee(): GovernanceAction { + GovernanceAction { value: TRANSFER_FEE } + } } diff --git a/target_chains/sui/contracts/sources/governance/set_data_sources.move b/target_chains/sui/contracts/sources/governance/set_data_sources.move index f22969bccf..3815da5c09 100644 --- a/target_chains/sui/contracts/sources/governance/set_data_sources.move +++ b/target_chains/sui/contracts/sources/governance/set_data_sources.move @@ -8,19 +8,22 @@ module pyth::set_data_sources { use pyth::deserialize; use pyth::data_source::{Self, DataSource}; use pyth::state::{Self, State}; + use pyth::version_control::{SetDataSources}; friend pyth::governance; - struct SetDataSources { + struct DataSources { sources: vector, } public(friend) fun execute(state: &mut State, payload: vector) { - let SetDataSources { sources } = from_byte_vec(payload); + state::check_minimum_requirement(state); + + let DataSources { sources } = from_byte_vec(payload); state::set_data_sources(state, sources); } - fun from_byte_vec(bytes: vector): SetDataSources { + fun from_byte_vec(bytes: vector): DataSources { let cursor = cursor::new(bytes); let data_sources_count = deserialize::deserialize_u8(&mut cursor); @@ -37,7 +40,7 @@ module pyth::set_data_sources { cursor::destroy_empty(cursor); - SetDataSources { + DataSources { sources } } diff --git a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move index 4616339b65..a09a6093d4 100644 --- a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move +++ b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move @@ -2,33 +2,35 @@ module pyth::set_governance_data_source { use pyth::deserialize; use pyth::data_source; use pyth::state::{Self, State}; + use pyth::version_control::SetGovernanceDataSource; use wormhole::cursor; use wormhole::external_address::{Self, ExternalAddress}; use wormhole::bytes32::{Self}; - //use wormhole::state::{Self} friend pyth::governance; - struct SetGovernanceDataSource { + struct GovernanceDataSource { emitter_chain_id: u64, emitter_address: ExternalAddress, initial_sequence: u64, } public(friend) fun execute(pyth_state: &mut State, payload: vector) { - let SetGovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence } = from_byte_vec(payload); + state::check_minimum_requirement(pyth_state); + + // TODO - What is GovernanceDataSource initial_sequence used for? + let GovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence: _initial_sequence } = from_byte_vec(payload); state::set_governance_data_source(pyth_state, data_source::new(emitter_chain_id, emitter_address)); - state::set_last_executed_governance_sequence(pyth_state, initial_sequence); } - fun from_byte_vec(bytes: vector): SetGovernanceDataSource { + fun from_byte_vec(bytes: vector): GovernanceDataSource { let cursor = cursor::new(bytes); let emitter_chain_id = deserialize::deserialize_u16(&mut cursor); let emitter_address = external_address::new(bytes32::from_bytes(deserialize::deserialize_vector(&mut cursor, 32))); let initial_sequence = deserialize::deserialize_u64(&mut cursor); cursor::destroy_empty(cursor); - SetGovernanceDataSource { + GovernanceDataSource { emitter_chain_id: (emitter_chain_id as u64), emitter_address, initial_sequence diff --git a/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move index 6fdb6a2ed0..7ec7da3b4c 100644 --- a/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move +++ b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move @@ -2,23 +2,26 @@ module pyth::set_stale_price_threshold { use wormhole::cursor; use pyth::deserialize; use pyth::state::{Self, State}; + use pyth::version_control::SetStalePriceThreshold; friend pyth::governance; - struct SetStalePriceThreshold { + struct StalePriceThreshold { threshold: u64, } public(friend) fun execute(state: &mut State, payload: vector) { - let SetStalePriceThreshold { threshold } = from_byte_vec(payload); + state::check_minimum_requirement(state); + + let StalePriceThreshold { threshold } = from_byte_vec(payload); state::set_stale_price_threshold_secs(state, threshold); } - fun from_byte_vec(bytes: vector): SetStalePriceThreshold { + fun from_byte_vec(bytes: vector): StalePriceThreshold { let cursor = cursor::new(bytes); let threshold = deserialize::deserialize_u64(&mut cursor); cursor::destroy_empty(cursor); - SetStalePriceThreshold { + StalePriceThreshold { threshold } } diff --git a/target_chains/sui/contracts/sources/governance/set_update_fee.move b/target_chains/sui/contracts/sources/governance/set_update_fee.move index 0286fc07d2..6c339b469f 100644 --- a/target_chains/sui/contracts/sources/governance/set_update_fee.move +++ b/target_chains/sui/contracts/sources/governance/set_update_fee.move @@ -3,6 +3,7 @@ module pyth::set_update_fee { use pyth::deserialize; use pyth::state::{Self, State}; + use pyth::version_control::SetUpdateFee; use wormhole::cursor; @@ -12,24 +13,26 @@ module pyth::set_update_fee { const MAX_U64: u128 = (1 << 64) - 1; const E_EXPONENT_DOES_NOT_FIT_IN_U8: u64 = 0; - struct SetUpdateFee { + struct UpdateFee { mantissa: u64, exponent: u64, } public(friend) fun execute(pyth_state: &mut State, payload: vector) { - let SetUpdateFee { mantissa, exponent } = from_byte_vec(payload); + state::check_minimum_requirement(pyth_state); + + let UpdateFee { mantissa, exponent } = from_byte_vec(payload); assert!(exponent <= 255, E_EXPONENT_DOES_NOT_FIT_IN_U8); let fee = apply_exponent(mantissa, (exponent as u8)); state::set_base_update_fee(pyth_state, fee); } - fun from_byte_vec(bytes: vector): SetUpdateFee { + fun from_byte_vec(bytes: vector): UpdateFee { let cursor = cursor::new(bytes); let mantissa = deserialize::deserialize_u64(&mut cursor); let exponent = deserialize::deserialize_u64(&mut cursor); cursor::destroy_empty(cursor); - SetUpdateFee { + UpdateFee { mantissa, exponent, } diff --git a/target_chains/sui/contracts/sources/governance/transfer_fee.move b/target_chains/sui/contracts/sources/governance/transfer_fee.move new file mode 100644 index 0000000000..f9361e539b --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/transfer_fee.move @@ -0,0 +1,51 @@ +module pyth::transfer_fee { + + use sui::transfer::Self; + use sui::coin::Self; + use sui::tx_context::TxContext; + + use wormhole::cursor; + use wormhole::external_address::{Self}; + use wormhole::bytes32::{Self}; + + use pyth::state::{Self, State}; + use pyth::version_control::{TransferFee}; + + friend pyth::governance; + + struct PythFee { + amount: u64, + recipient: address + } + + public(friend) fun execute(state: &mut State, payload: vector, ctx: &mut TxContext) { + state::check_minimum_requirement(state); + + let PythFee { amount, recipient } = from_byte_vec(payload); + + transfer::public_transfer( + coin::from_balance( + state::withdraw_fee(state, amount), + ctx + ), + recipient + ); + } + + fun from_byte_vec(payload: vector): PythFee { + let cur = cursor::new(payload); + + // This amount cannot be greater than max u64. + let amount = bytes32::to_u64_be(bytes32::take_bytes(&mut cur)); + + // Recipient must be non-zero address. + let recipient = external_address::take_nonzero(&mut cur); + + cursor::destroy_empty(cur); + + PythFee { + amount: (amount as u64), + recipient: external_address::to_address(recipient) + } + } +} diff --git a/target_chains/sui/contracts/sources/migrate.move b/target_chains/sui/contracts/sources/migrate.move index 48f6df31b2..55b519ffe5 100644 --- a/target_chains/sui/contracts/sources/migrate.move +++ b/target_chains/sui/contracts/sources/migrate.move @@ -37,12 +37,14 @@ module pyth::migrate { // //////////////////////////////////////////////////////////////////////// - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); + + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); + // state::require_current_version(pyth_state); //////////////////////////////////////////////////////////////////////// // diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 898c32739f..fefe00f3e1 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -15,6 +15,7 @@ module pyth::pyth { use pyth::price_feed::{Self}; use pyth::price::{Self, Price}; use pyth::price_identifier::{PriceIdentifier}; + use pyth::version_control::{UpdatePriceFeeds, CreatePriceFeeds}; use wormhole::external_address::{Self}; use wormhole::vaa::{Self}; @@ -93,6 +94,8 @@ module pyth::pyth { clock: &Clock, ctx: &mut TxContext ){ + // Version control. + state::check_minimum_requirement(pyth_state); while (!vector::is_empty(&vaas)) { let vaa = vector::pop_back(&mut vaas); @@ -137,8 +140,8 @@ module pyth::pyth { }; } - /// Update PriceInfo objects and corresponding price feeds with the - /// data in the given VAAs. + /// Update Pyth Price Info objects (containing price feeds) with the + /// price data in the given VAAs. /// /// The vaas argument is a vector of VAAs encoded as bytes. /// @@ -158,6 +161,9 @@ module pyth::pyth { fee: Coin, clock: &Clock ){ + // Version control. + state::check_minimum_requirement(pyth_state); + // Charge the message update fee assert!(get_total_update_fee(pyth_state, &vaas) <= coin::value(&fee), E_INSUFFICIENT_FEE); @@ -176,9 +182,11 @@ module pyth::pyth { }; } - /// Precondition: A Sui object of type PriceInfoObject must exist for each update + /// Make sure that a Sui object of type PriceInfoObject exists for each update /// encoded in the worm_vaa (batch_attestation_vaa). These should be passed in - /// via the price_info_objects argument. + /// via the price_info_objects argument. If for any price feed update, a + /// a PriceInfoObject with a matching price identifier is not found, the update_cache + /// function will revert, causing this function to revert. fun update_price_feed_from_single_vaa( worm_state: &WormState, pyth_state: &PythState, @@ -216,10 +224,9 @@ module pyth::pyth { let update = vector::pop_back(&mut updates); let i = 0; let found = false; - // Find PriceInfoObjects corresponding to the current update (PriceInfo). - // TODO - Construct an in-memory table to make look-ups faster? - // This loop might be expensive if there are a large number - // of updates and/or price_info_objects we are updating. + // Note - Would it be worth it to construct an in-memory hash-map to make look-ups faster? + // This loop might be expensive if there are a large number of price_info_objects + // passed in. while (i < vector::length(price_info_objects) && found == false){ // Check if the current price info object corresponds to the price feed that // the update is meant for. diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 13d6763c0f..51a69132c7 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -5,16 +5,19 @@ module pyth::state { use sui::tx_context::{Self, TxContext}; use sui::dynamic_field::{Self as field}; use sui::package::{Self, UpgradeCap, UpgradeReceipt, UpgradeTicket}; + use sui::balance::{Balance}; + use sui::sui::SUI; use pyth::data_source::{Self, DataSource}; use pyth::price_info::{Self}; use pyth::price_identifier::{PriceIdentifier}; use pyth::required_version::{Self, RequiredVersion}; - use wormhole::version_control::{Self as control}; + use pyth::version_control::{Self as control}; use wormhole::setup::{assert_package_upgrade_cap}; - use wormhole::consumed_vaas::{Self}; + use wormhole::consumed_vaas::{Self, ConsumedVAAs}; use wormhole::bytes32::{Self, Bytes32}; + use wormhole::fee_collector::{Self, FeeCollector}; friend pyth::pyth; friend pyth::pyth_tests; @@ -25,6 +28,8 @@ module pyth::state { friend pyth::governance; friend pyth::set_governance_data_source; friend pyth::migrate; + friend pyth::contract_upgrade; + friend pyth::transfer_fee; const E_BUILD_VERSION_MISMATCH: u64 = 0; const E_INVALID_BUILD_VERSION: u64 = 1; @@ -42,19 +47,19 @@ module pyth::state { /// See `migrate` module for more info. struct MigrationControl has store, drop, copy {} - /// Used as key for dynamic field for consumed VAAs - struct ConsumedVAAsKey has store, drop, copy {} - struct State has key { id: UID, governance_data_source: DataSource, - last_executed_governance_sequence: u64, stale_price_threshold: u64, base_update_fee: u64, + consumed_vaas: ConsumedVAAs, // Upgrade capability. upgrade_cap: UpgradeCap, + // Fee collector. + fee_collector: FeeCollector, + /// Contract build version tracker. required_version: RequiredVersion } @@ -106,7 +111,6 @@ module pyth::state { let uid = object::new(ctx); field::add(&mut uid, MigrationControl {}, false); - field::add(&mut uid, ConsumedVAAsKey {}, consumed_vaas::new(ctx)); // Create a set that contains all registered data sources and // attach it to uid as a dynamic field to minimize the @@ -124,16 +128,28 @@ module pyth::state { data_source::add(&mut uid, vector::pop_back(&mut sources)); }; + let consumed_vaas = consumed_vaas::new(ctx); + + let required_version = required_version::new(control::version(), ctx); + required_version::add(&mut required_version); + required_version::add(&mut required_version); + required_version::add(&mut required_version); + required_version::add(&mut required_version); + required_version::add(&mut required_version); + required_version::add(&mut required_version); + required_version::add(&mut required_version); + // Share state so that is a shared Sui object. transfer::share_object( State { id: uid, upgrade_cap, governance_data_source, - last_executed_governance_sequence: 0, stale_price_threshold, base_update_fee, - required_version: required_version::new(control::version(), ctx) + consumed_vaas, + fee_collector: fee_collector::new(base_update_fee), + required_version } ); } @@ -237,7 +253,6 @@ module pyth::state { *field::borrow_mut(&mut self.id, MigrationControl {}) = false; } - // Accessors public fun get_stale_price_threshold_secs(s: &State): u64 { s.stale_price_threshold @@ -255,15 +270,35 @@ module pyth::state { s.governance_data_source == source } - public fun get_last_executed_governance_sequence(s: &State): u64 { - s.last_executed_governance_sequence - } - public fun price_feed_object_exists(s: &State, p: PriceIdentifier): bool { price_info::contains(&s.id, p) } - // Setters + // Mutators and Setters + + /// Withdraw collected fees when governance action to transfer fees to a + /// particular recipient. + /// + /// See `pyth::transfer_fee` for more info. + public(friend) fun withdraw_fee( + self: &mut State, + amount: u64 + ): Balance { + fee_collector::withdraw_balance(&mut self.fee_collector, amount) + } + + public(friend) fun deposit_fee(self: &mut State, fee: Balance) { + fee_collector::deposit_balance(&mut self.fee_collector, fee); + } + + public(friend) fun set_fee_collector_fee(self: &mut State, amount: u64) { + fee_collector::change_fee(&mut self.fee_collector, amount); + } + + public(friend) fun consume_vaa(state: &mut State, vaa_digest: Bytes32){ + consumed_vaas::consume(&mut state.consumed_vaas, vaa_digest); + } + public(friend) fun set_data_sources(s: &mut State, new_sources: vector) { // Empty the existing table of data sources registered in state. data_source::empty(&mut s.id); @@ -277,10 +312,6 @@ module pyth::state { price_info::add(&mut s.id, price_identifier, id); } - public(friend) fun set_last_executed_governance_sequence(s: &mut State, sequence: u64) { - s.last_executed_governance_sequence = sequence; - } - public(friend) fun set_governance_data_source(s: &mut State, source: DataSource) { s. governance_data_source = source; } diff --git a/target_chains/sui/contracts/sources/version_control.move b/target_chains/sui/contracts/sources/version_control.move index 974c7b8f05..f36f482889 100644 --- a/target_chains/sui/contracts/sources/version_control.move +++ b/target_chains/sui/contracts/sources/version_control.move @@ -18,29 +18,28 @@ module pyth::version_control { /// a new implementation is built for a contract upgrade. const CURRENT_BUILD_VERSION: u64 = 1; - /// Key used to check minimum version requirement for `emitter` module. - struct Emitter {} + /// Key used to check minimum version requirement for `set_data_sources` + struct SetDataSources {} - /// Key used to check minimum version requirement for `governance_message` - /// module. - struct GovernanceMessage {} + /// Key used to check minimum version requirement for `set_governance_data_source` + struct SetGovernanceDataSource {} - /// Key used to check minimum version requirement for `publish_module` - /// module. - struct PublishMessage {} + /// Key used to check minimum version requirement for `set_stale_price_threshold` + struct SetStalePriceThreshold {} - /// Key used to check minimum version requirement for `set_fee` module. - struct SetFee {} + /// Key used to check minimum version requirement for `set_update_fee` + struct SetUpdateFee {} - /// Key used to check minimum version requirement for `transfer_fee` module. + /// Key used to check minimum version requirement for `transfer_fee` struct TransferFee {} - /// Key used to check minimum version requirement for `update_guardian_set` - /// module. - struct UpdateGuardianSet {} + /// Key used to check minimum version requirement for `update_price_feeds` + struct UpdatePriceFeeds {} - /// Key used to check minimum version requirement for `vaa` module. - struct Vaa {} + /// Key used to check minimum version requirement for `create_price_feeds` + struct CreatePriceFeeds {} + + //======================================================================= /// Return const value `CURRENT_BUILD_VERSION` for this particular build. /// This value is used to determine whether this implementation meets From b893a066afe5f6d72aee7e21f61efd1e8b550222 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 11 Apr 2023 22:39:49 +0000 Subject: [PATCH 026/140] update clock stuff --- target_chains/sui/contracts/Move.toml | 2 +- .../sources/batch_price_attestation.move | 16 +++---- target_chains/sui/contracts/sources/pyth.move | 44 ++++++++----------- 3 files changed, 25 insertions(+), 37 deletions(-) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 82e23e229d..7b0e5f05d2 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -5,7 +5,7 @@ version = "0.0.1" [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" subdir = "crates/sui-framework/packages/sui-framework" -rev = "ddfc3fa0768a38286787319603a5458a9ff91cc1" +rev = "a63f425b9999c7fdfe483598720a9effc0acdc9e" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index fd4ada51da..4ca84c595b 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -163,27 +163,23 @@ module pyth::batch_price_attestation { #[test] #[expected_failure] fun test_deserialize_batch_price_attestation_invalid_magic() { - use sui::test_scenario::{Self, take_shared, return_shared, ctx}; + use sui::test_scenario::{Self, ctx}; let test = test_scenario::begin(@0x1234); - clock::create_for_testing(ctx(&mut test)); - test_scenario::next_tx(&mut test, @0x1234); - let test_clock = take_shared(&test); - + let test_clock = clock::create_for_testing(ctx(&mut test)); // A batch price attestation with a magic number of 0x50325749 let bytes = x"5032574900030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"; let _ = destroy(deserialize(bytes, &test_clock)); - return_shared(test_clock); + clock::destroy_for_testing(test_clock); test_scenario::end(test); } #[test] fun test_deserialize_batch_price_attestation() { - use sui::test_scenario::{Self, take_shared, return_shared, ctx}; + use sui::test_scenario::{Self, ctx}; // Set the arrival time let test = test_scenario::begin(@0x1234); - clock::create_for_testing(ctx(&mut test)); + let test_clock = clock::create_for_testing(ctx(&mut test)); test_scenario::next_tx(&mut test, @0x1234); - let test_clock = take_shared(&test); let arrival_time_in_seconds = clock::timestamp_ms(&test_clock) / 1000; // let arrival_time = tx_context::epoch(ctx(&mut test)); @@ -244,7 +240,7 @@ module pyth::batch_price_attestation { assert!(&expected == &deserialized, 1); destroy(expected); destroy(deserialized); - return_shared(test_clock); + clock::destroy_for_testing(test_clock); test_scenario::end(test); } } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index fefe00f3e1..52bd8fc73d 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -393,10 +393,10 @@ module pyth::pyth_tests{ use sui::sui::SUI; use sui::coin::{Self, Coin}; - use sui::clock::{Self, Clock}; use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; use sui::package::Self; use sui::object::{Self, ID}; + use sui::clock::{Self, Clock}; use pyth::state::{Self, State as PythState}; use pyth::price_identifier::{Self}; @@ -433,7 +433,7 @@ module pyth::pyth_tests{ data_sources: vector, base_update_fee: u64, to_mint: u64 - ): (Scenario, Coin) { + ): (Scenario, Coin, Clock) { let scenario = test_scenario::begin(DEPLOYER); @@ -477,9 +477,6 @@ module pyth::pyth_tests{ test_scenario::ctx(&mut scenario) ); - // Create and share a global clock object for timekeeping. - clock::create_for_testing(ctx(&mut scenario)); - // Initialize Pyth state. let pyth_upgrade_cap= package::test_publish( @@ -505,7 +502,8 @@ module pyth::pyth_tests{ ); let coins = coin::mint_for_testing(to_mint, ctx(&mut scenario)); - (scenario, coins) + let clock = clock::create_for_testing(ctx(&mut scenario)); + (scenario, coins, clock) } #[test_only] @@ -578,7 +576,7 @@ module pyth::pyth_tests{ #[test] fun test_get_update_fee() { let single_update_fee = 50; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], single_update_fee, 0); + let (scenario, test_coins, _clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], single_update_fee, 0); test_scenario::next_tx(&mut scenario, DEPLOYER, ); let pyth_state = take_shared(&scenario); // Pass in a single VAA @@ -597,17 +595,17 @@ module pyth::pyth_tests{ return_shared(pyth_state); coin::burn_for_testing(test_coins); + clock::destroy_for_testing(_clock); test_scenario::end(scenario); } #[test] #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] fun test_create_price_feeds_corrupt_vaa() { - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); - let clock = take_shared(&scenario); // Pass in a corrupt VAA, which should fail deseriaizing let corrupt_vaa = x"90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; @@ -623,7 +621,7 @@ module pyth::pyth_tests{ return_shared(pyth_state); return_shared(worm_state); - return_shared(clock); + clock::destroy_for_testing(clock); coin::burn_for_testing(test_coins); test_scenario::end(scenario); } @@ -641,12 +639,11 @@ module pyth::pyth_tests{ ) ]; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, 50, 0); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, 50, 0); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); - let clock = take_shared(&scenario); pyth::create_price_feeds( &mut worm_state, @@ -658,7 +655,7 @@ module pyth::pyth_tests{ return_shared(pyth_state); return_shared(worm_state); - return_shared(clock); + clock::destroy_for_testing(clock); coin::burn_for_testing(test_coins); test_scenario::end(scenario); } @@ -682,12 +679,11 @@ module pyth::pyth_tests{ let base_update_fee = 50; let coins_to_mint = 5000; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); - let clock = take_shared(&scenario); pyth::create_price_feeds( &mut worm_state, @@ -737,7 +733,7 @@ module pyth::pyth_tests{ return_shared(price_info_object_3); return_shared(price_info_object_4); - return_shared(clock); + clock::destroy_for_testing(clock); test_scenario::end(scenario); } @@ -748,12 +744,11 @@ module pyth::pyth_tests{ let base_update_fee = 50; let coins_to_mint = 5000; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); - let clock = take_shared(&scenario); pyth::create_price_feeds( &mut worm_state, @@ -812,12 +807,11 @@ module pyth::pyth_tests{ let base_update_fee = 50; let coins_to_mint = 5; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); - let clock = take_shared(&scenario); pyth::create_price_feeds( &mut worm_state, @@ -856,12 +850,11 @@ module pyth::pyth_tests{ let base_update_fee = 50; let coins_to_mint = 5000; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); - let clock = take_shared(&scenario); pyth::create_price_feeds( &mut worm_state, @@ -905,7 +898,7 @@ module pyth::pyth_tests{ return_shared(price_info_object_4); coin::burn_for_testing(test_coins); - return_shared(clock); + clock::destroy_for_testing(clock); test_scenario::end(scenario); } @@ -915,12 +908,11 @@ module pyth::pyth_tests{ let base_update_fee = 50; let coins_to_mint = 5000; - let (scenario, test_coins) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); test_scenario::next_tx(&mut scenario, DEPLOYER); let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); - let clock = take_shared(&scenario); pyth::create_price_feeds( &mut worm_state, @@ -1031,7 +1023,7 @@ module pyth::pyth_tests{ return_shared(price_info_object_4); coin::burn_for_testing(test_coins); - return_shared(clock); + clock::destroy_for_testing(clock); test_scenario::end(scenario); } } From 466b1223bcca945b1c9ae969c8c030f940cf2441 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 11 Apr 2023 22:42:51 +0000 Subject: [PATCH 027/140] edits --- target_chains/sui/contracts/sources/pyth.move | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 52bd8fc73d..942654cb45 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -964,7 +964,6 @@ module pyth::pyth_tests{ vector::destroy_empty(price_info_object_vec); - // Confirm that the current price and ema price didn't change let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); let current_price_feed = price_info::get_price_feed(¤t_price_info); let current_price = price_feed::get_price(current_price_feed); @@ -1006,7 +1005,7 @@ module pyth::pyth_tests{ vector::destroy_empty(price_info_object_vec); - // Confirm that the Pyth cached price got updated to fresh_price + // Confirm that the Pyth cached price got updated to fresh_price. let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); let current_price_feed = price_info::get_price_feed(¤t_price_info); let current_price = price_feed::get_price(current_price_feed); From caea90ed9ebe73878af3136da4d1aa4b77ea732b Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 11 Apr 2023 23:07:38 +0000 Subject: [PATCH 028/140] use clone of sui/integration_v2 for stability --- target_chains/sui/contracts/Move.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 7b0e5f05d2..692360abac 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -10,7 +10,7 @@ rev = "a63f425b9999c7fdfe483598720a9effc0acdc9e" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" subdir = "sui/wormhole" -rev = "sui/integration_v2" +rev = "sui/integration_v2_stable" [addresses] pyth = "0x250" From a70e387e9b749d89c75cd1f6eb9e9f3a00473e56 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 12 Apr 2023 03:42:20 +0000 Subject: [PATCH 029/140] make contract_upgrade::execute a public(friend) fun, remove clock arg --- .../sui/contracts/sources/governance/contract_upgrade.move | 4 +--- .../sui/contracts/sources/governance/governance.move | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index 6b9453861f..8d6fc4b931 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -12,7 +12,6 @@ /// 3. Upgrade. /// 4. Commit upgrade. module pyth::contract_upgrade { - use sui::clock::{Clock}; use sui::event::{Self}; use sui::object::{Self, ID}; use sui::package::{UpgradeReceipt, UpgradeTicket}; @@ -47,10 +46,9 @@ module pyth::contract_upgrade { /// /// NOTE: This method is guarded by a minimum build version check. This /// method could break backward compatibility on an upgrade. - public fun execute( + public(friend) fun execute( pyth_state: &mut State, payload: vector, - _the_clock: &Clock ): UpgradeTicket { // Proceed with processing new implementation version. handle_upgrade_contract(pyth_state, payload) diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index 1198e70fdc..c2104282a7 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -42,7 +42,7 @@ module pyth::governance { E_GOVERNANCE_ACTION_MUST_BE_CONTRACT_UPGRADE); assert!(governance_instruction::get_target_chain_id(&instruction) != 0, E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO); - contract_upgrade::execute(pyth_state, governance_instruction::destroy(instruction), clock) + contract_upgrade::execute(pyth_state, governance_instruction::destroy(instruction)) } /// Execute a governance instruction. From 4d04054ab8b602f02951b289b05005c0a482eab9 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 12 Apr 2023 03:47:52 +0000 Subject: [PATCH 030/140] E_INCORRECT_IDENTIFIER_LENGTH --- .../sources/governance/contract_upgrade.move | 20 +++++++++---------- .../contracts/sources/price_identifier.move | 5 ++--- 2 files changed, 12 insertions(+), 13 deletions(-) diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index 8d6fc4b931..9c2f26796d 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -54,6 +54,16 @@ module pyth::contract_upgrade { handle_upgrade_contract(pyth_state, payload) } + fun handle_upgrade_contract( + pyth_state: &mut State, + payload: vector + ): UpgradeTicket { + + let UpgradeContract { digest } = deserialize(payload); + + state::authorize_upgrade(pyth_state, digest) + } + /// Finalize the upgrade that ran to produce the given `receipt`. This /// method invokes `state::commit_upgrade` which interacts with /// `sui::package`. @@ -72,16 +82,6 @@ module pyth::contract_upgrade { ); } - fun handle_upgrade_contract( - pyth_state: &mut State, - payload: vector - ): UpgradeTicket { - - let UpgradeContract { digest } = deserialize(payload); - - state::authorize_upgrade(pyth_state, digest) - } - fun deserialize(payload: vector): UpgradeContract { let cur = cursor::new(payload); diff --git a/target_chains/sui/contracts/sources/price_identifier.move b/target_chains/sui/contracts/sources/price_identifier.move index 75df3a88a0..5191c4c6b4 100644 --- a/target_chains/sui/contracts/sources/price_identifier.move +++ b/target_chains/sui/contracts/sources/price_identifier.move @@ -1,16 +1,15 @@ module pyth::price_identifier { use std::vector; - //use pyth::error; const IDENTIFIER_BYTES_LENGTH: u64 = 32; + const E_INCORRECT_IDENTIFIER_LENGTH: u64 = 0; struct PriceIdentifier has copy, drop, store { bytes: vector, } public fun from_byte_vec(bytes: vector): PriceIdentifier { - assert!(vector::length(&bytes) == IDENTIFIER_BYTES_LENGTH, 0); //error::incorrect_identifier_length() - + assert!(vector::length(&bytes) == IDENTIFIER_BYTES_LENGTH, E_INCORRECT_IDENTIFIER_LENGTH); PriceIdentifier { bytes: bytes } From 94feb86ea5cf301f69fff4689ce2fc7697733c11 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 12 Apr 2023 03:57:35 +0000 Subject: [PATCH 031/140] comment and edit --- target_chains/sui/contracts/sources/migrate.move | 2 +- target_chains/sui/contracts/sources/version_control.move | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/migrate.move b/target_chains/sui/contracts/sources/migrate.move index 55b519ffe5..ffd85af5c9 100644 --- a/target_chains/sui/contracts/sources/migrate.move +++ b/target_chains/sui/contracts/sources/migrate.move @@ -14,7 +14,7 @@ module pyth::migrate { use pyth::state::{Self, State}; // This import is only used when `state::require_current_version` is used. - // use pytg::version_control::{Self as control}; + // use pyth::version_control::{Self as control}; /// Upgrade procedure is not complete (most likely due to an upgrade not /// being initialized since upgrades can only be performed via programmable diff --git a/target_chains/sui/contracts/sources/version_control.move b/target_chains/sui/contracts/sources/version_control.move index f36f482889..232e8d3827 100644 --- a/target_chains/sui/contracts/sources/version_control.move +++ b/target_chains/sui/contracts/sources/version_control.move @@ -12,7 +12,7 @@ /// /// See `pyth::required_version` and `pyth::state` for more info. module pyth::version_control { - /// This value tracks the current version of the Wormhole version. We are + /// This value tracks the current Pyth contract version. We are /// placing this constant value at the top, which goes against Move style /// guides so that we bring special attention to changing this value when /// a new implementation is built for a contract upgrade. From 178f05c746c402879e3b816cf49af0224573346d Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 12 Apr 2023 17:20:58 +0000 Subject: [PATCH 032/140] add a single comment --- target_chains/sui/contracts/sources/pyth.move | 1 + 1 file changed, 1 insertion(+) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 942654cb45..a4ace1939f 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -856,6 +856,7 @@ module pyth::pyth_tests{ let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); + // Update cache is called by create_price_feeds. pyth::create_price_feeds( &mut worm_state, &mut pyth_state, From b171f73b8a1ad602d032d4cec7532cbe3688af48 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 25 Apr 2023 21:55:12 +0000 Subject: [PATCH 033/140] upgradeability fixes, other fixes --- target_chains/sui/contracts/Move.toml | 4 +-- .../sources/batch_price_attestation.move | 14 ++++++++ .../sui/contracts/sources/state.move | 35 ++++++++++++------- 3 files changed, 39 insertions(+), 14 deletions(-) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 692360abac..bf2f7dcc6b 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -5,12 +5,12 @@ version = "0.0.1" [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" subdir = "crates/sui-framework/packages/sui-framework" -rev = "a63f425b9999c7fdfe483598720a9effc0acdc9e" +rev = "3a70c4374090b020b95465787f3220a95d8ab0ba" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" subdir = "sui/wormhole" -rev = "sui/integration_v2_stable" +rev = "sui/integration_v2" [addresses] pyth = "0x250" diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index 4ca84c595b..44d8cf36b4 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -160,6 +160,20 @@ module pyth::batch_price_attestation { ) } + #[test] + fun deserialize_big_boi(){ + use sui::test_scenario::{Self, ctx}; + use std::debug::print; + let test = test_scenario::begin(@0x1234); + let test_clock = clock::create_for_testing(ctx(&mut test)); + //let big_boi = x"01000000030d00d4a69597805c8617eb56600f75d16f520e24325e92f0ebeed05ed3d601ff2506600a2878c39711cfd5051020355a9c2994ec2fc8186eae93da29018d12ee027501022f99f23540b0f47bebcf8a2b7c313563f5cae4855f372488b8068db6f63c2b71246b9b8c2357e816456ada54e1bece0a32436fe6ae1cea573a2e8a7eb67903950004aa00bf027e25f4d67ae40d4a4297c05ed71ec2586ad17d5f20570a4e99bdd09a3e30311c7eee0eab95b927e9d95eb70a859eea63f65bc19ccfb1aa53a62122e60006f94f93147f0d76207e22f1551861f2bd0bb142761ad16aa2327f9bd8f39127687ab7c519d66d9e4a804bc9c5f2e3f30e2f0d1524eea610180c7a9d34c8b67de7010832e05e84252ac22fb6052e98e38c0d348999f791bf5ac3eb7851eb3f197350ff2be56b6068b237b30b1657c9f51a23a23f545eba85fa6e54dbaa2be1631b832e00090e4628db223a99a43ff1d4679dfc6d6624391a7e1e0cfac46efd8921b0336f2f5b27a26878d3417d241b365990e8f8ec3c1f7ddcbd8354927638a8ef10256e62000abfc78c279adf7fa679623886a0916b83f975f82747cc64b72c52644c9fb7d85b45e997fa1cd09f123ce4595489f33fe4c6e2f0b4510e4f4bcbf3a7405a3bed87000bfe2c8209ac6a3ff74bb2840be5e79fae8a309110d590b4404b666a3234a033a3397d782f383d80da550b2518999a8d0bd41c9116b26e66a689d36df74f436719000cc1f8132cead9b99678334f25834a729b125b4da8454bf0b69e94bcd727eb5e4937fac072b1d7b9fdc8508ef90fccaef3dc79712d2a4f42487eec08609684e991000d396ec58fbce7ebdef33a6f5c17937288b120fde7e81033ea7b901397665c8f705eccd3abfe83777680a5b5b68ccec2d39b799302fc8ee580d620b5116bd4d5da000e776bd626b1ca9a2aa266b6ebacbbd4ac74fe5864a6967742274dd8c0c64cd7c817708fdb3d4d0ab63d978cb27f0027107e98321cd6c94b3f99ba82664508c6910010de0d54b7dedb02c28d117ef847d955b34477801b9e634cd2b81e23b07db8c56d7c78ba25faecffe3161df762dbeaf07fda0a1cb72f824366a96d7e12bc1231c20012c27efff6899d12f45bd0fe693b326df217f5a80e095588de507e666e132219986288b439a5da0b3b1364072c80e61a1842c5d4d4bf254f4eea7a0aa4451468a70063d0247c00000000001af8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0000000000d4049e70150325748000300000001020005009504028fba493a357ecde648d51375a445ce1cb9681da1ea11e562b53522a5d3877f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b00000002507abf5a00000000010657010fffffff800000024ed52cbe80000000013f4ea6c0100000006000000090000000063d0247c0000000063d0247c0000000063d0247c0000002507abf5a00000000010657010e6c020c1a15366b779a8c870e065023657c88c82b82d58a9fe856896a4034b0415ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce571700000025cf2045140000000008738554fffffff800000025c34012100000000005f9658a0100000004000000060000000063d0247c0000000063d0247c0000000063d0247c00000025cfa161d00000000008f4a210c67940be40e0cc7ffaa1acb08ee3fab30955a197da1ec297ab133d4d43d86ee6ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace00000025c393b3cf000000000262c30ffffffff800000025aa547278000000000319bf6d01000000120000001a0000000063d0247c0000000063d0247c0000000063d0247c00000025c3cc833000000000026dcbb08d7c0971128e8a4764e757dedb32243ed799571706af3a68ab6a75479ea524ff846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b50000001bf6337f9e0000000216934e1efffffff80000001bdd26cac000000000a5a4dee00000000003000000060000000063d0247c0000000063d0247c0000000063a2ccab0000001bf6337f9e0000000216934e1e543b71a4c292744d3fcf814a2ccda6f7c00f283d457f83aa73c41e9defae034ba0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe1300000000000000000000000000000000fffffff8000000000000000000000000000000000000000001000000070000000063d0247c0000000063d0247c000000000000000000000000000000000000000000000000"; + let big_boi = x"5032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"; + let parsed = destroy(deserialize(big_boi, &test_clock)); + print(&parsed); + clock::destroy_for_testing(test_clock); + test_scenario::end(test); + } + #[test] #[expected_failure] fun test_deserialize_batch_price_attestation_invalid_magic() { diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 51a69132c7..6c21e8609b 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -177,6 +177,11 @@ module pyth::state { } /// Finalize the upgrade that ran to produce the given `receipt`. + /// + /// NOTE: The Sui VM performs a check that this method is executed from the + /// latest published package. If someone were to try to execute this using + /// a stale build, the transaction will revert with `PackageUpgradeError`, + /// specifically `PackageIDDoesNotMatch`. public(friend) fun commit_upgrade( self: &mut State, receipt: UpgradeReceipt @@ -184,32 +189,38 @@ module pyth::state { // Uptick the upgrade cap version number using this receipt. package::commit_upgrade(&mut self.upgrade_cap, receipt); - // Check that the upticked hard-coded version version agrees with the - // upticked version number. - assert!( - package::version(&self.upgrade_cap) == control::version() + 1, - E_BUILD_VERSION_MISMATCH - ); - // Update global version. required_version::update_latest( &mut self.required_version, &self.upgrade_cap ); - // Enable `migrate` to be called after commiting the upgrade. + // Require that `migrate` be called only from the current build. + require_current_version(self); + + // Require that `migrate` be called only from the current build. + require_current_version(self); + + // We require that a `MigrateTicket` struct be destroyed as the final + // step to an upgrade by calling `migrate` from the `migrate` module. // // A separate method is required because `state` is a dependency of // `migrate`. This method warehouses state modifications required // for the new implementation plus enabling any methods required to be // gated by the current implementation version. In most cases `migrate` - // is a no-op. But it still must be called in order to reset the - // migration control to `false`. + // is a no-op. + // + // The only case where this would fail is if `migrate` were not called + // from a previous upgrade. // // See `migrate` module for more info. - enable_migration(self); + field::add(&mut self.id, b"migrate", MigrateTicket {}); - package::upgrade_package(&self.upgrade_cap) + // Return the package IDs. + ( + field::remove(&mut self.id, b"current_package_id"), + package::upgrade_package(&self.upgrade_cap) + ) } /// Enforce a particular method to use the current build version as its From d079d4a4120b2a67b7a626f6fbbc4b287dc02c92 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 29 Apr 2023 01:25:30 +0000 Subject: [PATCH 034/140] update, migrate, state, pyth, setup, version_control --- .../sources/governance/contract_upgrade.move | 91 ++-- .../sources/governance/set_data_sources.move | 22 +- .../sui/contracts/sources/migrate.move | 97 ++-- target_chains/sui/contracts/sources/pyth.move | 7 +- .../sui/contracts/sources/setup.move | 76 +++ .../sui/contracts/sources/state.move | 436 ++++++++++-------- .../contracts/sources/version_control.move | 103 +++-- 7 files changed, 515 insertions(+), 317 deletions(-) create mode 100644 target_chains/sui/contracts/sources/setup.move diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index 9c2f26796d..e0d8c8f11e 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -1,11 +1,7 @@ // SPDX-License-Identifier: Apache 2 -/// Note: This module is based on the upgrade_contract module -/// from the Sui Wormhole package: -/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/governance/upgrade_contract.move - /// This module implements handling a governance VAA to enact upgrading the -/// Pyth contract to a new build. The procedure to upgrade this contract +/// Token Bridge contract to a new build. The procedure to upgrade this contract /// requires a Programmable Transaction, which includes the following procedure: /// 1. Load new build. /// 2. Authorize upgrade. @@ -13,22 +9,25 @@ /// 4. Commit upgrade. module pyth::contract_upgrade { use sui::event::{Self}; - use sui::object::{Self, ID}; + use sui::object::{ID}; use sui::package::{UpgradeReceipt, UpgradeTicket}; - - use pyth::state::{Self, State}; - use wormhole::bytes32::{Self, Bytes32}; use wormhole::cursor::{Self}; + use wormhole::governance_message::{Self, DecreeTicket, DecreeReceipt}; - friend pyth::governance; + use pyth::state::{Self, State}; + + friend pyth::migrate; /// Digest is all zeros. const E_DIGEST_ZERO_BYTES: u64 = 0; + /// Specific governance payload ID (action) to complete upgrading the /// contract. const ACTION_UPGRADE_CONTRACT: u8 = 1; + struct GovernanceWitness has drop {} + // Event reflecting package upgrade. struct ContractUpgraded has drop, copy { old_contract: ID, @@ -39,29 +38,37 @@ module pyth::contract_upgrade { digest: Bytes32 } + public fun authorize_governance( + wormhole_state: &State + ): DecreeTicket { + governance_message::authorize_verify_local( + GovernanceWitness {}, + state::governance_chain(wormhole_state), + state::governance_contract(wormhole_state), + state::governance_module(), + ACTION_UPGRADE_CONTRACT + ) + } + /// Redeem governance VAA to issue an `UpgradeTicket` for the upgrade given /// a contract upgrade VAA. This governance message is only relevant for Sui /// because a contract upgrade is only relevant to one particular network /// (in this case Sui), whose build digest is encoded in this message. - /// - /// NOTE: This method is guarded by a minimum build version check. This - /// method could break backward compatibility on an upgrade. - public(friend) fun execute( - pyth_state: &mut State, - payload: vector, + public fun authorize_upgrade( + token_bridge_state: &mut State, + receipt: DecreeReceipt ): UpgradeTicket { - // Proceed with processing new implementation version. - handle_upgrade_contract(pyth_state, payload) - } + // current package checking when consuming VAA hashes. This is because + // upgrades are protected by the Sui VM, enforcing the latest package + // is the one performing the upgrade. + let consumed = + state::borrow_mut_consumed_vaas_unchecked(token_bridge_state); - fun handle_upgrade_contract( - pyth_state: &mut State, - payload: vector - ): UpgradeTicket { - - let UpgradeContract { digest } = deserialize(payload); + // And consume. + let payload = governance_message::take_payload(consumed, receipt); - state::authorize_upgrade(pyth_state, digest) + // Proceed with processing new implementation version. + handle_upgrade_contract(token_bridge_state, payload) } /// Finalize the upgrade that ran to produce the given `receipt`. This @@ -71,15 +78,28 @@ module pyth::contract_upgrade { self: &mut State, receipt: UpgradeReceipt, ) { - let latest_package_id = state::commit_upgrade(self, receipt); + let (old_contract, new_contract) = state::commit_upgrade(self, receipt); // Emit an event reflecting package ID change. - event::emit( - ContractUpgraded { - old_contract: object::id_from_address(@pyth), - new_contract: latest_package_id - } - ); + event::emit(ContractUpgraded { old_contract, new_contract }); + } + + /// Privileged method only to be used by this module and `migrate` module. + /// + /// During migration, we make sure that the digest equals what we expect by + /// passing in the same VAA used to upgrade the package. + public(friend) fun take_digest(governance_payload: vector): Bytes32 { + // Deserialize the payload as the build digest. + let UpgradeContract { digest } = deserialize(governance_payload); + + digest + } + + fun handle_upgrade_contract( + wormhole_state: &mut State, + payload: vector + ): UpgradeTicket { + state::authorize_upgrade(wormhole_state, take_digest(payload)) } fun deserialize(payload: vector): UpgradeContract { @@ -99,3 +119,8 @@ module pyth::contract_upgrade { ACTION_UPGRADE_CONTRACT } } + +#[test_only] +module token_bridge::upgrade_contract_tests { + // TODO +} diff --git a/target_chains/sui/contracts/sources/governance/set_data_sources.move b/target_chains/sui/contracts/sources/governance/set_data_sources.move index 3815da5c09..29a174ad50 100644 --- a/target_chains/sui/contracts/sources/governance/set_data_sources.move +++ b/target_chains/sui/contracts/sources/governance/set_data_sources.move @@ -5,6 +5,8 @@ module pyth::set_data_sources { use wormhole::external_address::{Self}; use wormhole::bytes32::{Self}; + use wormhole::governance_message::{Self, DecreeTicket, DecreeReceipt}; + use pyth::deserialize; use pyth::data_source::{Self, DataSource}; use pyth::state::{Self, State}; @@ -12,13 +14,27 @@ module pyth::set_data_sources { friend pyth::governance; + struct GovernanceWitness has drop {} + struct DataSources { sources: vector, } - public(friend) fun execute(state: &mut State, payload: vector) { - state::check_minimum_requirement(state); - + public(friend) fun execute( + state: &mut State, + receipt: DecreeReceipt + ) { + // This capability ensures that the current build version is used. + let latest_only = state::assert_latest_only(state); + + let payload = + governance_message::take_payload( + state::borrow_mut_consumed_vaas( + &latest_only, + state + ), + receipt + ); let DataSources { sources } = from_byte_vec(payload); state::set_data_sources(state, sources); } diff --git a/target_chains/sui/contracts/sources/migrate.move b/target_chains/sui/contracts/sources/migrate.move index ffd85af5c9..e18b5bb424 100644 --- a/target_chains/sui/contracts/sources/migrate.move +++ b/target_chains/sui/contracts/sources/migrate.move @@ -1,50 +1,37 @@ // SPDX-License-Identifier: Apache 2 -/// Note: This module is largely taken from the Sui Wormhole package: -/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/migrate.move -/// This module implements an entry method intended to be called after an +/// Note: this module is adapted from Wormhole's migrade.move module. +/// +/// This module implements a public method intended to be called after an /// upgrade has been commited. The purpose is to add one-off migration logic -/// that would alter pyth `State`. +/// that would alter Pyth `State`. /// /// Included in migration is the ability to ensure that breaking changes for -/// any of pyth's methods by enforcing the current build version as their -/// required minimum version. +/// any of Pyth's methods by enforcing the current build version as +/// their required minimum version. module pyth::migrate { - use pyth::state::{Self, State}; - - // This import is only used when `state::require_current_version` is used. - // use pyth::version_control::{Self as control}; + use sui::object::{ID}; + use wormhole::governance_message::{Self, DecreeReceipt}; - /// Upgrade procedure is not complete (most likely due to an upgrade not - /// being initialized since upgrades can only be performed via programmable - /// transaction). - const E_CANNOT_MIGRATE: u64 = 0; - - /// Execute migration logic. See `pyth::migrate` description for more - /// info. - public entry fun migrate(pyth_state: &mut State) { - // pyth `State` only allows one to call `migrate` after the upgrade - // procedure completed. - assert!(state::can_migrate(pyth_state), E_CANNOT_MIGRATE); + use pyth::state::{Self, State}; + use pyth::contract_upgrade::{Self}; - //////////////////////////////////////////////////////////////////////// - // - // If there are any methods that require the current build, we need to - // explicity require them here. - // - // Calls to `require_current_version` are commented out for convenience. - // - //////////////////////////////////////////////////////////////////////// + struct MigrateComplete has drop, copy { + package: ID + } + /// Execute migration logic. See `token_bridge::migrate` description for + /// more info. + public fun migrate( + token_bridge_state: &mut State, + receipt: DecreeReceipt + ) { + // This should be removed in an upgrade from 0.1.1. + state::migrate__v__0_1_1(token_bridge_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); - // state::require_current_version(pyth_state); + // Perform standard migrate. + handle_migrate(token_bridge_state, receipt); //////////////////////////////////////////////////////////////////////// // @@ -56,14 +43,46 @@ module pyth::migrate { // // WARNING: The migration does *not* proceed atomically with the // upgrade (as they are done in separate transactions). - // If the nature of your migration absolutely requires the migration to + // If the nature of this migration absolutely requires the migration to // happen before certain other functionality is available, then guard // that functionality with the `assert!` from above. // //////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////// - // Ensure that `migrate` cannot be called again. - state::disable_migration(pyth_state); + } + + fun handle_migrate( + token_bridge_state: &mut State, + receipt: DecreeReceipt + ) { + // Update the version first. + // + // See `version_control` module for hard-coded configuration. + state::migrate_version(token_bridge_state); + + // This capability ensures that the current build version is used. + let latest_only = state::assert_latest_only(token_bridge_state); + + // Check if build digest is the current one. + let digest = + contract_upgrade::take_digest( + governance_message::payload(&receipt) + ); + state::assert_authorized_digest( + &latest_only, + token_bridge_state, + digest + ); + governance_message::destroy(receipt); + + // Finally emit an event reflecting a successful migrate. + let package = state::current_package(&latest_only, token_bridge_state); + sui::event::emit(MigrateComplete { package }); + } + + #[test_only] + public fun set_up_migrate(token_bridge_state: &mut State) { + state::reverse_migrate__v__0_1_0(token_bridge_state); } } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index a4ace1939f..538d446a01 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -399,6 +399,7 @@ module pyth::pyth_tests{ use sui::clock::{Self, Clock}; use pyth::state::{Self, State as PythState}; + use pyth::setup::{Self}; use pyth::price_identifier::{Self}; use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; use pyth::price_feed::{Self}; @@ -484,14 +485,14 @@ module pyth::pyth_tests{ test_scenario::ctx(&mut scenario) ); - state::init_test_only(ctx(&mut scenario)); + setup::init_test_only(ctx(&mut scenario)); test_scenario::next_tx(&mut scenario, DEPLOYER); - let pyth_deployer_cap = test_scenario::take_from_address( + let pyth_deployer_cap = test_scenario::take_from_address( &scenario, DEPLOYER ); - state::init_and_share_state( + setup::init_and_share_state( pyth_deployer_cap, pyth_upgrade_cap, stale_price_threshold, diff --git a/target_chains/sui/contracts/sources/setup.move b/target_chains/sui/contracts/sources/setup.move new file mode 100644 index 0000000000..7598d46eb1 --- /dev/null +++ b/target_chains/sui/contracts/sources/setup.move @@ -0,0 +1,76 @@ +module pyth::setup { + use sui::object::{Self, UID}; + use sui::package::{Self, UpgradeCap}; + use sui::transfer::{Self}; + use sui::tx_context::{Self, TxContext}; + + use pyth::state::{Self}; + use pyth::data_source::{DataSource}; + + /// `UpgradeCap` is not as expected when initializing `State`. + const E_INVALID_UPGRADE_CAP: u64 = 0; + /// Build version for setup must only be `1`. + const E_INVALID_BUILD_VERSION: u64 = 1; + + /// Capability created at `init`, which will be destroyed once + /// `init_and_share_state` is called. This ensures only the deployer can + /// create the shared `State`. + struct DeployerCap has key, store { + id: UID + } + + fun init(ctx: &mut TxContext) { + transfer::public_transfer( + DeployerCap { + id: object::new(ctx) + }, + tx_context::sender(ctx) + ); + } + + #[test_only] + public fun init_test_only(ctx: &mut TxContext) { + init(ctx); + + // This will be created and sent to the transaction sender + // automatically when the contract is published. + transfer::public_transfer( + sui::package::test_publish(object::id_from_address(@pyth), ctx), + tx_context::sender(ctx) + ); + } + + /// Only the owner of the `DeployerCap` can call this method. This + /// method destroys the capability and shares the `State` object. + public fun init_and_share_state( + deployer: DeployerCap, + upgrade_cap: UpgradeCap, + stale_price_threshold: u64, + base_update_fee: u64, + governance_data_source: DataSource, + sources: vector, + ctx: &mut TxContext + ) { + wormhole::package_utils::assert_package_upgrade_cap( + &upgrade_cap, + package::compatible_policy(), + 1 + ); + + // Destroy deployer cap. + let DeployerCap { id } = deployer; + object::delete(id); + + // Share new state. + transfer::public_share_object( + state::new( + upgrade_cap, + sources, + governance_data_source, + stale_price_threshold, + base_update_fee, + ctx + )); + } + +} \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 6c21e8609b..8dedcae7e2 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -1,23 +1,21 @@ module pyth::state { use std::vector; use sui::object::{Self, UID, ID}; - use sui::transfer::{Self}; - use sui::tx_context::{Self, TxContext}; - use sui::dynamic_field::{Self as field}; - use sui::package::{Self, UpgradeCap, UpgradeReceipt, UpgradeTicket}; + use sui::tx_context::{TxContext}; + //use sui::dynamic_field::{Self as field}; + use sui::package::{UpgradeCap, UpgradeTicket, UpgradeReceipt}; use sui::balance::{Balance}; use sui::sui::SUI; use pyth::data_source::{Self, DataSource}; use pyth::price_info::{Self}; use pyth::price_identifier::{PriceIdentifier}; - use pyth::required_version::{Self, RequiredVersion}; - use pyth::version_control::{Self as control}; + use pyth::version_control::{Self}; - use wormhole::setup::{assert_package_upgrade_cap}; use wormhole::consumed_vaas::{Self, ConsumedVAAs}; use wormhole::bytes32::{Self, Bytes32}; use wormhole::fee_collector::{Self, FeeCollector}; + use wormhole::package_utils::{Self}; friend pyth::pyth; friend pyth::pyth_tests; @@ -30,24 +28,21 @@ module pyth::state { friend pyth::migrate; friend pyth::contract_upgrade; friend pyth::transfer_fee; + friend pyth::setup; - const E_BUILD_VERSION_MISMATCH: u64 = 0; - const E_INVALID_BUILD_VERSION: u64 = 1; - const E_VAA_ALREADY_CONSUMED: u64 = 2; + /// Build digest does not agree with current implementation. + const E_INVALID_BUILD_DIGEST: u64 = 0; + /// Specified version does not match this build's version. + const E_VERSION_MISMATCH: u64 = 1; - /// Capability for creating a bridge state object, granted to sender when this - /// module is deployed - struct DeployerCap has key, store { - id: UID - } + /// Sui's chain ID is hard-coded to one value. + const CHAIN_ID: u16 = 21; - /// Used as key for dynamic field reflecting whether `migrate` can be - /// called. - /// - /// See `migrate` module for more info. - struct MigrationControl has store, drop, copy {} + /// Capability reflecting that the current build version is used to invoke + /// state methods. + struct LatestOnly has drop {} - struct State has key { + struct State has key, store { id: UID, governance_data_source: DataSource, stale_price_threshold: u64, @@ -59,59 +54,18 @@ module pyth::state { // Fee collector. fee_collector: FeeCollector, - - /// Contract build version tracker. - required_version: RequiredVersion - } - - fun init(ctx: &mut TxContext) { - transfer::public_transfer( - DeployerCap { - id: object::new(ctx) - }, - tx_context::sender(ctx) - ); } - #[test_only] - public fun init_test_only(ctx: &mut TxContext) { - init(ctx); - - // This will be created and sent to the transaction sender - // automatically when the contract is published. - transfer::public_transfer( - sui::package::test_publish(object::id_from_address(@pyth), ctx), - tx_context::sender(ctx) - ); - } - - /// Initialization - public(friend) fun init_and_share_state( - deployer: DeployerCap, + public(friend) fun new( upgrade_cap: UpgradeCap, + sources: vector, + governance_data_source: DataSource, stale_price_threshold: u64, base_update_fee: u64, - governance_data_source: DataSource, - sources: vector, ctx: &mut TxContext - ) { - // Only init and share state once (in the initial deployment). - let version = wormhole::version_control::version(); - assert!(version == 1, E_INVALID_BUILD_VERSION); - - let DeployerCap { id } = deployer; - object::delete(id); - - assert_package_upgrade_cap( - &upgrade_cap, - package::compatible_policy(), - 1 // version - ); - + ): State { let uid = object::new(ctx); - field::add(&mut uid, MigrationControl {}, false); - // Create a set that contains all registered data sources and // attach it to uid as a dynamic field to minimize the // size of State. @@ -122,149 +76,32 @@ module pyth::state { // size of State. price_info::new_price_info_registry(&mut uid, ctx); - // Iterate through data sources and add them to the data source - // registry in state. while (!vector::is_empty(&sources)) { data_source::add(&mut uid, vector::pop_back(&mut sources)); }; let consumed_vaas = consumed_vaas::new(ctx); - let required_version = required_version::new(control::version(), ctx); - required_version::add(&mut required_version); - required_version::add(&mut required_version); - required_version::add(&mut required_version); - required_version::add(&mut required_version); - required_version::add(&mut required_version); - required_version::add(&mut required_version); - required_version::add(&mut required_version); - - // Share state so that is a shared Sui object. - transfer::share_object( - State { - id: uid, - upgrade_cap, - governance_data_source, - stale_price_threshold, - base_update_fee, - consumed_vaas, - fee_collector: fee_collector::new(base_update_fee), - required_version - } - ); - } - - /// Retrieve current build version of latest upgrade. - public fun current_version(self: &State): u64 { - required_version::current(&self.required_version) - } - - /// Issue an `UpgradeTicket` for the upgrade. - public(friend) fun authorize_upgrade( - self: &mut State, - implementation_digest: Bytes32 - ): UpgradeTicket { - let policy = package::upgrade_policy(&self.upgrade_cap); - - // TODO: grab package ID from `UpgradeCap` and store it - // in a dynamic field. This will be the old ID after the upgrade. - // Both IDs will be emitted in a `ContractUpgraded` event. - package::authorize_upgrade( - &mut self.upgrade_cap, - policy, - bytes32::to_bytes(implementation_digest), - ) - } - - /// Finalize the upgrade that ran to produce the given `receipt`. - /// - /// NOTE: The Sui VM performs a check that this method is executed from the - /// latest published package. If someone were to try to execute this using - /// a stale build, the transaction will revert with `PackageUpgradeError`, - /// specifically `PackageIDDoesNotMatch`. - public(friend) fun commit_upgrade( - self: &mut State, - receipt: UpgradeReceipt - ): ID { - // Uptick the upgrade cap version number using this receipt. - package::commit_upgrade(&mut self.upgrade_cap, receipt); - - // Update global version. - required_version::update_latest( - &mut self.required_version, - &self.upgrade_cap - ); - - // Require that `migrate` be called only from the current build. - require_current_version(self); - - // Require that `migrate` be called only from the current build. - require_current_version(self); - - // We require that a `MigrateTicket` struct be destroyed as the final - // step to an upgrade by calling `migrate` from the `migrate` module. - // - // A separate method is required because `state` is a dependency of - // `migrate`. This method warehouses state modifications required - // for the new implementation plus enabling any methods required to be - // gated by the current implementation version. In most cases `migrate` - // is a no-op. - // - // The only case where this would fail is if `migrate` were not called - // from a previous upgrade. - // - // See `migrate` module for more info. - field::add(&mut self.id, b"migrate", MigrateTicket {}); - - // Return the package IDs. - ( - field::remove(&mut self.id, b"current_package_id"), - package::upgrade_package(&self.upgrade_cap) - ) + State { + id: uid, + upgrade_cap, + governance_data_source, + stale_price_threshold, + base_update_fee, + consumed_vaas, + fee_collector: fee_collector::new(base_update_fee) + } } - /// Enforce a particular method to use the current build version as its - /// minimum required version. This method ensures that a method is not - /// backwards compatible with older builds. - public(friend) fun require_current_version(self: &mut State) { - required_version::require_current_version( - &mut self.required_version, - ) - } + //////////////////////////////////////////////////////////////////////////// + // + // Simple Getters + // + // These methods do not require `LatestOnly` for access. Anyone is free to + // access these values. + // + //////////////////////////////////////////////////////////////////////////// - /// Check whether a particular method meets the minimum build version for - /// the latest Wormhole implementation. - public(friend) fun check_minimum_requirement(self: &State) { - required_version::check_minimum_requirement( - &self.required_version, - control::version() - ) - } - - // Upgrade and migration-related functionality - - /// Check whether `migrate` can be called. - /// - /// See `wormhole::migrate` module for more info. - public fun can_migrate(self: &State): bool { - *field::borrow(&self.id, MigrationControl {}) - } - - /// Allow `migrate` to be called after upgrade. - /// - /// See `wormhole::migrate` module for more info. - public(friend) fun enable_migration(self: &mut State) { - *field::borrow_mut(&mut self.id, MigrationControl {}) = true; - } - - /// Disallow `migrate` to be called. - /// - /// See `wormhole::migrate` module for more info. - public(friend) fun disable_migration(self: &mut State) { - *field::borrow_mut(&mut self.id, MigrationControl {}) = false; - } - - // Accessors public fun get_stale_price_threshold_secs(s: &State): u64 { s.stale_price_threshold } @@ -285,23 +122,94 @@ module pyth::state { price_info::contains(&s.id, p) } - // Mutators and Setters + /// Retrieve governance chain ID, which is governance's emitter chain ID. + public fun governance_data_source(self: &State): DataSource { + self.governance_data_source + } + + //////////////////////////////////////////////////////////////////////////// + // + // Privileged `State` Access + // + // This section of methods require a `LatestOnly`, which can only be created + // within the Wormhole package. This capability allows special access to + // the `State` object. + // + // NOTE: A lot of these methods are still marked as `(friend)` as a safety + // precaution. When a package is upgraded, friend modifiers can be + // removed. + // + //////////////////////////////////////////////////////////////////////////// + + /// Obtain a capability to interact with `State` methods. This method checks + /// that we are running the current build. + /// + /// NOTE: This method allows caching the current version check so we avoid + /// multiple checks to dynamic fields. + public(friend) fun assert_latest_only(self: &State): LatestOnly { + package_utils::assert_version( + &self.id, + version_control::current_version() + ); + + LatestOnly {} + } + + /// Deposit fee when sending Wormhole message. This method does not + /// necessarily have to be a `friend` to `wormhole::publish_message`. But + /// we also do not want an integrator to mistakenly deposit fees outside + /// of calling `publish_message`. + /// + /// See `wormhole::publish_message` for more info. + public(friend) fun deposit_fee( + _: &LatestOnly, + self: &mut State, + fee: Balance + ) { + fee_collector::deposit_balance(&mut self.fee_collector, fee); + } /// Withdraw collected fees when governance action to transfer fees to a /// particular recipient. /// - /// See `pyth::transfer_fee` for more info. + /// See `wormhole::transfer_fee` for more info. public(friend) fun withdraw_fee( + _: &LatestOnly, self: &mut State, amount: u64 ): Balance { fee_collector::withdraw_balance(&mut self.fee_collector, amount) } - public(friend) fun deposit_fee(self: &mut State, fee: Balance) { - fee_collector::deposit_balance(&mut self.fee_collector, fee); + /// Store `VAA` hash as a way to claim a VAA. This method prevents a VAA + /// from being replayed. For Wormhole, the only VAAs that it cares about + /// being replayed are its governance actions. + public(friend) fun borrow_mut_consumed_vaas( + _: &LatestOnly, + self: &mut State + ): &mut ConsumedVAAs { + borrow_mut_consumed_vaas_unchecked(self) } + /// Store `VAA` hash as a way to claim a VAA. This method prevents a VAA + /// from being replayed. For Wormhole, the only VAAs that it cares about + /// being replayed are its governance actions. + /// + /// NOTE: This method does not require `LatestOnly`. Only methods in the + /// `upgrade_contract` module requires this to be unprotected to prevent + /// a corrupted upgraded contract from bricking upgradability. + public(friend) fun borrow_mut_consumed_vaas_unchecked( + self: &mut State + ): &mut ConsumedVAAs { + &mut self.consumed_vaas + } + + public(friend) fun current_package(_: &LatestOnly, self: &State): ID { + package_utils::current_package(&self.id) + } + + // Mutators and Setters + public(friend) fun set_fee_collector_fee(self: &mut State, amount: u64) { fee_collector::change_fee(&mut self.fee_collector, amount); } @@ -338,4 +246,124 @@ module pyth::state { public(friend) fun register_price_feed(s: &mut State, p: PriceIdentifier, id: ID){ price_info::add(&mut s.id, p, id); } + + //////////////////////////////////////////////////////////////////////////// + // + // Upgradability + // + // A special space that controls upgrade logic. These methods are invoked + // via the `upgrade_contract` module. + // + // Also in this section is managing contract migrations, which uses the + // `migrate` module to officially roll state access to the latest build. + // Only those methods that require `LatestOnly` will be affected by an + // upgrade. + // + //////////////////////////////////////////////////////////////////////////// + + /// Issue an `UpgradeTicket` for the upgrade. + /// + /// NOTE: The Sui VM performs a check that this method is executed from the + /// latest published package. If someone were to try to execute this using + /// a stale build, the transaction will revert with `PackageUpgradeError`, + /// specifically `PackageIDDoesNotMatch`. + public(friend) fun authorize_upgrade( + self: &mut State, + package_digest: Bytes32 + ): UpgradeTicket { + let cap = &mut self.upgrade_cap; + package_utils::authorize_upgrade(&mut self.id, cap, package_digest) + } + + /// Finalize the upgrade that ran to produce the given `receipt`. + /// + /// NOTE: The Sui VM performs a check that this method is executed from the + /// latest published package. If someone were to try to execute this using + /// a stale build, the transaction will revert with `PackageUpgradeError`, + /// specifically `PackageIDDoesNotMatch`. + public(friend) fun commit_upgrade( + self: &mut State, + receipt: UpgradeReceipt + ): (ID, ID) { + let cap = &mut self.upgrade_cap; + package_utils::commit_upgrade(&mut self.id, cap, receipt) + } + + /// Method executed by the `migrate` module to roll access from one package + /// to another. This method will be called from the upgraded package. + public(friend) fun migrate_version(self: &mut State) { + package_utils::migrate_version( + &mut self.id, + version_control::previous_version(), + version_control::current_version() + ); + } + + /// As a part of the migration, we verify that the upgrade contract VAA's + /// encoded package digest used in `migrate` equals the one used to conduct + /// the upgrade. + public(friend) fun assert_authorized_digest( + _: &LatestOnly, + self: &State, + digest: Bytes32 + ) { + let authorized = package_utils::authorized_digest(&self.id); + assert!(digest == authorized, E_INVALID_BUILD_DIGEST); + } + + //////////////////////////////////////////////////////////////////////////// + // + // Special State Interaction via Migrate + // + // A VERY special space that manipulates `State` via calling `migrate`. + // + // PLEASE KEEP ANY METHODS HERE AS FRIENDS. We want the ability to remove + // these for future builds. + // + //////////////////////////////////////////////////////////////////////////// + + public(friend) fun migrate__v__0_1_1(self: &mut State) { + // We need to add dynamic fields via the new package utils method. These + // fields do not exist in the previous build (0.1.0). + // See `state::new` above. + + // Need to remove old dynamic field. This was set when performing the + // upgrade on previous version. We need to take this digest and then + // initialize package info with this as the pending digest. + let pending_digest = + sui::dynamic_field::remove(&mut self.id, CurrentDigest {}); + + // Initialize package info. This will be used for emitting information + // of successful migrations. + let upgrade_cap = &self.upgrade_cap; + package_utils::init_package_info( + &mut self.id, + upgrade_cap, + bytes32::default(), + pending_digest + ); + } + + #[test_only] + /// Bloody hack. + public fun reverse_migrate__v__0_1_0(self: &mut State) { + package_utils::remove_package_info(&mut self.id); + + // Add back in old dynamic field(s)... + + // Add dummy hash since this is the first time the package is published. + sui::dynamic_field::add(&mut self.id, CurrentDigest {}, bytes32::from_bytes(b"new build")); + } + + //////////////////////////////////////////////////////////////////////////// + // + // Deprecated + // + // Dumping grounds for old structs and methods. These things should not + // be used in future builds. + // + //////////////////////////////////////////////////////////////////////////// + + struct CurrentDigest has store, drop, copy {} + } diff --git a/target_chains/sui/contracts/sources/version_control.move b/target_chains/sui/contracts/sources/version_control.move index 232e8d3827..2401231c9c 100644 --- a/target_chains/sui/contracts/sources/version_control.move +++ b/target_chains/sui/contracts/sources/version_control.move @@ -1,50 +1,83 @@ // SPDX-License-Identifier: Apache 2 -/// Note: This module is based on the version_control module in -/// the Sui Wormhole package: -/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/version_control.move - -/// This module implements dynamic field keys as empty structs. These keys with -/// `RequiredVersion` are used to determine minimum build requirements for -/// particular Pyth methods and breaking backward compatibility for these -/// methods if an upgrade requires the latest upgrade version for its -/// functionality. +/// Note: this module is adapted from Wormhole's version_control.move module. /// -/// See `pyth::required_version` and `pyth::state` for more info. +/// This module implements dynamic field keys as empty structs. These keys are +/// used to determine the latest version for this build. If the current version +/// is not this build's, then paths through the `state` module will abort. +/// +/// See `pyth::state` and `wormhole::package_utils` for more info. module pyth::version_control { - /// This value tracks the current Pyth contract version. We are - /// placing this constant value at the top, which goes against Move style - /// guides so that we bring special attention to changing this value when - /// a new implementation is built for a contract upgrade. - const CURRENT_BUILD_VERSION: u64 = 1; + //////////////////////////////////////////////////////////////////////////// + // + // Hard-coded Version Control + // + // Before upgrading, please set the types for `current_version` and + // `previous_version` to match the correct types (current being the latest + // version reflecting this build). + // + //////////////////////////////////////////////////////////////////////////// + + public(friend) fun current_version(): V__0_1_1 { + V__0_1_1 {} + } + + public(friend) fun previous_version(): V__0_1_0 { + V__0_1_0 {} + } + + //////////////////////////////////////////////////////////////////////////// + // + // Change Log + // + // Please write release notes as doc strings for each version struct. These + // notes will be our attempt at tracking upgrades. Wish us luck. + // + //////////////////////////////////////////////////////////////////////////// - /// Key used to check minimum version requirement for `set_data_sources` - struct SetDataSources {} + /// RELEASE NOTES + /// + /// - Refactor state to use package management via + /// `wormhole::package_utils`. + /// - Add `MigrateComplete` event in `migrate`. + /// + /// Also added `migrate__v__0_1_1` in `wormhole::state`, which is + /// meant to perform a one-time `State` modification via `migrate`. + struct V__0_1_1 has store, drop, copy {} - /// Key used to check minimum version requirement for `set_governance_data_source` - struct SetGovernanceDataSource {} + /// First published package. + /// + /// NOTE: This version is published on Sui testnet. + /// + /// https://github.com/wormhole-foundation/wormhole/commit/03ff1b24cf913ed04ce59fe26b5d3abd53015f28 + struct V__0_1_0 has store, drop, copy {} - /// Key used to check minimum version requirement for `set_stale_price_threshold` - struct SetStalePriceThreshold {} + // Dummy. + struct V__DUMMY has store, drop, copy {} - /// Key used to check minimum version requirement for `set_update_fee` - struct SetUpdateFee {} + //////////////////////////////////////////////////////////////////////////// + // + // Implementation and Test-Only Methods + // + //////////////////////////////////////////////////////////////////////////// - /// Key used to check minimum version requirement for `transfer_fee` - struct TransferFee {} + friend pyth::state; - /// Key used to check minimum version requirement for `update_price_feeds` - struct UpdatePriceFeeds {} + #[test_only] + public fun dummy(): V__DUMMY { + V__DUMMY {} + } - /// Key used to check minimum version requirement for `create_price_feeds` - struct CreatePriceFeeds {} + #[test_only] + struct V__MIGRATED has store, drop, copy {} - //======================================================================= + #[test_only] + public fun next_version(): V__MIGRATED { + V__MIGRATED {} + } - /// Return const value `CURRENT_BUILD_VERSION` for this particular build. - /// This value is used to determine whether this implementation meets - /// minimum requirements for various Pyth methods required by `State`. - public fun version(): u64 { - CURRENT_BUILD_VERSION + #[test_only] + public fun previous_version_test_only(): V__0_1_0 { + previous_version() } } From eec469d6df0ef9e3b48f23fe2fd6f5a27bbc29c3 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 29 Apr 2023 19:44:22 +0000 Subject: [PATCH 035/140] upgradeability, governance, LatestOnly --- .../sui/contracts/sources/data_source.move | 8 ++ .../sources/governance/contract_upgrade.move | 8 +- .../sources/governance/governance.move | 53 ++++---- .../sources/governance/set_data_sources.move | 21 +--- .../set_governance_data_source.move | 10 +- .../governance/set_stale_price_threshold.move | 9 +- .../sources/governance/set_update_fee.move | 9 +- .../sources/governance/transfer_fee.move | 8 +- target_chains/sui/contracts/sources/pyth.move | 118 ++++++++++-------- .../sui/contracts/sources/state.move | 40 ++++-- 10 files changed, 144 insertions(+), 140 deletions(-) diff --git a/target_chains/sui/contracts/sources/data_source.move b/target_chains/sui/contracts/sources/data_source.move index 88b751ccd8..fae2a69928 100644 --- a/target_chains/sui/contracts/sources/data_source.move +++ b/target_chains/sui/contracts/sources/data_source.move @@ -56,4 +56,12 @@ module pyth::data_source { emitter_address: emitter_address, } } + + public fun emitter_chain(data_source: &DataSource): u64{ + data_source.emitter_chain + } + + public fun emitter_address(data_source: &DataSource): ExternalAddress{ + data_source.emitter_address + } } diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index e0d8c8f11e..df4b8ebf80 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -39,12 +39,12 @@ module pyth::contract_upgrade { } public fun authorize_governance( - wormhole_state: &State + pyth_state: &State ): DecreeTicket { governance_message::authorize_verify_local( GovernanceWitness {}, - state::governance_chain(wormhole_state), - state::governance_contract(wormhole_state), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), state::governance_module(), ACTION_UPGRADE_CONTRACT ) @@ -121,6 +121,6 @@ module pyth::contract_upgrade { } #[test_only] -module token_bridge::upgrade_contract_tests { +module pyth::upgrade_contract_tests { // TODO } diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index c2104282a7..9ba38f4f27 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -14,9 +14,11 @@ module pyth::governance { use pyth::state::{State}; use pyth::set_update_fee; use pyth::state; + use pyth::contract_upgrade::{GovernanceWitness}; use wormhole::vaa::{Self, VAA}; use wormhole::state::{State as WormState}; + use wormhole::governance_message::{Self, DecreeReceipt}; const E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO: u64 = 0; const E_INVALID_GOVERNANCE_ACTION: u64 = 1; @@ -48,13 +50,24 @@ module pyth::governance { /// Execute a governance instruction. public entry fun execute_governance_instruction( pyth_state : &mut State, - worm_state: &WormState, - vaa_bytes: vector, + receipt: DecreeReceipt, clock: &Clock, ctx: &mut TxContext ) { - let parsed_vaa = parse_and_verify_and_replay_protect_governance_vaa(pyth_state, worm_state, vaa_bytes, clock); - let instruction = governance_instruction::from_byte_vec(vaa::take_payload(parsed_vaa)); + // This capability ensures that the current build version is used. + let latest_only = state::assert_latest_only(pyth_state); + + // governance_message::take_payload takes care of replay protection. + let payload = + governance_message::take_payload( + state::borrow_mut_consumed_vaas( + &latest_only, + pyth_state + ), + receipt + ); + + let instruction = governance_instruction::from_byte_vec(payload); // Get the governance action. let action = governance_instruction::get_action(&instruction); @@ -63,42 +76,20 @@ module pyth::governance { if (action == governance_action::new_contract_upgrade()) { abort(E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE) } else if (action == governance_action::new_set_governance_data_source()) { - set_governance_data_source::execute(pyth_state, governance_instruction::destroy(instruction)); + set_governance_data_source::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_data_sources()) { - set_data_sources::execute(pyth_state, governance_instruction::destroy(instruction)); + set_data_sources::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_update_fee()) { - set_update_fee::execute(pyth_state, governance_instruction::destroy(instruction)); + set_update_fee::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_stale_price_threshold()) { - set_stale_price_threshold::execute(pyth_state, governance_instruction::destroy(instruction)); + set_stale_price_threshold::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_transfer_fee()) { - transfer_fee::execute(pyth_state, governance_instruction::destroy(instruction), ctx); + transfer_fee::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction), ctx); } else { governance_instruction::destroy(instruction); assert!(false, E_INVALID_GOVERNANCE_ACTION); } } - - fun parse_and_verify_and_replay_protect_governance_vaa( - pyth_state: &mut State, - worm_state: &WormState, - bytes: vector, - clock: &Clock, - ): VAA { - let parsed_vaa = vaa::parse_and_verify(worm_state, bytes, clock); - - // Check that the governance data source is valid - assert!( - state::is_valid_governance_data_source( - pyth_state, - data_source::new( - (vaa::emitter_chain(&parsed_vaa) as u64), - vaa::emitter_address(&parsed_vaa))), - E_INVALID_GOVERNANCE_DATA_SOURCE); - - // Prevent replay attacks by consuming the VAA digest (adding it to a set) - state::consume_vaa(pyth_state, vaa::digest(&parsed_vaa)); - parsed_vaa - } } // TODO - add tests diff --git a/target_chains/sui/contracts/sources/governance/set_data_sources.move b/target_chains/sui/contracts/sources/governance/set_data_sources.move index 29a174ad50..442dc5427b 100644 --- a/target_chains/sui/contracts/sources/governance/set_data_sources.move +++ b/target_chains/sui/contracts/sources/governance/set_data_sources.move @@ -5,12 +5,9 @@ module pyth::set_data_sources { use wormhole::external_address::{Self}; use wormhole::bytes32::{Self}; - use wormhole::governance_message::{Self, DecreeTicket, DecreeReceipt}; - use pyth::deserialize; use pyth::data_source::{Self, DataSource}; - use pyth::state::{Self, State}; - use pyth::version_control::{SetDataSources}; + use pyth::state::{Self, State, LatestOnly}; friend pyth::governance; @@ -21,22 +18,12 @@ module pyth::set_data_sources { } public(friend) fun execute( + latest_only: &LatestOnly, state: &mut State, - receipt: DecreeReceipt + payload: vector ) { - // This capability ensures that the current build version is used. - let latest_only = state::assert_latest_only(state); - - let payload = - governance_message::take_payload( - state::borrow_mut_consumed_vaas( - &latest_only, - state - ), - receipt - ); let DataSources { sources } = from_byte_vec(payload); - state::set_data_sources(state, sources); + state::set_data_sources(latest_only, state, sources); } fun from_byte_vec(bytes: vector): DataSources { diff --git a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move index a09a6093d4..5329e2db75 100644 --- a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move +++ b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move @@ -1,8 +1,7 @@ module pyth::set_governance_data_source { use pyth::deserialize; use pyth::data_source; - use pyth::state::{Self, State}; - use pyth::version_control::SetGovernanceDataSource; + use pyth::state::{Self, State, LatestOnly}; use wormhole::cursor; use wormhole::external_address::{Self, ExternalAddress}; @@ -16,12 +15,9 @@ module pyth::set_governance_data_source { initial_sequence: u64, } - public(friend) fun execute(pyth_state: &mut State, payload: vector) { - state::check_minimum_requirement(pyth_state); - - // TODO - What is GovernanceDataSource initial_sequence used for? + public(friend) fun execute(latest_only: &LatestOnly, pyth_state: &mut State, payload: vector) { let GovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence: _initial_sequence } = from_byte_vec(payload); - state::set_governance_data_source(pyth_state, data_source::new(emitter_chain_id, emitter_address)); + state::set_governance_data_source(latest_only, pyth_state, data_source::new(emitter_chain_id, emitter_address)); } fun from_byte_vec(bytes: vector): GovernanceDataSource { diff --git a/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move index 7ec7da3b4c..dc64ceacbf 100644 --- a/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move +++ b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move @@ -1,8 +1,7 @@ module pyth::set_stale_price_threshold { use wormhole::cursor; use pyth::deserialize; - use pyth::state::{Self, State}; - use pyth::version_control::SetStalePriceThreshold; + use pyth::state::{Self, State, LatestOnly}; friend pyth::governance; @@ -10,11 +9,9 @@ module pyth::set_stale_price_threshold { threshold: u64, } - public(friend) fun execute(state: &mut State, payload: vector) { - state::check_minimum_requirement(state); - + public(friend) fun execute(latest_only: &LatestOnly, state: &mut State, payload: vector) { let StalePriceThreshold { threshold } = from_byte_vec(payload); - state::set_stale_price_threshold_secs(state, threshold); + state::set_stale_price_threshold_secs(latest_only, state, threshold); } fun from_byte_vec(bytes: vector): StalePriceThreshold { diff --git a/target_chains/sui/contracts/sources/governance/set_update_fee.move b/target_chains/sui/contracts/sources/governance/set_update_fee.move index 6c339b469f..30641e68e4 100644 --- a/target_chains/sui/contracts/sources/governance/set_update_fee.move +++ b/target_chains/sui/contracts/sources/governance/set_update_fee.move @@ -2,8 +2,7 @@ module pyth::set_update_fee { use sui::math::{Self}; use pyth::deserialize; - use pyth::state::{Self, State}; - use pyth::version_control::SetUpdateFee; + use pyth::state::{Self, State, LatestOnly}; use wormhole::cursor; @@ -18,13 +17,11 @@ module pyth::set_update_fee { exponent: u64, } - public(friend) fun execute(pyth_state: &mut State, payload: vector) { - state::check_minimum_requirement(pyth_state); - + public(friend) fun execute(latest_only: &LatestOnly, pyth_state: &mut State, payload: vector) { let UpdateFee { mantissa, exponent } = from_byte_vec(payload); assert!(exponent <= 255, E_EXPONENT_DOES_NOT_FIT_IN_U8); let fee = apply_exponent(mantissa, (exponent as u8)); - state::set_base_update_fee(pyth_state, fee); + state::set_base_update_fee(latest_only, pyth_state, fee); } fun from_byte_vec(bytes: vector): UpdateFee { diff --git a/target_chains/sui/contracts/sources/governance/transfer_fee.move b/target_chains/sui/contracts/sources/governance/transfer_fee.move index f9361e539b..227339cb2c 100644 --- a/target_chains/sui/contracts/sources/governance/transfer_fee.move +++ b/target_chains/sui/contracts/sources/governance/transfer_fee.move @@ -8,8 +8,7 @@ module pyth::transfer_fee { use wormhole::external_address::{Self}; use wormhole::bytes32::{Self}; - use pyth::state::{Self, State}; - use pyth::version_control::{TransferFee}; + use pyth::state::{Self, State, LatestOnly}; friend pyth::governance; @@ -18,14 +17,13 @@ module pyth::transfer_fee { recipient: address } - public(friend) fun execute(state: &mut State, payload: vector, ctx: &mut TxContext) { - state::check_minimum_requirement(state); + public(friend) fun execute(latest_only: &LatestOnly, state: &mut State, payload: vector, ctx: &mut TxContext) { let PythFee { amount, recipient } = from_byte_vec(payload); transfer::public_transfer( coin::from_balance( - state::withdraw_fee(state, amount), + state::withdraw_fee(latest_only, state, amount), ctx ), recipient diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 538d446a01..5faaa86f68 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -9,17 +9,19 @@ module pyth::pyth { use pyth::event::{Self as pyth_event}; use pyth::data_source::{Self, DataSource}; - use pyth::state::{Self as state, State as PythState, DeployerCap}; + use pyth::state::{Self as state, State as PythState}; use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; use pyth::batch_price_attestation::{Self}; use pyth::price_feed::{Self}; use pyth::price::{Self, Price}; use pyth::price_identifier::{PriceIdentifier}; - use pyth::version_control::{UpdatePriceFeeds, CreatePriceFeeds}; + //use pyth::version_control::{Self}; + use pyth::setup::{Self, DeployerCap}; + //use pyth::vaa::{PythMessage}; use wormhole::external_address::{Self}; - use wormhole::vaa::{Self}; - use wormhole::state::{State as WormState}; + use wormhole::vaa::{Self, VAA}; + //use wormhole::state::{State as WormState}; use wormhole::bytes32::{Self}; const E_DATA_SOURCE_EMITTER_ADDRESS_AND_CHAIN_IDS_DIFFERENT_LENGTHS: u64 = 0; @@ -45,7 +47,7 @@ module pyth::pyth { update_fee: u64, ctx: &mut TxContext ) { - state::init_and_share_state( + setup::init_and_share_state( deployer, upgrade_cap, stale_price_threshold, @@ -88,19 +90,19 @@ module pyth::pyth { /// Create and share new price feed objects if they don't already exist. public fun create_price_feeds( - worm_state: &WormState, pyth_state: &mut PythState, - vaas: vector>, + // These vaas have been verified and consumed, so we don't have to worry about + // doing replay protection for them. + verified_vaas: vector, + //vaas: vector>, clock: &Clock, ctx: &mut TxContext ){ - // Version control. - state::check_minimum_requirement(pyth_state); - while (!vector::is_empty(&vaas)) { - let vaa = vector::pop_back(&mut vaas); + // This capability ensures that the current build version is used. + let latest_only = state::assert_latest_only(pyth_state); - // Deserialize the VAA - let vaa = vaa::parse_and_verify(worm_state, vaa, clock); + while (!vector::is_empty(&verified_vaas)) { + let vaa = vector::pop_back(&mut verified_vaas); // Check that the VAA is from a valid data source (emitter) assert!( @@ -110,7 +112,8 @@ module pyth::pyth { (vaa::emitter_chain(&vaa) as u64), vaa::emitter_address(&vaa)) ), - E_INVALID_DATA_SOURCE); + E_INVALID_DATA_SOURCE + ); // Deserialize the batch price attestation let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), clock)); @@ -132,7 +135,7 @@ module pyth::pyth { let price_identifier = price_info::get_price_identifier(&cur_price_info); let id = price_info::uid_to_inner(&new_price_info_object); - state::register_price_info_object(pyth_state, price_identifier, id); + state::register_price_info_object(&latest_only, pyth_state, price_identifier, id); transfer::public_share_object(new_price_info_object); } @@ -154,15 +157,14 @@ module pyth::pyth { /// /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees public fun update_price_feeds( - worm_state: &WormState, + //worm_state: &WormState, pyth_state: &PythState, - vaas: vector>, + vaas: vector, price_info_objects: &mut vector, fee: Coin, clock: &Clock ){ - // Version control. - state::check_minimum_requirement(pyth_state); + let _ = state::assert_latest_only(pyth_state); // Charge the message update fee assert!(get_total_update_fee(pyth_state, &vaas) <= coin::value(&fee), E_INSUFFICIENT_FEE); @@ -173,7 +175,6 @@ module pyth::pyth { // Update the price feed from each VAA while (!vector::is_empty(&vaas)) { update_price_feed_from_single_vaa( - worm_state, pyth_state, vector::pop_back(&mut vaas), price_info_objects, @@ -188,27 +189,24 @@ module pyth::pyth { /// a PriceInfoObject with a matching price identifier is not found, the update_cache /// function will revert, causing this function to revert. fun update_price_feed_from_single_vaa( - worm_state: &WormState, pyth_state: &PythState, - worm_vaa: vector, + verified_vaa: VAA, price_info_objects: &mut vector, clock: &Clock ) { - // Deserialize the VAA - let vaa = vaa::parse_and_verify(worm_state, worm_vaa, clock); // Check that the VAA is from a valid data source (emitter) assert!( state::is_valid_data_source( pyth_state, data_source::new( - (vaa::emitter_chain(&vaa) as u64), - vaa::emitter_address(&vaa)) + (vaa::emitter_chain(&verified_vaa) as u64), + vaa::emitter_address(&verified_vaa)) ), E_INVALID_DATA_SOURCE); // Deserialize the batch price attestation - let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(vaa), clock)); + let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(verified_vaa), clock)); // Update price info objects. update_cache(price_infos, price_info_objects, clock); @@ -263,8 +261,7 @@ module pyth::pyth { /// For a given price update i in the batch, that price is considered fresh if the current cached /// price for price_identifiers[i] is older than publish_times[i]. public fun update_price_feeds_if_fresh( - vaas: vector>, - worm_state: &WormState, + vaas: vector, pyth_state: &PythState, price_info_objects: &mut vector, publish_times: vector, @@ -292,7 +289,7 @@ module pyth::pyth { }; assert!(fresh_data, E_NO_FRESH_DATA); - update_price_feeds(worm_state, pyth_state, vaas, price_info_objects, fee, clock); + update_price_feeds(pyth_state, vaas, price_info_objects, fee, clock); } /// Determine if the given price update is "fresh": we have nothing newer already cached for that @@ -383,7 +380,7 @@ module pyth::pyth { } /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees - public fun get_total_update_fee(pyth_state: &PythState, update_data: &vector>): u64 { + public fun get_total_update_fee(pyth_state: &PythState, update_data: &vector): u64 { state::get_base_update_fee(pyth_state) * vector::length(update_data) } } @@ -412,6 +409,7 @@ module pyth::pyth_tests{ use wormhole::external_address::{Self}; use wormhole::bytes32::{Self}; use wormhole::state::{State as WormState}; + use wormhole::vaa::{Self, VAA}; const DEPLOYER: address = @0x1234; @@ -422,6 +420,19 @@ module pyth::pyth_tests{ /// - payload corresponding to the batch price attestation of the prices returned by get_mock_price_infos() const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; + fun get_verified_test_vaas(worm_state: &WormState, clock: &Clock): vector { + let verified_vaas = vector::empty(); + let test_vaas = TEST_VAAS; + let i = 0; + while (i < vector::length(&TEST_VAAS)) { + let cur_test_vaa = vector::pop_back(&mut test_vaas); + let verified_vaa = vaa::parse_and_verify(worm_state, cur_test_vaa, clock); + vector::push_back(&mut verified_vaas, verified_vaa); + i=i+1; + }; + return verified_vaas + } + #[test_only] /// Init Wormhole core bridge state. /// Init Pyth state. @@ -610,12 +621,11 @@ module pyth::pyth_tests{ // Pass in a corrupt VAA, which should fail deseriaizing let corrupt_vaa = x"90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; - + let verified_vaas = vector[vaa::parse_and_verify(&worm_state, corrupt_vaa, &clock)]; // Create Pyth price feed pyth::create_price_feeds( - &mut worm_state, &mut pyth_state, - vector[corrupt_vaa], + verified_vaas, &clock, ctx(&mut scenario) ); @@ -646,10 +656,11 @@ module pyth::pyth_tests{ let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + pyth::create_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &clock, ctx(&mut scenario) ); @@ -686,10 +697,11 @@ module pyth::pyth_tests{ let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + pyth::create_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &clock, ctx(&mut scenario) ); @@ -713,9 +725,8 @@ module pyth::pyth_tests{ let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3, price_info_object_4]; pyth::update_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &mut price_info_object_vec, test_coins, &clock @@ -750,11 +761,11 @@ module pyth::pyth_tests{ let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); pyth::create_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &clock, ctx(&mut scenario) ); @@ -775,11 +786,11 @@ module pyth::pyth_tests{ // Note that here we only pass in 3 price info objects corresponding to 3 out // of the 4 price feeds. let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3]; + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); pyth::update_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &mut price_info_object_vec, test_coins, &clock @@ -814,10 +825,11 @@ module pyth::pyth_tests{ let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + pyth::create_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &clock, ctx(&mut scenario) ); @@ -827,10 +839,11 @@ module pyth::pyth_tests{ let price_info_object = take_shared(&scenario); let price_info_object_vec = vector[price_info_object]; + verified_vaas = get_verified_test_vaas(&worm_state, &clock); + pyth::update_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &mut price_info_object_vec, test_coins, &clock @@ -857,11 +870,12 @@ module pyth::pyth_tests{ let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + // Update cache is called by create_price_feeds. pyth::create_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &clock, ctx(&mut scenario) ); @@ -915,11 +929,11 @@ module pyth::pyth_tests{ let pyth_state = take_shared(&scenario); let worm_state = take_shared(&scenario); + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); pyth::create_price_feeds( - &mut worm_state, &mut pyth_state, - TEST_VAAS, + verified_vaas, &clock, ctx(&mut scenario) ); diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 8dedcae7e2..51e8ce7a29 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -16,6 +16,7 @@ module pyth::state { use wormhole::bytes32::{Self, Bytes32}; use wormhole::fee_collector::{Self, FeeCollector}; use wormhole::package_utils::{Self}; + use wormhole::external_address::{ExternalAddress}; friend pyth::pyth; friend pyth::pyth_tests; @@ -127,6 +128,26 @@ module pyth::state { self.governance_data_source } + /// Retrieve governance module name. + public fun governance_module(): Bytes32 { + // TODO: make this the right governance module + bytes32::new( + x"000000000000000000000000000000000000000000546f6b656e427269646765" + ) + } + + /// Retrieve governance chain ID, which is governance's emitter chain ID. + public fun governance_chain(self: &State): u16 { + let governance_data_source = governance_data_source(self); + (data_source::emitter_chain(&governance_data_source) as u16) + } + + /// Retrieve governance emitter address. + public fun governance_contract(self: &State): ExternalAddress { + let governance_data_source = governance_data_source(self); + data_source::emitter_address(&governance_data_source) + } + //////////////////////////////////////////////////////////////////////////// // // Privileged `State` Access @@ -208,17 +229,12 @@ module pyth::state { package_utils::current_package(&self.id) } - // Mutators and Setters - public(friend) fun set_fee_collector_fee(self: &mut State, amount: u64) { + public(friend) fun set_fee_collector_fee(_: &LatestOnly, self: &mut State, amount: u64) { fee_collector::change_fee(&mut self.fee_collector, amount); } - public(friend) fun consume_vaa(state: &mut State, vaa_digest: Bytes32){ - consumed_vaas::consume(&mut state.consumed_vaas, vaa_digest); - } - - public(friend) fun set_data_sources(s: &mut State, new_sources: vector) { + public(friend) fun set_data_sources(_: &LatestOnly, s: &mut State, new_sources: vector) { // Empty the existing table of data sources registered in state. data_source::empty(&mut s.id); // Add the new data sources to the dynamic field registry. @@ -227,23 +243,23 @@ module pyth::state { }; } - public(friend) fun register_price_info_object(s: &mut State, price_identifier: PriceIdentifier, id: ID) { + public(friend) fun register_price_info_object(_: &LatestOnly, s: &mut State, price_identifier: PriceIdentifier, id: ID) { price_info::add(&mut s.id, price_identifier, id); } - public(friend) fun set_governance_data_source(s: &mut State, source: DataSource) { + public(friend) fun set_governance_data_source(_: &LatestOnly, s: &mut State, source: DataSource) { s. governance_data_source = source; } - public(friend) fun set_base_update_fee(s: &mut State, fee: u64) { + public(friend) fun set_base_update_fee(_: &LatestOnly, s: &mut State, fee: u64) { s.base_update_fee = fee; } - public(friend) fun set_stale_price_threshold_secs(s: &mut State, threshold_secs: u64) { + public(friend) fun set_stale_price_threshold_secs(_: &LatestOnly, s: &mut State, threshold_secs: u64) { s.stale_price_threshold = threshold_secs; } - public(friend) fun register_price_feed(s: &mut State, p: PriceIdentifier, id: ID){ + public(friend) fun register_price_feed(_: &LatestOnly, s: &mut State, p: PriceIdentifier, id: ID){ price_info::add(&mut s.id, p, id); } From b24276b45e57d87f92ea72a517dad67f6ae4fc8b Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 04:32:19 +0000 Subject: [PATCH 036/140] - state init_version, init_package_info - governance and contract ugpradeability stuff --- .../sources/batch_price_attestation.move | 14 ------ .../sources/governance/contract_upgrade.move | 43 ++++++++++++----- .../sources/governance/governance.move | 48 ++++--------------- .../sources/governance/governance_action.move | 8 +++- .../governance/governance_witness.move | 22 +++++++++ .../sources/governance/set_data_sources.move | 28 ++++++++++- .../set_governance_data_source.move | 26 ++++++++++ .../governance/set_stale_price_threshold.move | 27 +++++++++++ .../sources/governance/set_update_fee.move | 32 +++++++++++-- .../sources/governance/transfer_fee.move | 15 ++++++ .../sui/contracts/sources/migrate.move | 27 +++++------ target_chains/sui/contracts/sources/pyth.move | 44 +++++++++++------ .../sui/contracts/sources/state.move | 17 ++++++- 13 files changed, 248 insertions(+), 103 deletions(-) create mode 100644 target_chains/sui/contracts/sources/governance/governance_witness.move diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index 44d8cf36b4..4ca84c595b 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -160,20 +160,6 @@ module pyth::batch_price_attestation { ) } - #[test] - fun deserialize_big_boi(){ - use sui::test_scenario::{Self, ctx}; - use std::debug::print; - let test = test_scenario::begin(@0x1234); - let test_clock = clock::create_for_testing(ctx(&mut test)); - //let big_boi = x"01000000030d00d4a69597805c8617eb56600f75d16f520e24325e92f0ebeed05ed3d601ff2506600a2878c39711cfd5051020355a9c2994ec2fc8186eae93da29018d12ee027501022f99f23540b0f47bebcf8a2b7c313563f5cae4855f372488b8068db6f63c2b71246b9b8c2357e816456ada54e1bece0a32436fe6ae1cea573a2e8a7eb67903950004aa00bf027e25f4d67ae40d4a4297c05ed71ec2586ad17d5f20570a4e99bdd09a3e30311c7eee0eab95b927e9d95eb70a859eea63f65bc19ccfb1aa53a62122e60006f94f93147f0d76207e22f1551861f2bd0bb142761ad16aa2327f9bd8f39127687ab7c519d66d9e4a804bc9c5f2e3f30e2f0d1524eea610180c7a9d34c8b67de7010832e05e84252ac22fb6052e98e38c0d348999f791bf5ac3eb7851eb3f197350ff2be56b6068b237b30b1657c9f51a23a23f545eba85fa6e54dbaa2be1631b832e00090e4628db223a99a43ff1d4679dfc6d6624391a7e1e0cfac46efd8921b0336f2f5b27a26878d3417d241b365990e8f8ec3c1f7ddcbd8354927638a8ef10256e62000abfc78c279adf7fa679623886a0916b83f975f82747cc64b72c52644c9fb7d85b45e997fa1cd09f123ce4595489f33fe4c6e2f0b4510e4f4bcbf3a7405a3bed87000bfe2c8209ac6a3ff74bb2840be5e79fae8a309110d590b4404b666a3234a033a3397d782f383d80da550b2518999a8d0bd41c9116b26e66a689d36df74f436719000cc1f8132cead9b99678334f25834a729b125b4da8454bf0b69e94bcd727eb5e4937fac072b1d7b9fdc8508ef90fccaef3dc79712d2a4f42487eec08609684e991000d396ec58fbce7ebdef33a6f5c17937288b120fde7e81033ea7b901397665c8f705eccd3abfe83777680a5b5b68ccec2d39b799302fc8ee580d620b5116bd4d5da000e776bd626b1ca9a2aa266b6ebacbbd4ac74fe5864a6967742274dd8c0c64cd7c817708fdb3d4d0ab63d978cb27f0027107e98321cd6c94b3f99ba82664508c6910010de0d54b7dedb02c28d117ef847d955b34477801b9e634cd2b81e23b07db8c56d7c78ba25faecffe3161df762dbeaf07fda0a1cb72f824366a96d7e12bc1231c20012c27efff6899d12f45bd0fe693b326df217f5a80e095588de507e666e132219986288b439a5da0b3b1364072c80e61a1842c5d4d4bf254f4eea7a0aa4451468a70063d0247c00000000001af8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0000000000d4049e70150325748000300000001020005009504028fba493a357ecde648d51375a445ce1cb9681da1ea11e562b53522a5d3877f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b00000002507abf5a00000000010657010fffffff800000024ed52cbe80000000013f4ea6c0100000006000000090000000063d0247c0000000063d0247c0000000063d0247c0000002507abf5a00000000010657010e6c020c1a15366b779a8c870e065023657c88c82b82d58a9fe856896a4034b0415ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce571700000025cf2045140000000008738554fffffff800000025c34012100000000005f9658a0100000004000000060000000063d0247c0000000063d0247c0000000063d0247c00000025cfa161d00000000008f4a210c67940be40e0cc7ffaa1acb08ee3fab30955a197da1ec297ab133d4d43d86ee6ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace00000025c393b3cf000000000262c30ffffffff800000025aa547278000000000319bf6d01000000120000001a0000000063d0247c0000000063d0247c0000000063d0247c00000025c3cc833000000000026dcbb08d7c0971128e8a4764e757dedb32243ed799571706af3a68ab6a75479ea524ff846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b50000001bf6337f9e0000000216934e1efffffff80000001bdd26cac000000000a5a4dee00000000003000000060000000063d0247c0000000063d0247c0000000063a2ccab0000001bf6337f9e0000000216934e1e543b71a4c292744d3fcf814a2ccda6f7c00f283d457f83aa73c41e9defae034ba0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe1300000000000000000000000000000000fffffff8000000000000000000000000000000000000000001000000070000000063d0247c0000000063d0247c000000000000000000000000000000000000000000000000"; - let big_boi = x"5032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"; - let parsed = destroy(deserialize(big_boi, &test_clock)); - print(&parsed); - clock::destroy_for_testing(test_clock); - test_scenario::end(test); - } - #[test] #[expected_failure] fun test_deserialize_batch_price_attestation_invalid_magic() { diff --git a/target_chains/sui/contracts/sources/governance/contract_upgrade.move b/target_chains/sui/contracts/sources/governance/contract_upgrade.move index df4b8ebf80..4c3e23082c 100644 --- a/target_chains/sui/contracts/sources/governance/contract_upgrade.move +++ b/target_chains/sui/contracts/sources/governance/contract_upgrade.move @@ -16,17 +16,21 @@ module pyth::contract_upgrade { use wormhole::governance_message::{Self, DecreeTicket, DecreeReceipt}; use pyth::state::{Self, State}; + use pyth::governance_witness::{GovernanceWitness, new_governance_witness}; + use pyth::governance_instruction::{Self}; + use pyth::governance_action::{Self}; friend pyth::migrate; /// Digest is all zeros. const E_DIGEST_ZERO_BYTES: u64 = 0; + const E_GOVERNANCE_ACTION_MUST_BE_CONTRACT_UPGRADE: u64 = 1; + const E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO: u64 = 2; /// Specific governance payload ID (action) to complete upgrading the /// contract. - const ACTION_UPGRADE_CONTRACT: u8 = 1; - - struct GovernanceWitness has drop {} + /// TODO: is it okay for the contract upgrade action for Pyth to be 0? Or should it be 1? + const CONTRACT_UPGRADE: u8 = 0; // Event reflecting package upgrade. struct ContractUpgraded has drop, copy { @@ -42,11 +46,11 @@ module pyth::contract_upgrade { pyth_state: &State ): DecreeTicket { governance_message::authorize_verify_local( - GovernanceWitness {}, + new_governance_witness(), state::governance_chain(pyth_state), state::governance_contract(pyth_state), state::governance_module(), - ACTION_UPGRADE_CONTRACT + CONTRACT_UPGRADE ) } @@ -55,20 +59,35 @@ module pyth::contract_upgrade { /// because a contract upgrade is only relevant to one particular network /// (in this case Sui), whose build digest is encoded in this message. public fun authorize_upgrade( - token_bridge_state: &mut State, + pyth_state: &mut State, receipt: DecreeReceipt ): UpgradeTicket { - // current package checking when consuming VAA hashes. This is because + + // Current package checking when consuming VAA hashes. This is because // upgrades are protected by the Sui VM, enforcing the latest package // is the one performing the upgrade. let consumed = - state::borrow_mut_consumed_vaas_unchecked(token_bridge_state); + state::borrow_mut_consumed_vaas_unchecked(pyth_state); // And consume. let payload = governance_message::take_payload(consumed, receipt); + let instruction = governance_instruction::from_byte_vec(payload); + + // Get the governance action. + let action = governance_instruction::get_action(&instruction); + + assert!(action == governance_action::new_contract_upgrade(), + E_GOVERNANCE_ACTION_MUST_BE_CONTRACT_UPGRADE); + + assert!(governance_instruction::get_target_chain_id(&instruction) != 0, + E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO); + + // upgrade_payload contains a 32-byte digest + let upgrade_payload = governance_instruction::destroy(instruction); + // Proceed with processing new implementation version. - handle_upgrade_contract(token_bridge_state, payload) + handle_upgrade_contract(pyth_state, upgrade_payload) } /// Finalize the upgrade that ran to produce the given `receipt`. This @@ -96,10 +115,10 @@ module pyth::contract_upgrade { } fun handle_upgrade_contract( - wormhole_state: &mut State, + pyth_state: &mut State, payload: vector ): UpgradeTicket { - state::authorize_upgrade(wormhole_state, take_digest(payload)) + state::authorize_upgrade(pyth_state, take_digest(payload)) } fun deserialize(payload: vector): UpgradeContract { @@ -116,7 +135,7 @@ module pyth::contract_upgrade { #[test_only] public fun action(): u8 { - ACTION_UPGRADE_CONTRACT + CONTRACT_UPGRADE } } diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index 9ba38f4f27..413db3c1d0 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -1,12 +1,8 @@ module pyth::governance { - use sui::clock::{Clock}; - use sui::package::{UpgradeTicket}; use sui::tx_context::{TxContext}; - use pyth::data_source::{Self}; use pyth::governance_instruction; use pyth::governance_action; - use pyth::contract_upgrade; use pyth::set_governance_data_source; use pyth::set_data_sources; use pyth::set_stale_price_threshold; @@ -14,44 +10,18 @@ module pyth::governance { use pyth::state::{State}; use pyth::set_update_fee; use pyth::state; - use pyth::contract_upgrade::{GovernanceWitness}; + use pyth::governance_witness::{GovernanceWitness}; - use wormhole::vaa::{Self, VAA}; - use wormhole::state::{State as WormState}; use wormhole::governance_message::{Self, DecreeReceipt}; - const E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO: u64 = 0; - const E_INVALID_GOVERNANCE_ACTION: u64 = 1; - const E_INVALID_GOVERNANCE_DATA_SOURCE: u64 = 2; - const E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE: u64 = 3; - const E_GOVERNANCE_ACTION_MUST_BE_CONTRACT_UPGRADE: u64 = 4; + const E_INVALID_GOVERNANCE_ACTION: u64 = 0; + const E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE: u64 = 1; - /// Rather than having execute_governance_instruction handle the contract - /// upgrade governance instruction, we have a separate function that processes - /// contract upgrade instructions, because doing contract upgrades is a - /// multi-step process, and the first step of doing a contract upgrade - /// yields a return value, namely the upgrade ticket, which is non-droppable. - public fun execute_contract_upgrade_governance_instruction( - pyth_state : &mut State, - worm_state: &WormState, - vaa_bytes: vector, - clock: &Clock - ): UpgradeTicket { - let parsed_vaa = parse_and_verify_and_replay_protect_governance_vaa(pyth_state, worm_state, vaa_bytes, clock); - let instruction = governance_instruction::from_byte_vec(vaa::take_payload(parsed_vaa)); - let action = governance_instruction::get_action(&instruction); - assert!(action == governance_action::new_contract_upgrade(), - E_GOVERNANCE_ACTION_MUST_BE_CONTRACT_UPGRADE); - assert!(governance_instruction::get_target_chain_id(&instruction) != 0, - E_GOVERNANCE_CONTRACT_UPGRADE_CHAIN_ID_ZERO); - contract_upgrade::execute(pyth_state, governance_instruction::destroy(instruction)) - } - - /// Execute a governance instruction. - public entry fun execute_governance_instruction( + /// Execute a governance instruction other than contract upgrade, which is + /// handled separately in the contract_upgrade.move module. + public fun execute_governance_instruction( pyth_state : &mut State, receipt: DecreeReceipt, - clock: &Clock, ctx: &mut TxContext ) { // This capability ensures that the current build version is used. @@ -72,7 +42,7 @@ module pyth::governance { // Get the governance action. let action = governance_instruction::get_action(&instruction); - // Dispatch the instruction to the appropiate handler. + // Dispatch the instruction to the appropriate handler. if (action == governance_action::new_contract_upgrade()) { abort(E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE) } else if (action == governance_action::new_set_governance_data_source()) { @@ -83,7 +53,7 @@ module pyth::governance { set_update_fee::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_stale_price_threshold()) { set_stale_price_threshold::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); - } else if (action == governance_action::new_transfer_fee()) { + } else if (action == governance_action::new_set_transfer_fee()) { transfer_fee::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction), ctx); } else { governance_instruction::destroy(instruction); @@ -91,5 +61,3 @@ module pyth::governance { } } } - -// TODO - add tests diff --git a/target_chains/sui/contracts/sources/governance/governance_action.move b/target_chains/sui/contracts/sources/governance/governance_action.move index 762060eb23..036fdfbef6 100644 --- a/target_chains/sui/contracts/sources/governance/governance_action.move +++ b/target_chains/sui/contracts/sources/governance/governance_action.move @@ -8,7 +8,7 @@ module pyth::governance_action { const SET_STALE_PRICE_THRESHOLD: u8 = 4; const TRANSFER_FEE: u8 = 5; - const E_INVALID_GOVERNANCE_ACTION: u64 = 5; + const E_INVALID_GOVERNANCE_ACTION: u64 = 6; struct GovernanceAction has copy, drop { value: u8, @@ -19,6 +19,10 @@ module pyth::governance_action { GovernanceAction { value } } + public fun get_value(a: GovernanceAction): u8{ + a.value + } + public fun new_contract_upgrade(): GovernanceAction { GovernanceAction { value: CONTRACT_UPGRADE } } @@ -39,7 +43,7 @@ module pyth::governance_action { GovernanceAction { value: SET_STALE_PRICE_THRESHOLD } } - public fun new_transfer_fee(): GovernanceAction { + public fun new_set_transfer_fee(): GovernanceAction { GovernanceAction { value: TRANSFER_FEE } } } diff --git a/target_chains/sui/contracts/sources/governance/governance_witness.move b/target_chains/sui/contracts/sources/governance/governance_witness.move new file mode 100644 index 0000000000..5a08b374d2 --- /dev/null +++ b/target_chains/sui/contracts/sources/governance/governance_witness.move @@ -0,0 +1,22 @@ +module pyth::governance_witness { + + friend pyth::set_data_sources; + friend pyth::set_stale_price_threshold; + friend pyth::set_update_fee; + friend pyth::set_governance_data_source; + friend pyth::transfer_fee; + friend pyth::contract_upgrade; + + /// A hot potato that ensures that only DecreeTickets + /// and DecreeReceipts associated with Sui Pyth governance + /// are passed to execute_governance_instruction or + /// execute_contract_upgrade_governance_instruction. + /// + /// DecreeTickets and DecreeReceipts are Wormhole structs + /// that are used in the VAA verification process. + struct GovernanceWitness has drop {} + + public(friend) fun new_governance_witness(): GovernanceWitness{ + GovernanceWitness{} + } +} diff --git a/target_chains/sui/contracts/sources/governance/set_data_sources.move b/target_chains/sui/contracts/sources/governance/set_data_sources.move index 442dc5427b..f4a840d74c 100644 --- a/target_chains/sui/contracts/sources/governance/set_data_sources.move +++ b/target_chains/sui/contracts/sources/governance/set_data_sources.move @@ -4,19 +4,43 @@ module pyth::set_data_sources { use wormhole::cursor; use wormhole::external_address::{Self}; use wormhole::bytes32::{Self}; + use wormhole::governance_message::{Self, DecreeTicket}; use pyth::deserialize; use pyth::data_source::{Self, DataSource}; use pyth::state::{Self, State, LatestOnly}; + use pyth::governance_action::{Self}; + use pyth::governance_witness::{Self, GovernanceWitness}; friend pyth::governance; - struct GovernanceWitness has drop {} - struct DataSources { sources: vector, } + public fun authorize_governance( + pyth_state: &State, + global: bool + ): DecreeTicket { + if (global) { + governance_message::authorize_verify_global( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_data_sources()) + ) + } else { + governance_message::authorize_verify_local( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_data_sources()) + ) + } + } + public(friend) fun execute( latest_only: &LatestOnly, state: &mut State, diff --git a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move index 5329e2db75..c53c52e68c 100644 --- a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move +++ b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move @@ -2,10 +2,13 @@ module pyth::set_governance_data_source { use pyth::deserialize; use pyth::data_source; use pyth::state::{Self, State, LatestOnly}; + use pyth::governance_action::{Self}; + use pyth::governance_witness::{Self, GovernanceWitness}; use wormhole::cursor; use wormhole::external_address::{Self, ExternalAddress}; use wormhole::bytes32::{Self}; + use wormhole::governance_message::{Self, DecreeTicket}; friend pyth::governance; @@ -15,6 +18,29 @@ module pyth::set_governance_data_source { initial_sequence: u64, } + public fun authorize_governance( + pyth_state: &State, + global: bool + ): DecreeTicket { + if (global){ + governance_message::authorize_verify_global( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_governance_data_source()) + ) + } else { + governance_message::authorize_verify_local( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_governance_data_source()) + ) + } + } + public(friend) fun execute(latest_only: &LatestOnly, pyth_state: &mut State, payload: vector) { let GovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence: _initial_sequence } = from_byte_vec(payload); state::set_governance_data_source(latest_only, pyth_state, data_source::new(emitter_chain_id, emitter_address)); diff --git a/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move index dc64ceacbf..808d9e53f2 100644 --- a/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move +++ b/target_chains/sui/contracts/sources/governance/set_stale_price_threshold.move @@ -1,7 +1,11 @@ module pyth::set_stale_price_threshold { use wormhole::cursor; + use wormhole::governance_message::{Self, DecreeTicket}; + use pyth::deserialize; use pyth::state::{Self, State, LatestOnly}; + use pyth::governance_action::{Self}; + use pyth::governance_witness::{Self, GovernanceWitness}; friend pyth::governance; @@ -9,6 +13,29 @@ module pyth::set_stale_price_threshold { threshold: u64, } + public fun authorize_governance( + pyth_state: &State, + global: bool + ): DecreeTicket { + if (global){ + governance_message::authorize_verify_global( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_stale_price_threshold()) + ) + } else{ + governance_message::authorize_verify_local( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_stale_price_threshold()) + ) + } + } + public(friend) fun execute(latest_only: &LatestOnly, state: &mut State, payload: vector) { let StalePriceThreshold { threshold } = from_byte_vec(payload); state::set_stale_price_threshold_secs(latest_only, state, threshold); diff --git a/target_chains/sui/contracts/sources/governance/set_update_fee.move b/target_chains/sui/contracts/sources/governance/set_update_fee.move index 30641e68e4..9cdd1f829b 100644 --- a/target_chains/sui/contracts/sources/governance/set_update_fee.move +++ b/target_chains/sui/contracts/sources/governance/set_update_fee.move @@ -1,11 +1,13 @@ module pyth::set_update_fee { use sui::math::{Self}; - use pyth::deserialize; - use pyth::state::{Self, State, LatestOnly}; - use wormhole::cursor; + use wormhole::governance_message::{Self, DecreeTicket}; + use pyth::deserialize; + use pyth::state::{Self, State, LatestOnly}; + use pyth::governance_action::{Self}; + use pyth::governance_witness::{Self, GovernanceWitness}; friend pyth::governance; @@ -17,6 +19,30 @@ module pyth::set_update_fee { exponent: u64, } + public fun authorize_governance( + pyth_state: &State, + global: bool + ): DecreeTicket { + if (global){ + governance_message::authorize_verify_global( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_update_fee()) + ) + } else{ + governance_message::authorize_verify_local( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_update_fee()) + ) + } + + } + public(friend) fun execute(latest_only: &LatestOnly, pyth_state: &mut State, payload: vector) { let UpdateFee { mantissa, exponent } = from_byte_vec(payload); assert!(exponent <= 255, E_EXPONENT_DOES_NOT_FIT_IN_U8); diff --git a/target_chains/sui/contracts/sources/governance/transfer_fee.move b/target_chains/sui/contracts/sources/governance/transfer_fee.move index 227339cb2c..80e869d1af 100644 --- a/target_chains/sui/contracts/sources/governance/transfer_fee.move +++ b/target_chains/sui/contracts/sources/governance/transfer_fee.move @@ -7,8 +7,11 @@ module pyth::transfer_fee { use wormhole::cursor; use wormhole::external_address::{Self}; use wormhole::bytes32::{Self}; + use wormhole::governance_message::{Self, DecreeTicket}; use pyth::state::{Self, State, LatestOnly}; + use pyth::governance_action::{Self}; + use pyth::governance_witness::{Self, GovernanceWitness}; friend pyth::governance; @@ -17,6 +20,18 @@ module pyth::transfer_fee { recipient: address } + public fun authorize_governance( + pyth_state: &State + ): DecreeTicket { + governance_message::authorize_verify_local( + governance_witness::new_governance_witness(), + state::governance_chain(pyth_state), + state::governance_contract(pyth_state), + state::governance_module(), + governance_action::get_value(governance_action::new_set_transfer_fee()) + ) + } + public(friend) fun execute(latest_only: &LatestOnly, state: &mut State, payload: vector, ctx: &mut TxContext) { let PythFee { amount, recipient } = from_byte_vec(payload); diff --git a/target_chains/sui/contracts/sources/migrate.move b/target_chains/sui/contracts/sources/migrate.move index e18b5bb424..b4a6af7dac 100644 --- a/target_chains/sui/contracts/sources/migrate.move +++ b/target_chains/sui/contracts/sources/migrate.move @@ -16,22 +16,21 @@ module pyth::migrate { use pyth::state::{Self, State}; use pyth::contract_upgrade::{Self}; + use pyth::governance_witness::{GovernanceWitness}; struct MigrateComplete has drop, copy { package: ID } - /// Execute migration logic. See `token_bridge::migrate` description for - /// more info. public fun migrate( - token_bridge_state: &mut State, - receipt: DecreeReceipt + pyth_state: &mut State, + receipt: DecreeReceipt ) { // This should be removed in an upgrade from 0.1.1. - state::migrate__v__0_1_1(token_bridge_state); + state::migrate__v__0_1_1(pyth_state); // Perform standard migrate. - handle_migrate(token_bridge_state, receipt); + handle_migrate(pyth_state, receipt); //////////////////////////////////////////////////////////////////////// // @@ -53,16 +52,16 @@ module pyth::migrate { } fun handle_migrate( - token_bridge_state: &mut State, - receipt: DecreeReceipt + pyth_state: &mut State, + receipt: DecreeReceipt ) { // Update the version first. // // See `version_control` module for hard-coded configuration. - state::migrate_version(token_bridge_state); + state::migrate_version(pyth_state); // This capability ensures that the current build version is used. - let latest_only = state::assert_latest_only(token_bridge_state); + let latest_only = state::assert_latest_only(pyth_state); // Check if build digest is the current one. let digest = @@ -71,18 +70,18 @@ module pyth::migrate { ); state::assert_authorized_digest( &latest_only, - token_bridge_state, + pyth_state, digest ); governance_message::destroy(receipt); // Finally emit an event reflecting a successful migrate. - let package = state::current_package(&latest_only, token_bridge_state); + let package = state::current_package(&latest_only, pyth_state); sui::event::emit(MigrateComplete { package }); } #[test_only] - public fun set_up_migrate(token_bridge_state: &mut State) { - state::reverse_migrate__v__0_1_0(token_bridge_state); + public fun set_up_migrate(pyth_state: &mut State) { + state::reverse_migrate__v__0_1_0(pyth_state); } } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 5faaa86f68..e32b6c9abc 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -141,6 +141,7 @@ module pyth::pyth { } } }; + vector::destroy_empty(verified_vaas); } /// Update Pyth Price Info objects (containing price feeds) with the @@ -159,7 +160,7 @@ module pyth::pyth { public fun update_price_feeds( //worm_state: &WormState, pyth_state: &PythState, - vaas: vector, + verified_vaas: vector, price_info_objects: &mut vector, fee: Coin, clock: &Clock @@ -167,20 +168,21 @@ module pyth::pyth { let _ = state::assert_latest_only(pyth_state); // Charge the message update fee - assert!(get_total_update_fee(pyth_state, &vaas) <= coin::value(&fee), E_INSUFFICIENT_FEE); + assert!(get_total_update_fee(pyth_state, vector::length(&verified_vaas)) <= coin::value(&fee), E_INSUFFICIENT_FEE); // TODO: use Wormhole fee collector instead of transferring funds to deployer address. transfer::public_transfer(fee, @pyth); // Update the price feed from each VAA - while (!vector::is_empty(&vaas)) { + while (!vector::is_empty(&verified_vaas)) { update_price_feed_from_single_vaa( pyth_state, - vector::pop_back(&mut vaas), + vector::pop_back(&mut verified_vaas), price_info_objects, clock ); }; + vector::destroy_empty(verified_vaas); } /// Make sure that a Sui object of type PriceInfoObject exists for each update @@ -380,8 +382,8 @@ module pyth::pyth { } /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees - public fun get_total_update_fee(pyth_state: &PythState, update_data: &vector): u64 { - state::get_base_update_fee(pyth_state) * vector::length(update_data) + public fun get_total_update_fee(pyth_state: &PythState, n: u64): u64 { + state::get_base_update_fee(pyth_state) * n } } @@ -395,7 +397,7 @@ module pyth::pyth_tests{ use sui::object::{Self, ID}; use sui::clock::{Self, Clock}; - use pyth::state::{Self, State as PythState}; + use pyth::state::{State as PythState}; use pyth::setup::{Self}; use pyth::price_identifier::{Self}; use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; @@ -421,16 +423,22 @@ module pyth::pyth_tests{ const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; fun get_verified_test_vaas(worm_state: &WormState, clock: &Clock): vector { - let verified_vaas = vector::empty(); + let verified_vaas_reversed = vector::empty(); let test_vaas = TEST_VAAS; let i = 0; while (i < vector::length(&TEST_VAAS)) { let cur_test_vaa = vector::pop_back(&mut test_vaas); let verified_vaa = vaa::parse_and_verify(worm_state, cur_test_vaa, clock); - vector::push_back(&mut verified_vaas, verified_vaa); + vector::push_back(&mut verified_vaas_reversed, verified_vaa); i=i+1; }; - return verified_vaas + let verified_vaas = vector::empty(); + while (vector::length(&verified_vaas_reversed)!=0){ + let cur = vector::pop_back(&mut verified_vaas_reversed); + vector::push_back(&mut verified_vaas, cur); + }; + vector::destroy_empty(verified_vaas_reversed); + verified_vaas } #[test_only] @@ -592,18 +600,23 @@ module pyth::pyth_tests{ test_scenario::next_tx(&mut scenario, DEPLOYER, ); let pyth_state = take_shared(&scenario); // Pass in a single VAA - assert!(pyth::get_total_update_fee(&pyth_state, &vector[ + + let single_vaa = vector[ x"fb1543888001083cf2e6ef3afdcf827e89b11efd87c563638df6e1995ada9f93", - ]) == single_update_fee, 1); + ]; - // Pass in multiple VAAs - assert!(pyth::get_total_update_fee(&pyth_state, &vector[ + assert!(pyth::get_total_update_fee(&pyth_state, vector::length>(&single_vaa)) == single_update_fee, 1); + + let multiple_vaas = vector[ x"4ee17a1a4524118de513fddcf82b77454e51be5d6fc9e29fc72dd6c204c0e4fa", x"c72fdf81cfc939d4286c93fbaaae2eec7bae28a5926fa68646b43a279846ccc1", x"d9a8123a793529c31200339820a3210059ecace6c044f81ecad62936e47ca049", x"84e4f21b3e65cef47fda25d15b4eddda1edf720a1d062ccbf441d6396465fbe6", x"9e73f9041476a93701a0b9c7501422cc2aa55d16100bec628cf53e0281b6f72f" - ]) == 250, 1); + ]; + + // Pass in multiple VAAs + assert!(pyth::get_total_update_fee(&pyth_state, vector::length>(&multiple_vaas)) == 250, 1); return_shared(pyth_state); coin::burn_for_testing(test_coins); @@ -723,6 +736,7 @@ module pyth::pyth_tests{ // which contain the price feeds we want to update. Note that these can be passed into // update_price_feeds in any order! let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3, price_info_object_4]; + verified_vaas = get_verified_test_vaas(&worm_state, &clock); pyth::update_price_feeds( &mut pyth_state, diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 51e8ce7a29..d63c177a4f 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -2,7 +2,6 @@ module pyth::state { use std::vector; use sui::object::{Self, UID, ID}; use sui::tx_context::{TxContext}; - //use sui::dynamic_field::{Self as field}; use sui::package::{UpgradeCap, UpgradeTicket, UpgradeReceipt}; use sui::balance::{Balance}; use sui::sui::SUI; @@ -83,6 +82,22 @@ module pyth::state { let consumed_vaas = consumed_vaas::new(ctx); + + // Set first version for this package. + package_utils::init_version( + &mut uid, + version_control::current_version() + ); + + // Initialize package info. This will be used for emitting information + // of successful migrations. + package_utils::init_package_info( + &mut uid, + &upgrade_cap, + bytes32::default(), + bytes32::default() + ); + State { id: uid, upgrade_cap, From fa5aca0a1aea44b402b072d5b9c5fab7d5b808ad Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 04:39:36 +0000 Subject: [PATCH 037/140] make several functions public(friend), and friend the right modules in data_source.move --- .../sui/contracts/sources/data_source.move | 14 ++++++++++---- .../sui/contracts/sources/price_info.move | 7 ++++--- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/contracts/sources/data_source.move b/target_chains/sui/contracts/sources/data_source.move index fae2a69928..ee09932f3e 100644 --- a/target_chains/sui/contracts/sources/data_source.move +++ b/target_chains/sui/contracts/sources/data_source.move @@ -7,6 +7,12 @@ module pyth::data_source { use wormhole::external_address::ExternalAddress; + friend pyth::state; + friend pyth::set_data_sources; + friend pyth::pyth; + friend pyth::set_governance_data_source; + friend pyth::pyth_tests; + const KEY: vector = b"data_sources"; const E_DATA_SOURCE_REGISTRY_ALREADY_EXISTS: u64 = 0; const E_DATA_SOURCE_ALREADY_REGISTERED: u64 = 1; @@ -16,7 +22,7 @@ module pyth::data_source { emitter_address: ExternalAddress, } - public fun new_data_source_registry(parent_id: &mut UID, ctx: &mut TxContext) { + public(friend) fun new_data_source_registry(parent_id: &mut UID, ctx: &mut TxContext) { assert!( !dynamic_field::exists_(parent_id, KEY), E_DATA_SOURCE_REGISTRY_ALREADY_EXISTS // TODO - add custom error type @@ -28,7 +34,7 @@ module pyth::data_source { ) } - public fun add(parent_id: &mut UID, data_source: DataSource) { + public(friend) fun add(parent_id: &mut UID, data_source: DataSource) { assert!( !contains(parent_id, data_source), E_DATA_SOURCE_ALREADY_REGISTERED @@ -39,7 +45,7 @@ module pyth::data_source { ) } - public fun empty(parent_id: &mut UID){ + public(friend) fun empty(parent_id: &mut UID){ set::empty( dynamic_field::borrow_mut(parent_id, KEY) ) @@ -50,7 +56,7 @@ module pyth::data_source { set::contains(ref, data_source) } - public fun new(emitter_chain: u64, emitter_address: ExternalAddress): DataSource { + public(friend) fun new(emitter_chain: u64, emitter_address: ExternalAddress): DataSource { DataSource { emitter_chain: emitter_chain, emitter_address: emitter_address, diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index 3c258fcba0..af139540f3 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -12,6 +12,7 @@ module pyth::price_info { const E_PRICE_IDENTIFIER_ALREADY_REGISTERED: u64 = 1; friend pyth::pyth; + friend pyth::state; /// Sui object version of PriceInfo. /// Has a key ability, is unique for each price identifier, and lives in global store. @@ -29,7 +30,7 @@ module pyth::price_info { /// Creates a table which maps a PriceIdentifier to the /// UID (in bytes) of the corresponding Sui PriceInfoObject. - public fun new_price_info_registry(parent_id: &mut UID, ctx: &mut TxContext) { + public(friend) fun new_price_info_registry(parent_id: &mut UID, ctx: &mut TxContext) { assert!( !dynamic_object_field::exists_(parent_id, KEY), E_PRICE_INFO_REGISTRY_ALREADY_EXISTS @@ -41,7 +42,7 @@ module pyth::price_info { ) } - public fun add(parent_id: &mut UID, price_identifier: PriceIdentifier, id: ID) { + public(friend) fun add(parent_id: &mut UID, price_identifier: PriceIdentifier, id: ID) { assert!( !contains(parent_id, price_identifier), E_PRICE_IDENTIFIER_ALREADY_REGISTERED @@ -58,7 +59,7 @@ module pyth::price_info { table::contains(ref, price_identifier) } - public fun new_price_info_object( + public(friend) fun new_price_info_object( price_info: PriceInfo, ctx: &mut TxContext ): PriceInfoObject { From 2916efaa1a63857560390c02cdb7d5e763c36c4f Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 04:56:54 +0000 Subject: [PATCH 038/140] add comment --- target_chains/sui/contracts/sources/pyth.move | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index e32b6c9abc..5b412a9576 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -170,7 +170,11 @@ module pyth::pyth { // Charge the message update fee assert!(get_total_update_fee(pyth_state, vector::length(&verified_vaas)) <= coin::value(&fee), E_INSUFFICIENT_FEE); - // TODO: use Wormhole fee collector instead of transferring funds to deployer address. + // TODO: We want to use Wormhole fee collector instead of transferring funds to deployer address, + // however this requires a mutable reference to PythState. We don't want update_price_feeds + // to take in mutable references to PythState, because taking a global write lock on it + // makes it so price updates can't execute in parallel, even if they are on different price feeds + // (or PriceInfoObjects). transfer::public_transfer(fee, @pyth); // Update the price feed from each VAA From 4fe6034616b4f445a2b8d6e25465bc20f913d17a Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 05:06:01 +0000 Subject: [PATCH 039/140] fix bug in from_u8, so that value <= TRANSFER_FEE --- .../sui/contracts/sources/governance/governance_action.move | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/governance/governance_action.move b/target_chains/sui/contracts/sources/governance/governance_action.move index 036fdfbef6..eb31ee6023 100644 --- a/target_chains/sui/contracts/sources/governance/governance_action.move +++ b/target_chains/sui/contracts/sources/governance/governance_action.move @@ -15,7 +15,7 @@ module pyth::governance_action { } public fun from_u8(value: u8): GovernanceAction { - assert!(CONTRACT_UPGRADE <= value && value <= SET_STALE_PRICE_THRESHOLD, E_INVALID_GOVERNANCE_ACTION); + assert!(CONTRACT_UPGRADE <= value && value <= TRANSFER_FEE, E_INVALID_GOVERNANCE_ACTION); GovernanceAction { value } } From 66afac3bb972f554b0db3a8f7c7bc3826b68120c Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 05:07:52 +0000 Subject: [PATCH 040/140] rename error message to E_MUST_USE_CONTRACT_UPGRADE_MODULE_TO_DO_UPGRADES --- .../sui/contracts/sources/governance/governance.move | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index 413db3c1d0..da5cb22a71 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -15,7 +15,7 @@ module pyth::governance { use wormhole::governance_message::{Self, DecreeReceipt}; const E_INVALID_GOVERNANCE_ACTION: u64 = 0; - const E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE: u64 = 1; + const E_MUST_USE_CONTRACT_UPGRADE_MODULE_TO_DO_UPGRADES: u64 = 1; /// Execute a governance instruction other than contract upgrade, which is /// handled separately in the contract_upgrade.move module. @@ -44,7 +44,7 @@ module pyth::governance { // Dispatch the instruction to the appropriate handler. if (action == governance_action::new_contract_upgrade()) { - abort(E_MUST_USE_EXECUTE_CONTRACT_UPGRADE_GOVERNANCE_INSTRUCTION_CALLSITE) + abort(E_MUST_USE_CONTRACT_UPGRADE_MODULE_TO_DO_UPGRADES) } else if (action == governance_action::new_set_governance_data_source()) { set_governance_data_source::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_data_sources()) { From 0509f0f5ed8e07345884e10766d7edd8db42e131 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 05:23:45 +0000 Subject: [PATCH 041/140] set_last_executed_governance_sequence --- .../governance/set_governance_data_source.move | 3 ++- target_chains/sui/contracts/sources/state.move | 15 ++++++++++++++- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move index c53c52e68c..b534b4faed 100644 --- a/target_chains/sui/contracts/sources/governance/set_governance_data_source.move +++ b/target_chains/sui/contracts/sources/governance/set_governance_data_source.move @@ -42,8 +42,9 @@ module pyth::set_governance_data_source { } public(friend) fun execute(latest_only: &LatestOnly, pyth_state: &mut State, payload: vector) { - let GovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence: _initial_sequence } = from_byte_vec(payload); + let GovernanceDataSource { emitter_chain_id, emitter_address, initial_sequence: initial_sequence } = from_byte_vec(payload); state::set_governance_data_source(latest_only, pyth_state, data_source::new(emitter_chain_id, emitter_address)); + state::set_last_executed_governance_sequence(latest_only, pyth_state, initial_sequence); } fun from_byte_vec(bytes: vector): GovernanceDataSource { diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index d63c177a4f..c401dfc5e5 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -34,6 +34,7 @@ module pyth::state { const E_INVALID_BUILD_DIGEST: u64 = 0; /// Specified version does not match this build's version. const E_VERSION_MISMATCH: u64 = 1; + const E_SET_GOVERNANCE_DATA_SOURCE_SEQUENCE_NUMBERS_NON_INCREASING: u64 = 2; /// Sui's chain ID is hard-coded to one value. const CHAIN_ID: u16 = 21; @@ -47,6 +48,7 @@ module pyth::state { governance_data_source: DataSource, stale_price_threshold: u64, base_update_fee: u64, + last_executed_governance_sequence: u64, consumed_vaas: ConsumedVAAs, // Upgrade capability. @@ -105,6 +107,7 @@ module pyth::state { stale_price_threshold, base_update_fee, consumed_vaas, + last_executed_governance_sequence: 0, fee_collector: fee_collector::new(base_update_fee) } } @@ -143,6 +146,10 @@ module pyth::state { self.governance_data_source } + public fun get_last_executed_governance_sequence(self: &State): u64{ + return self.last_executed_governance_sequence + } + /// Retrieve governance module name. public fun governance_module(): Bytes32 { // TODO: make this the right governance module @@ -263,7 +270,13 @@ module pyth::state { } public(friend) fun set_governance_data_source(_: &LatestOnly, s: &mut State, source: DataSource) { - s. governance_data_source = source; + s.governance_data_source = source; + } + + public(friend) fun set_last_executed_governance_sequence(_: &LatestOnly, s: &mut State, sequence: u64) { + let prev_sequence = get_last_executed_governance_sequence(s); + assert!(sequence>=prev_sequence, E_SET_GOVERNANCE_DATA_SOURCE_SEQUENCE_NUMBERS_NON_INCREASING); + s.last_executed_governance_sequence = sequence; } public(friend) fun set_base_update_fee(_: &LatestOnly, s: &mut State, fee: u64) { From d91728588137acc9ab09b76fea54fe75302da8b4 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 17:15:01 +0000 Subject: [PATCH 042/140] set pyth governance_module to 0000000000000000000000000000000000000000000000000000000000000001 --- target_chains/sui/contracts/sources/state.move | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index c401dfc5e5..ffb0eeafe8 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -152,9 +152,8 @@ module pyth::state { /// Retrieve governance module name. public fun governance_module(): Bytes32 { - // TODO: make this the right governance module bytes32::new( - x"000000000000000000000000000000000000000000546f6b656e427269646765" + x"0000000000000000000000000000000000000000000000000000000000000001" ) } From d3283eefb467a51132c861d51c357c7e6b1a01f8 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 18:26:37 +0000 Subject: [PATCH 043/140] update README --- target_chains/sui/README.md | 4 ++++ target_chains/sui/contracts/sources/pyth.move | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) create mode 100644 target_chains/sui/README.md diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md new file mode 100644 index 0000000000..f59ff868f2 --- /dev/null +++ b/target_chains/sui/README.md @@ -0,0 +1,4 @@ +# Pyth on Sui + +Pyth price feeds are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability. + diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 5b412a9576..61bec23651 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -170,10 +170,10 @@ module pyth::pyth { // Charge the message update fee assert!(get_total_update_fee(pyth_state, vector::length(&verified_vaas)) <= coin::value(&fee), E_INSUFFICIENT_FEE); - // TODO: We want to use Wormhole fee collector instead of transferring funds to deployer address, + // TODO: Ideally, we'd want to use Wormhole fee collector instead of transferring funds to deployer address, // however this requires a mutable reference to PythState. We don't want update_price_feeds // to take in mutable references to PythState, because taking a global write lock on it - // makes it so price updates can't execute in parallel, even if they are on different price feeds + // makes it so price updates can't execute in parallel, even if they act on different price feeds // (or PriceInfoObjects). transfer::public_transfer(fee, @pyth); From 52f51b979cf1a4369f32f4a08b5e5358036426ca Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 30 Apr 2023 14:43:31 -0400 Subject: [PATCH 044/140] Update README.md --- target_chains/sui/README.md | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index f59ff868f2..9f8f75d471 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -1,4 +1,22 @@ # Pyth on Sui -Pyth price feeds are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability. +## 1. The `PriceInfoObject` +Pyth price feeds on Sui are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability and serve as wrappers around the `PriceInfo` object, which in turn wraps around the `PriceFeed`, the arrival time of the latest price update, and the attestation time of the latest update. +`PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that act on price feeds, e.g. + +- `update_price_feeds` +- `update_price_feed_from_single_vaa` +- `update_price_feeds_if_fresh` + +## 2. Updating and Consuming Price Feeds +1. First, obtain a batch price attestation VAA bytes of type `vector` +2. +3. +4. + +## 3. Contracts Registry + +### Wormhole on Testnet +- WORMHOLE_ID: `0x3542d705ec6a7e05045288ec99a6c4b4e3ded999b6feab720fab535b08fa51f8` +- WORMHOLE_STATE_ID: `0x69ae41bdef4770895eb4e7aaefee5e4673acc08f6917b4856cf55549c4573ca8` From 381e84782fb109458192796fd09dcf17284fa5f7 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 30 Apr 2023 14:47:17 -0400 Subject: [PATCH 045/140] Update README.md --- target_chains/sui/README.md | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 9f8f75d471..05d96e1be3 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -10,13 +10,35 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn - `update_price_feeds_if_fresh` ## 2. Updating and Consuming Price Feeds -1. First, obtain a batch price attestation VAA bytes of type `vector` -2. -3. +Assuming that a price feed with PRICE_FEED_ID exists, + +1. Obtain a batch price attestation VAA bytes of type `vector` +2. Call `wormhole::parse_and_verify` on the to obtain a `VAA` hot potato object. Note, you will also need to pass in a reference to the Wormhole state and the Sui clock. + ```Rust + public fun parse_and_verify( + wormhole_state: &State, + buf: vector, + the_clock: &Clock + ): VAA + ``` +3. Call `pyth:` 4. ## 3. Contracts Registry +### Pyth on Testnet +- WORMHOLE_ID: TBA +- PYTH_STATE_ID: TBA + ### Wormhole on Testnet - WORMHOLE_ID: `0x3542d705ec6a7e05045288ec99a6c4b4e3ded999b6feab720fab535b08fa51f8` - WORMHOLE_STATE_ID: `0x69ae41bdef4770895eb4e7aaefee5e4673acc08f6917b4856cf55549c4573ca8` + +### Pyth on Mainnet +- PYTH_ID: TBA +- PYTH_STATE_ID: TBA + +### Wormhole on Mainnet +- WORMHOLE_ID: TBA +- WORMHOLE_STATE_ID: TBA + From a55b913d6a72ee2e56792659a880f2646fd3dcec Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 18:56:55 +0000 Subject: [PATCH 046/140] delete comments --- target_chains/sui/contracts/sources/pyth.move | 5 ----- 1 file changed, 5 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 61bec23651..e85806d7a6 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -15,13 +15,10 @@ module pyth::pyth { use pyth::price_feed::{Self}; use pyth::price::{Self, Price}; use pyth::price_identifier::{PriceIdentifier}; - //use pyth::version_control::{Self}; use pyth::setup::{Self, DeployerCap}; - //use pyth::vaa::{PythMessage}; use wormhole::external_address::{Self}; use wormhole::vaa::{Self, VAA}; - //use wormhole::state::{State as WormState}; use wormhole::bytes32::{Self}; const E_DATA_SOURCE_EMITTER_ADDRESS_AND_CHAIN_IDS_DIFFERENT_LENGTHS: u64 = 0; @@ -94,7 +91,6 @@ module pyth::pyth { // These vaas have been verified and consumed, so we don't have to worry about // doing replay protection for them. verified_vaas: vector, - //vaas: vector>, clock: &Clock, ctx: &mut TxContext ){ @@ -158,7 +154,6 @@ module pyth::pyth { /// /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees public fun update_price_feeds( - //worm_state: &WormState, pyth_state: &PythState, verified_vaas: vector, price_info_objects: &mut vector, From e0875128ad32e30ea8e295cdfb87b5bf5b100e40 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 30 Apr 2023 15:02:16 -0400 Subject: [PATCH 047/140] Update README.md --- target_chains/sui/README.md | 36 +++++++++++++++++++++++++++++------- 1 file changed, 29 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 05d96e1be3..6bc19b5b87 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -1,6 +1,6 @@ # Pyth on Sui -## 1. The `PriceInfoObject` +## 1. Background Pyth price feeds on Sui are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability and serve as wrappers around the `PriceInfo` object, which in turn wraps around the `PriceFeed`, the arrival time of the latest price update, and the attestation time of the latest update. `PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that act on price feeds, e.g. @@ -9,11 +9,15 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn - `update_price_feed_from_single_vaa` - `update_price_feeds_if_fresh` -## 2. Updating and Consuming Price Feeds -Assuming that a price feed with PRICE_FEED_ID exists, +## 2. How to Update and Consume Price Feeds +To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). -1. Obtain a batch price attestation VAA bytes of type `vector` -2. Call `wormhole::parse_and_verify` on the to obtain a `VAA` hot potato object. Note, you will also need to pass in a reference to the Wormhole state and the Sui clock. +As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Assume the ID is `PRICE_INFO_OBJECT_ID`. Then, chain together the following sequence of function calls: + +### 1. `wormhole::parse_and_verify` + +Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot potato object. +Note: you will also need to pass in a reference to the Wormhole state and the Sui clock. ```Rust public fun parse_and_verify( wormhole_state: &State, @@ -21,8 +25,26 @@ Assuming that a price feed with PRICE_FEED_ID exists, the_clock: &Clock ): VAA ``` -3. Call `pyth:` -4. +### 2.`pyth:update_price_feeds` +```Rust + public fun update_price_feeds( + pyth_state: &PythState, + verified_vaas: vector, + price_info_objects: &mut vector, + fee: Coin, + clock: &Clock + ) +``` + +### 3. `pyth::get_price` +```Rust +public fun get_price( + state: &PythState, + price_info_object: &PriceInfoObject, + clock: &Clock +): Price +``` +Fetch the price of the updated Price Info Object. ## 3. Contracts Registry From a182f8e6d00b57612ffc7bbdfcff37105017ae9e Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 30 Apr 2023 15:07:27 -0400 Subject: [PATCH 048/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 6bc19b5b87..467670700b 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -17,7 +17,6 @@ As with other chains, one first obtains a batch price attestation VAA (of type ` ### 1. `wormhole::parse_and_verify` Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot potato object. -Note: you will also need to pass in a reference to the Wormhole state and the Sui clock. ```Rust public fun parse_and_verify( wormhole_state: &State, @@ -26,6 +25,7 @@ Note: you will also need to pass in a reference to the Wormhole state and the Su ): VAA ``` ### 2.`pyth:update_price_feeds` +Vectorize the `VAA` from the previous step and pass it to `update_price_feeds`. ```Rust public fun update_price_feeds( pyth_state: &PythState, From 621acb66a9b24aad8b19b2b913b159765ad41909 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 19:12:00 +0000 Subject: [PATCH 049/140] change Wormhole dependency to branch sui/mainnet, which has the latest update that includes VAA sequence number in DecreeReceipt do proper checking of sequence number when executing governance instructions, allow set_governance_data_source to update the sequence number to some initial_sequence. --- target_chains/sui/contracts/Move.toml | 2 +- .../sui/contracts/sources/governance/governance.move | 9 +++++++++ target_chains/sui/contracts/sources/state.move | 3 --- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index bf2f7dcc6b..2b243e9f06 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -10,7 +10,7 @@ rev = "3a70c4374090b020b95465787f3220a95d8ab0ba" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" subdir = "sui/wormhole" -rev = "sui/integration_v2" +rev = "sui/mainnet" [addresses] pyth = "0x250" diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index da5cb22a71..c494439bcb 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -16,6 +16,7 @@ module pyth::governance { const E_INVALID_GOVERNANCE_ACTION: u64 = 0; const E_MUST_USE_CONTRACT_UPGRADE_MODULE_TO_DO_UPGRADES: u64 = 1; + const E_CANNOT_EXECUTE_GOVERNANCE_ACTION_WITH_OLD_SEQUENCE_NUMBER: u64 = 2; /// Execute a governance instruction other than contract upgrade, which is /// handled separately in the contract_upgrade.move module. @@ -27,6 +28,14 @@ module pyth::governance { // This capability ensures that the current build version is used. let latest_only = state::assert_latest_only(pyth_state); + // Get the sequence number of the governance VAA that was used to + // generate the receipt. + let sequence = governance_message::sequence(&receipt); + + // Governance actions on Pyth must be executed in order! + assert!(sequence > state::get_last_executed_governance_sequence(pyth_state), + E_CANNOT_EXECUTE_GOVERNANCE_ACTION_WITH_OLD_SEQUENCE_NUMBER); + // governance_message::take_payload takes care of replay protection. let payload = governance_message::take_payload( diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index ffb0eeafe8..a78b101eb3 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -34,7 +34,6 @@ module pyth::state { const E_INVALID_BUILD_DIGEST: u64 = 0; /// Specified version does not match this build's version. const E_VERSION_MISMATCH: u64 = 1; - const E_SET_GOVERNANCE_DATA_SOURCE_SEQUENCE_NUMBERS_NON_INCREASING: u64 = 2; /// Sui's chain ID is hard-coded to one value. const CHAIN_ID: u16 = 21; @@ -273,8 +272,6 @@ module pyth::state { } public(friend) fun set_last_executed_governance_sequence(_: &LatestOnly, s: &mut State, sequence: u64) { - let prev_sequence = get_last_executed_governance_sequence(s); - assert!(sequence>=prev_sequence, E_SET_GOVERNANCE_DATA_SOURCE_SEQUENCE_NUMBERS_NON_INCREASING); s.last_executed_governance_sequence = sequence; } From b76e1df533694be2667fea5cfac670e13ca98808 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 19:15:55 +0000 Subject: [PATCH 050/140] state::set_last_executed_governance_sequence --- .../sui/contracts/sources/governance/governance.move | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index c494439bcb..e7a393a766 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -7,9 +7,8 @@ module pyth::governance { use pyth::set_data_sources; use pyth::set_stale_price_threshold; use pyth::transfer_fee; - use pyth::state::{State}; + use pyth::state::{Self, State}; use pyth::set_update_fee; - use pyth::state; use pyth::governance_witness::{GovernanceWitness}; use wormhole::governance_message::{Self, DecreeReceipt}; @@ -32,10 +31,13 @@ module pyth::governance { // generate the receipt. let sequence = governance_message::sequence(&receipt); - // Governance actions on Pyth must be executed in order! + // Require that new sequence number is greater than last executed sequence number. assert!(sequence > state::get_last_executed_governance_sequence(pyth_state), E_CANNOT_EXECUTE_GOVERNANCE_ACTION_WITH_OLD_SEQUENCE_NUMBER); + // Update latest executed sequence number to current one. + state::set_last_executed_governance_sequence(&latest_only, pyth_state, sequence); + // governance_message::take_payload takes care of replay protection. let payload = governance_message::take_payload( From 4812cee1578832afa9bd37777e8e7dcfd5dbf7ec Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 19:16:41 +0000 Subject: [PATCH 051/140] rename error --- .../sui/contracts/sources/governance/governance.move | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index e7a393a766..e38759951a 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -15,7 +15,7 @@ module pyth::governance { const E_INVALID_GOVERNANCE_ACTION: u64 = 0; const E_MUST_USE_CONTRACT_UPGRADE_MODULE_TO_DO_UPGRADES: u64 = 1; - const E_CANNOT_EXECUTE_GOVERNANCE_ACTION_WITH_OLD_SEQUENCE_NUMBER: u64 = 2; + const E_CANNOT_EXECUTE_GOVERNANCE_ACTION_WITH_OBSOLETE_SEQUENCE_NUMBER: u64 = 2; /// Execute a governance instruction other than contract upgrade, which is /// handled separately in the contract_upgrade.move module. @@ -33,7 +33,7 @@ module pyth::governance { // Require that new sequence number is greater than last executed sequence number. assert!(sequence > state::get_last_executed_governance_sequence(pyth_state), - E_CANNOT_EXECUTE_GOVERNANCE_ACTION_WITH_OLD_SEQUENCE_NUMBER); + E_CANNOT_EXECUTE_GOVERNANCE_ACTION_WITH_OBSOLETE_SEQUENCE_NUMBER); // Update latest executed sequence number to current one. state::set_last_executed_governance_sequence(&latest_only, pyth_state, sequence); From 15c8708a4bc22abd536d094d737486641d008d53 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 19:39:52 +0000 Subject: [PATCH 052/140] add newline to setup.move --- target_chains/sui/contracts/sources/setup.move | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/setup.move b/target_chains/sui/contracts/sources/setup.move index 7598d46eb1..17fe814531 100644 --- a/target_chains/sui/contracts/sources/setup.move +++ b/target_chains/sui/contracts/sources/setup.move @@ -73,4 +73,4 @@ module pyth::setup { )); } -} \ No newline at end of file +} From 6a502e054a754174791ca7e85a28ef61ebadf912 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 30 Apr 2023 19:50:21 +0000 Subject: [PATCH 053/140] delete space --- target_chains/sui/contracts/sources/setup.move | 1 - 1 file changed, 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/setup.move b/target_chains/sui/contracts/sources/setup.move index 17fe814531..0f0963c231 100644 --- a/target_chains/sui/contracts/sources/setup.move +++ b/target_chains/sui/contracts/sources/setup.move @@ -72,5 +72,4 @@ module pyth::setup { ctx )); } - } From b72b1e452b5b4b11fa16ba9364f5fa3b55911387 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 30 Apr 2023 16:00:45 -0400 Subject: [PATCH 054/140] Update README.md --- target_chains/sui/README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 467670700b..59f4315505 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -37,6 +37,7 @@ Vectorize the `VAA` from the previous step and pass it to `update_price_feeds`. ``` ### 3. `pyth::get_price` +Finally, get the price of the updated price feed in `PriceInfoObject`. ```Rust public fun get_price( state: &PythState, From 00030cefb464967faf8e1e7386c88514167076fe Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 1 May 2023 01:47:38 +0000 Subject: [PATCH 055/140] mark test module as well as some imports #[test_only] so sui move build works --- target_chains/sui/contracts/Move.lock | 6 +++--- target_chains/sui/contracts/Move.toml | 2 +- target_chains/sui/contracts/sources/data_source.move | 1 + target_chains/sui/contracts/sources/deserialize.move | 4 +++- target_chains/sui/contracts/sources/pyth.move | 7 +++++-- target_chains/sui/contracts/sources/state.move | 1 + 6 files changed, 14 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index b892597451..26d5fd72d5 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -10,11 +10,11 @@ dependencies = [ [[move.package]] name = "MoveStdlib" -source = { git = "https://github.com/MystenLabs/sui.git", rev = "81dbcf2b6cab07d623a1012bf31daf658963c765", subdir = "crates/sui-framework/packages/move-stdlib" } +source = { git = "https://github.com/MystenLabs/sui.git", rev = "3a70c4374090b020b95465787f3220a95d8ab0ba", subdir = "crates/sui-framework/packages/move-stdlib" } [[move.package]] name = "Sui" -source = { git = "https://github.com/MystenLabs/sui.git", rev = "81dbcf2b6cab07d623a1012bf31daf658963c765", subdir = "crates/sui-framework/packages/sui-framework" } +source = { git = "https://github.com/MystenLabs/sui.git", rev = "3a70c4374090b020b95465787f3220a95d8ab0ba", subdir = "crates/sui-framework/packages/sui-framework" } dependencies = [ { name = "MoveStdlib" }, @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "sui/integration_v2", subdir = "sui/wormhole" } +source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "sui/mainnet", subdir = "sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 2b243e9f06..91b314fffc 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -14,4 +14,4 @@ rev = "sui/mainnet" [addresses] pyth = "0x250" -wormhole = "0x200" +wormhole = "0x200" \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/data_source.move b/target_chains/sui/contracts/sources/data_source.move index ee09932f3e..82c9161143 100644 --- a/target_chains/sui/contracts/sources/data_source.move +++ b/target_chains/sui/contracts/sources/data_source.move @@ -11,6 +11,7 @@ module pyth::data_source { friend pyth::set_data_sources; friend pyth::pyth; friend pyth::set_governance_data_source; + #[test_only] friend pyth::pyth_tests; const KEY: vector = b"data_sources"; diff --git a/target_chains/sui/contracts/sources/deserialize.move b/target_chains/sui/contracts/sources/deserialize.move index d17ddce45a..310107d6ea 100644 --- a/target_chains/sui/contracts/sources/deserialize.move +++ b/target_chains/sui/contracts/sources/deserialize.move @@ -1,7 +1,9 @@ module pyth::deserialize { use wormhole::bytes::{Self}; - use wormhole::cursor::{take_rest, Cursor}; + use wormhole::cursor::{Cursor}; use pyth::i64::{Self, I64}; + #[test_only] + use wormhole::cursor::{take_rest}; #[test_only] use wormhole::cursor::{Self}; diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index e85806d7a6..b26a61fad8 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -29,6 +29,7 @@ module pyth::pyth { const E_INVALID_PUBLISH_TIMES_LENGTH: u64 = 5; const E_NO_FRESH_DATA: u64 = 6; + #[test_only] friend pyth::pyth_tests; /// Call init_and_share_state with deployer cap to initialize @@ -386,6 +387,7 @@ module pyth::pyth { } } +#[test_only] module pyth::pyth_tests{ use std::vector::{Self}; @@ -422,10 +424,11 @@ module pyth::pyth_tests{ const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; fun get_verified_test_vaas(worm_state: &WormState, clock: &Clock): vector { + let test_vaas_: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; let verified_vaas_reversed = vector::empty(); - let test_vaas = TEST_VAAS; + let test_vaas = test_vaas_; let i = 0; - while (i < vector::length(&TEST_VAAS)) { + while (i < vector::length(&test_vaas_)) { let cur_test_vaa = vector::pop_back(&mut test_vaas); let verified_vaa = vaa::parse_and_verify(worm_state, cur_test_vaa, clock); vector::push_back(&mut verified_vaas_reversed, verified_vaa); diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index a78b101eb3..a1e5d92b7c 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -18,6 +18,7 @@ module pyth::state { use wormhole::external_address::{ExternalAddress}; friend pyth::pyth; + #[test_only] friend pyth::pyth_tests; friend pyth::governance_action; friend pyth::set_update_fee; From b3d6eb9ec528177d2031ae119d8f4ded99e32f02 Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 1 May 2023 04:22:34 +0000 Subject: [PATCH 056/140] scripts for Pyth contract testing and deployment remove required_version.move, as it is no longer being used for access control make init_and_share_state a public(friend) function --- target_chains/sui/contracts/Move.lock | 2 +- target_chains/sui/contracts/Move.toml | 8 +- .../contracts/sources/required_version.move | 241 - .../sui/contracts/sources/setup.move | 6 +- .../sui/contracts/sui.log.2023-05-01 | 771 ++ target_chains/sui/scripts/Makefile | 11 + target_chains/sui/scripts/init_pyth.ts | 97 + target_chains/sui/scripts/package-lock.json | 9783 +++++++++++++++++ target_chains/sui/scripts/package.json | 23 + target_chains/sui/scripts/tsconfig.json | 12 + 10 files changed, 10706 insertions(+), 248 deletions(-) delete mode 100644 target_chains/sui/contracts/sources/required_version.move create mode 100644 target_chains/sui/contracts/sui.log.2023-05-01 create mode 100644 target_chains/sui/scripts/Makefile create mode 100644 target_chains/sui/scripts/init_pyth.ts create mode 100644 target_chains/sui/scripts/package-lock.json create mode 100644 target_chains/sui/scripts/package.json create mode 100644 target_chains/sui/scripts/tsconfig.json diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index 26d5fd72d5..f1cd2334a9 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "sui/mainnet", subdir = "sui/wormhole" } +source = { local = "../../../../wormhole/sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 91b314fffc..7d1622133c 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,10 +8,8 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "3a70c4374090b020b95465787f3220a95d8ab0ba" [dependencies.Wormhole] -git = "https://github.com/wormhole-foundation/wormhole.git" -subdir = "sui/wormhole" -rev = "sui/mainnet" +local = "../../../../wormhole/sui/wormhole" [addresses] -pyth = "0x250" -wormhole = "0x200" \ No newline at end of file +pyth = "0x0" +wormhole = "0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c" \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/required_version.move b/target_chains/sui/contracts/sources/required_version.move deleted file mode 100644 index 4528c5d076..0000000000 --- a/target_chains/sui/contracts/sources/required_version.move +++ /dev/null @@ -1,241 +0,0 @@ -// SPDX-License-Identifier: Apache 2 - -/// Note: This module is based on the required_version module -/// from the Sui Wormhole package: -/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/resources/required_version.move - -/// This module implements a mechanism for version control. While keeping track -/// of the latest version of a package build, `RequiredVersion` manages the -/// minimum required version number for any method in that package. For any -/// upgrade where a particular method can have backward compatibility, the -/// minimum version would not have to change (because the method should work the -/// same way with the previous version or current version). -/// -/// If there happens to be a breaking change for a particular method, this -/// module can force that the method's minimum requirement be the latest build. -/// If a previous build were used, the method would abort if a check is in place -/// with `RequiredVersion`. -/// -/// There is no magic behind the way ths module works. `RequiredVersion` is -/// intended to live in a package's shared object that gets passed into its -/// methods (e.g. pyth's `State` object). -module pyth::required_version { - use sui::dynamic_field::{Self as field}; - use sui::object::{Self, UID}; - use sui::package::{Self, UpgradeCap}; - use sui::tx_context::{TxContext}; - - /// Build version passed does not meet method's minimum required version. - const E_OUTDATED_VERSION: u64 = 0; - - /// Container to keep track of latest build version. Dynamic fields are - /// associated with its `id`. - struct RequiredVersion has store { - id: UID, - latest_version: u64 - } - - struct Key has store, drop, copy {} - - /// Create new `RequiredVersion` with a configured starting version. - public fun new(version: u64, ctx: &mut TxContext): RequiredVersion { - RequiredVersion { - id: object::new(ctx), - latest_version: version - } - } - - /// Retrieve latest build version. - public fun current(self: &RequiredVersion): u64 { - self.latest_version - } - - /// Add specific method handling via custom `MethodType`. At the time a - /// method is added, the minimum build version associated with this method - /// by default is the latest version. - public fun add(self: &mut RequiredVersion) { - field::add(&mut self.id, Key {}, self.latest_version) - } - - /// This method will abort if the version for a particular `MethodType` is - /// not up-to-date with the version of the current build. - /// - /// For example, if the minimum requirement for `foobar` module (with an - /// appropriately named `MethodType` like `FooBar`) is `1` and the current - /// implementation version is `2`, this method will succeed because the - /// build meets the minimum required version of `1` in order for `foobar` to - /// work. So if someone were to use an older build like version `1`, this - /// method will succeed. - /// - /// But if `check_minimum_requirement` were invoked for `foobar` when the - /// minimum requirement is `2` and the current build is only version `1`, - /// then this method will abort because the build does not meet the minimum - /// version requirement for `foobar`. - /// - /// This method also assumes that the `MethodType` being checked for is - /// already a dynamic field (using `add`) during initialization. - public fun check_minimum_requirement( - self: &RequiredVersion, - build_version: u64 - ) { - assert!( - build_version >= minimum_for(self), - E_OUTDATED_VERSION - ); - } - - /// At `commit_upgrade`, use this method to update the tracker's knowledge - /// of the latest upgrade (build) version, which is obtained from the - /// `UpgradeCap` in `sui::package`. - public fun update_latest( - self: &mut RequiredVersion, - upgrade_cap: &UpgradeCap - ) { - self.latest_version = package::version(upgrade_cap); - } - - /// Once the global version is updated via `commit_upgrade` and there is a - /// particular method that has a breaking change, use this method to uptick - /// that method's minimum required version to the latest. - public fun require_current_version(self: &mut RequiredVersion) { - let min_version = field::borrow_mut(&mut self.id, Key {}); - *min_version = self.latest_version; - } - - /// Retrieve the minimum required version for a particular method (via - /// `MethodType`). - public fun minimum_for(self: &RequiredVersion): u64 { - *field::borrow(&self.id, Key {}) - } - - #[test_only] - public fun set_required_version( - self: &mut RequiredVersion, - version: u64 - ) { - *field::borrow_mut(&mut self.id, Key {}) = version; - } - - #[test_only] - public fun destroy(req: RequiredVersion) { - let RequiredVersion { id, latest_version: _} = req; - object::delete(id); - } -} - -#[test_only] -module pyth::required_version_test { - use sui::hash::{keccak256}; - use sui::object::{Self}; - use sui::package::{Self}; - use sui::tx_context::{Self}; - - use pyth::required_version::{Self}; - - struct SomeMethod {} - struct AnotherMethod {} - - #[test] - public fun test_check_minimum_requirement() { - let ctx = &mut tx_context::dummy(); - - let version = 1; - let req = required_version::new(version, ctx); - assert!(required_version::current(&req) == version, 0); - - required_version::add(&mut req); - assert!(required_version::minimum_for(&req) == version, 0); - - // Should not abort here. - required_version::check_minimum_requirement(&req, version); - - // And should not abort if the version is anything greater than the - // current. - let new_version = version + 1; - required_version::check_minimum_requirement( - &req, - new_version - ); - - // Uptick based on new upgrade. - let upgrade_cap = package::test_publish( - object::id_from_address(@pyth), - ctx - ); - let digest = keccak256(&x"DEADBEEF"); - let policy = package::upgrade_policy(&upgrade_cap); - let upgrade_ticket = - package::authorize_upgrade(&mut upgrade_cap, policy, digest); - let upgrade_receipt = package::test_upgrade(upgrade_ticket); - package::commit_upgrade(&mut upgrade_cap, upgrade_receipt); - assert!(package::version(&upgrade_cap) == new_version, 0); - - // Update to the latest version. - required_version::update_latest(&mut req, &upgrade_cap); - assert!(required_version::current(&req) == new_version, 0); - - // Should still not abort here. - required_version::check_minimum_requirement( - &req, - new_version - ); - - // Require new version for `SomeMethod` and show that - // `check_minimum_requirement` still succeeds. - required_version::require_current_version(&mut req); - assert!( - required_version::minimum_for(&req) == new_version, - 0 - ); - required_version::check_minimum_requirement( - &req, - new_version - ); - - // If another method gets added to the mix, it should automatically meet - // the minimum requirement because its version will be the latest. - required_version::add(&mut req); - assert!( - required_version::minimum_for(&req) == new_version, - 0 - ); - required_version::check_minimum_requirement( - &req, - new_version - ); - - // Clean up. - package::make_immutable(upgrade_cap); - required_version::destroy(req); - } - - #[test] - #[expected_failure(abort_code = required_version::E_OUTDATED_VERSION)] - public fun test_cannot_check_minimum_requirement_with_outdated_version() { - let ctx = &mut tx_context::dummy(); - - let version = 1; - let req = required_version::new(version, ctx); - assert!(required_version::current(&req) == version, 0); - - required_version::add(&mut req); - - // Should not abort here. - required_version::check_minimum_requirement(&req, version); - - // Uptick minimum requirement and fail at `check_minimum_requirement`. - let new_version = 10; - required_version::set_required_version( - &mut req, - new_version - ); - let old_version = new_version - 1; - required_version::check_minimum_requirement( - &req, - old_version - ); - - // Clean up. - required_version::destroy(req); - } -} diff --git a/target_chains/sui/contracts/sources/setup.move b/target_chains/sui/contracts/sources/setup.move index 0f0963c231..28eadf9715 100644 --- a/target_chains/sui/contracts/sources/setup.move +++ b/target_chains/sui/contracts/sources/setup.move @@ -12,6 +12,10 @@ module pyth::setup { /// Build version for setup must only be `1`. const E_INVALID_BUILD_VERSION: u64 = 1; + friend pyth::pyth; + #[test_only] + friend pyth::pyth_tests; + /// Capability created at `init`, which will be destroyed once /// `init_and_share_state` is called. This ensures only the deployer can /// create the shared `State`. @@ -42,7 +46,7 @@ module pyth::setup { /// Only the owner of the `DeployerCap` can call this method. This /// method destroys the capability and shares the `State` object. - public fun init_and_share_state( + public(friend) fun init_and_share_state( deployer: DeployerCap, upgrade_cap: UpgradeCap, stale_price_threshold: u64, diff --git a/target_chains/sui/contracts/sui.log.2023-05-01 b/target_chains/sui/contracts/sui.log.2023-05-01 new file mode 100644 index 0000000000..cc37efdce3 --- /dev/null +++ b/target_chains/sui/contracts/sui.log.2023-05-01 @@ -0,0 +1,771 @@ +2023-05-01T01:51:07.541730Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T01:51:07.541760Z INFO sui::client_commands: AWXBF9K6HkbMxzkpDUbxyrcETuZBg6dSQBP5yvdBabUS +2023-05-01T01:51:07.541765Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T01:51:07.541771Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 96, 229, 125, 251, 42, 203, 86, 74, 246, 93, 157, 233, 202, 103, 245, 165, 150, 141, 229, 46, 70, 210, 254, 208, 92, 67, 177, 221, 231, 244, 189, 247, 191, 6, 174, 215, 180, 176, 157, 139, 87, 86, 13, 34, 117, 177, 218, 5, 27, 23, 122, 42, 66, 233, 35, 214, 55, 52, 178, 61, 53, 111, 214, 8, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T01:51:07.541777Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T01:51:07.541780Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T01:51:07.541784Z INFO sui::client_commands: Commands: [ +2023-05-01T01:51:07.541787Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T01:51:07.541791Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T01:51:07.541794Z INFO sui::client_commands: ] +2023-05-01T01:51:07.541798Z INFO sui::client_commands: +2023-05-01T01:51:07.541806Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T01:51:07.541809Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x1, digest: ck51pWSdh5bQrANDFq2xeLhdUqdjEDrGyUMZNuWAiSw +2023-05-01T01:51:07.541814Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T01:51:07.541816Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T01:51:07.541820Z INFO sui::client_commands: Gas Budget: 20000 +2023-05-01T01:51:07.541823Z INFO sui::client_commands: +2023-05-01T01:51:07.541825Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T01:51:07.541833Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T01:51:07.541837Z INFO sui::client_commands: Mutated Objects: +2023-05-01T01:51:07.541841Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T01:51:07.541844Z INFO sui::client_commands: +2023-05-01T01:51:07.541847Z INFO sui::client_commands: ----- Events ---- +2023-05-01T01:51:07.541851Z INFO sui::client_commands: Array [] +2023-05-01T01:51:07.541853Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T01:51:07.541857Z INFO sui::client_commands: Array [ +2023-05-01T01:51:07.541861Z INFO sui::client_commands: Object { +2023-05-01T01:51:07.541869Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T01:51:07.541873Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T01:51:07.541879Z INFO sui::client_commands: "owner": Object { +2023-05-01T01:51:07.541882Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T01:51:07.541885Z INFO sui::client_commands: }, +2023-05-01T01:51:07.541889Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T01:51:07.541891Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T01:51:07.541902Z INFO sui::client_commands: "version": String("2"), +2023-05-01T01:51:07.541909Z INFO sui::client_commands: "previousVersion": String("1"), +2023-05-01T01:51:07.541912Z INFO sui::client_commands: "digest": String("5qSVR2tSV9drHp1F1ampanM2e2eAPbD5smuQ4Q7pMSvh"), +2023-05-01T01:51:07.541918Z INFO sui::client_commands: }, +2023-05-01T01:51:07.541922Z INFO sui::client_commands: ] +2023-05-01T01:51:07.541928Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T01:51:07.541930Z INFO sui::client_commands: Array [ +2023-05-01T01:51:07.541933Z INFO sui::client_commands: Object { +2023-05-01T01:51:07.541946Z INFO sui::client_commands: "owner": Object { +2023-05-01T01:51:07.541951Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T01:51:07.541957Z INFO sui::client_commands: }, +2023-05-01T01:51:07.541963Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T01:51:07.541968Z INFO sui::client_commands: "amount": String("-20000"), +2023-05-01T01:51:07.541974Z INFO sui::client_commands: }, +2023-05-01T01:51:07.541980Z INFO sui::client_commands: ] +2023-05-01T01:51:14.755737Z INFO sui::client_commands: Object ID | Version | Digest | Owner Type | Object Type +2023-05-01T01:51:14.755765Z INFO sui::client_commands: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- +2023-05-01T01:51:14.755769Z INFO sui::client_commands: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 | 2 | R9dytHEvUd/jiLNkqWzdMqNiCsde8yNdNgobQrmc1b4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T01:51:14.755773Z INFO sui::client_commands: 0x7d66ddfb579e127068204f18d2f6dd6d0c2499a1e23d15d3254845b960dd2d1c | 1 | je104t5qiXBpAaFDHVT8cq5ylh7dLuzdl3Tqu8e+1Mo= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T01:51:14.755777Z INFO sui::client_commands: 0xc512b676e6af8191806a7ee84fcef6a65af1510ae1910229352444e930bc05f4 | 1 | 8odt34bwBxirv4pauIk06EVQ2dVxXvgGDq6FhKNKbhQ= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T01:51:14.755781Z INFO sui::client_commands: 0xee979d4ef0f6c546aa0f83fe77fa1c5de325fe04a011db7408347467ad8143e1 | 1 | g1aeRrWpDWjmXb0DflWcbgR+/9dzzffuNSDHHjwwYmI= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T01:51:14.755795Z INFO sui::client_commands: 0xf9c0995266ab5473c748f7fa7637c80dc26e4bbe0fdaf5b8df629f6fccfb30ea | 1 | /x0784SwC6C+vl9/xl9T5J4ywkIeNr51ApoE4TV04m4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T01:51:14.755799Z INFO sui::client_commands: Showing 5 results. +2023-05-01T01:51:30.899774Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T01:51:30.899812Z INFO sui::client_commands: CRUgnujQEUVcepd21v7pLYLKXjJWFc9X9Vv3hmA1qVMR +2023-05-01T01:51:30.899816Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T01:51:30.899827Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 239, 252, 101, 58, 125, 120, 39, 176, 218, 155, 183, 75, 66, 123, 28, 167, 190, 114, 236, 148, 8, 120, 0, 108, 146, 45, 255, 85, 66, 162, 7, 119, 26, 73, 58, 182, 189, 162, 34, 177, 42, 17, 236, 99, 231, 104, 130, 20, 165, 122, 109, 131, 234, 165, 187, 49, 217, 17, 2, 190, 234, 197, 26, 1, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T01:51:30.899835Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T01:51:30.899838Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T01:51:30.899842Z INFO sui::client_commands: Commands: [ +2023-05-01T01:51:30.899851Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T01:51:30.899858Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T01:51:30.899862Z INFO sui::client_commands: ] +2023-05-01T01:51:30.899866Z INFO sui::client_commands: +2023-05-01T01:51:30.899876Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T01:51:30.899880Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x2, digest: 5qSVR2tSV9drHp1F1ampanM2e2eAPbD5smuQ4Q7pMSvh +2023-05-01T01:51:30.899883Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T01:51:30.899886Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T01:51:30.899891Z INFO sui::client_commands: Gas Budget: 2000 +2023-05-01T01:51:30.899894Z INFO sui::client_commands: +2023-05-01T01:51:30.899898Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T01:51:30.899901Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T01:51:30.899904Z INFO sui::client_commands: Mutated Objects: +2023-05-01T01:51:30.899909Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T01:51:30.899911Z INFO sui::client_commands: +2023-05-01T01:51:30.899918Z INFO sui::client_commands: ----- Events ---- +2023-05-01T01:51:30.899922Z INFO sui::client_commands: Array [] +2023-05-01T01:51:30.899925Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T01:51:30.899929Z INFO sui::client_commands: Array [ +2023-05-01T01:51:30.899933Z INFO sui::client_commands: Object { +2023-05-01T01:51:30.899940Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T01:51:30.899944Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T01:51:30.899948Z INFO sui::client_commands: "owner": Object { +2023-05-01T01:51:30.899952Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T01:51:30.899955Z INFO sui::client_commands: }, +2023-05-01T01:51:30.899960Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T01:51:30.899964Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T01:51:30.899968Z INFO sui::client_commands: "version": String("3"), +2023-05-01T01:51:30.899971Z INFO sui::client_commands: "previousVersion": String("2"), +2023-05-01T01:51:30.899978Z INFO sui::client_commands: "digest": String("C6dqeQ1igC4wJtXte1fpbjqcSM3yXEioh9ndL2danVRe"), +2023-05-01T01:51:30.899981Z INFO sui::client_commands: }, +2023-05-01T01:51:30.899984Z INFO sui::client_commands: ] +2023-05-01T01:51:30.899988Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T01:51:30.899995Z INFO sui::client_commands: Array [ +2023-05-01T01:51:30.899998Z INFO sui::client_commands: Object { +2023-05-01T01:51:30.900001Z INFO sui::client_commands: "owner": Object { +2023-05-01T01:51:30.900010Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T01:51:30.900015Z INFO sui::client_commands: }, +2023-05-01T01:51:30.900021Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T01:51:30.900027Z INFO sui::client_commands: "amount": String("-2000"), +2023-05-01T01:51:30.900035Z INFO sui::client_commands: }, +2023-05-01T01:51:30.900042Z INFO sui::client_commands: ] +2023-05-01T02:46:29.568838Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:46:29.568872Z INFO sui::client_commands: CXG81uSCsGxksQwmoLH8s8cs7hBZ94vjZXGjmhGaFv3g +2023-05-01T02:46:29.568878Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:46:29.568884Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 144, 69, 145, 199, 122, 30, 214, 81, 65, 92, 27, 204, 249, 169, 180, 38, 239, 68, 23, 117, 56, 131, 156, 129, 243, 190, 190, 38, 255, 8, 221, 201, 140, 102, 166, 218, 78, 51, 180, 110, 175, 209, 248, 151, 213, 14, 182, 109, 65, 208, 198, 79, 226, 68, 68, 198, 73, 196, 162, 35, 26, 176, 121, 10, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:46:29.568888Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:46:29.568892Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:46:29.568904Z INFO sui::client_commands: Commands: [ +2023-05-01T02:46:29.568908Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:46:29.568910Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:46:29.568914Z INFO sui::client_commands: ] +2023-05-01T02:46:29.568919Z INFO sui::client_commands: +2023-05-01T02:46:29.568924Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:46:29.568939Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x3, digest: C6dqeQ1igC4wJtXte1fpbjqcSM3yXEioh9ndL2danVRe +2023-05-01T02:46:29.568946Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:46:29.568949Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:46:29.568952Z INFO sui::client_commands: Gas Budget: 2000 +2023-05-01T02:46:29.568956Z INFO sui::client_commands: +2023-05-01T02:46:29.568960Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:46:29.568965Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T02:46:29.568970Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:46:29.568974Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:46:29.568977Z INFO sui::client_commands: +2023-05-01T02:46:29.568984Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:46:29.568987Z INFO sui::client_commands: Array [] +2023-05-01T02:46:29.568994Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:46:29.569000Z INFO sui::client_commands: Array [ +2023-05-01T02:46:29.569008Z INFO sui::client_commands: Object { +2023-05-01T02:46:29.569016Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:46:29.569022Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:46:29.569028Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:46:29.569031Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:46:29.569055Z INFO sui::client_commands: }, +2023-05-01T02:46:29.569066Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:46:29.569070Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:46:29.569077Z INFO sui::client_commands: "version": String("4"), +2023-05-01T02:46:29.569085Z INFO sui::client_commands: "previousVersion": String("3"), +2023-05-01T02:46:29.569089Z INFO sui::client_commands: "digest": String("BCcjJxoXsXnD7co2Lj9BoAE1RtXc6PQUUn5SXi993isa"), +2023-05-01T02:46:29.569095Z INFO sui::client_commands: }, +2023-05-01T02:46:29.569100Z INFO sui::client_commands: ] +2023-05-01T02:46:29.569106Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:46:29.569112Z INFO sui::client_commands: Array [ +2023-05-01T02:46:29.569120Z INFO sui::client_commands: Object { +2023-05-01T02:46:29.569127Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:46:29.569133Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:46:29.569139Z INFO sui::client_commands: }, +2023-05-01T02:46:29.569151Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:46:29.569158Z INFO sui::client_commands: "amount": String("-2000"), +2023-05-01T02:46:29.569163Z INFO sui::client_commands: }, +2023-05-01T02:46:29.569170Z INFO sui::client_commands: ] +2023-05-01T02:46:53.596884Z INFO sui::client_commands: Object ID | Version | Digest | Owner Type | Object Type +2023-05-01T02:46:53.596915Z INFO sui::client_commands: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- +2023-05-01T02:46:53.596921Z INFO sui::client_commands: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 | 4 | l46oWUdeuHKv0gm/+s+MPtYHHfXh+31wuM0Z6tTxCEk= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:46:53.596926Z INFO sui::client_commands: 0x7d66ddfb579e127068204f18d2f6dd6d0c2499a1e23d15d3254845b960dd2d1c | 1 | je104t5qiXBpAaFDHVT8cq5ylh7dLuzdl3Tqu8e+1Mo= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:46:53.596930Z INFO sui::client_commands: 0xc512b676e6af8191806a7ee84fcef6a65af1510ae1910229352444e930bc05f4 | 1 | 8odt34bwBxirv4pauIk06EVQ2dVxXvgGDq6FhKNKbhQ= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:46:53.596935Z INFO sui::client_commands: 0xee979d4ef0f6c546aa0f83fe77fa1c5de325fe04a011db7408347467ad8143e1 | 1 | g1aeRrWpDWjmXb0DflWcbgR+/9dzzffuNSDHHjwwYmI= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:46:53.596938Z INFO sui::client_commands: 0xf9c0995266ab5473c748f7fa7637c80dc26e4bbe0fdaf5b8df629f6fccfb30ea | 1 | /x0784SwC6C+vl9/xl9T5J4ywkIeNr51ApoE4TV04m4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:46:53.596942Z INFO sui::client_commands: Showing 5 results. +2023-05-01T02:46:59.709340Z INFO sui::client_commands: Showing 5 results. +2023-05-01T02:46:59.709385Z INFO sui::client_commands: 0x41ebfbbf39dbc5a281839d5778e01025138dd133095d66221de5b0e31416aa76 +2023-05-01T02:46:59.709389Z INFO sui::client_commands: 0x42ee1baa8f38d0a4d9ba84bfedecbc876bdc6ae7c58833fc5f7548adf5058636 +2023-05-01T02:46:59.709392Z INFO sui::client_commands: 0x756c559cb861c20dbe9d20595a400283feffd7c88c78cf34ec075d227e66e3a2 +2023-05-01T02:46:59.709395Z INFO sui::client_commands: 0x9a80bf7f43076a563121a2fdd3f6a84ecc30b5476b4e12ca075026d1d8d5b7a8 +2023-05-01T02:46:59.709403Z INFO sui::client_commands: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 <= +2023-05-01T02:47:28.149146Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:47:28.149184Z INFO sui::client_commands: 67N36nZUAdSehBsS1CPq71iNhcNpussSkz4K4gnxu3KE +2023-05-01T02:47:28.149188Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:47:28.149194Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 178, 89, 103, 81, 174, 235, 218, 208, 4, 22, 225, 187, 125, 110, 167, 212, 52, 138, 50, 147, 91, 127, 244, 250, 249, 131, 152, 165, 211, 70, 134, 77, 23, 255, 42, 26, 174, 104, 124, 203, 57, 132, 182, 27, 48, 249, 167, 105, 6, 148, 199, 166, 46, 117, 107, 226, 182, 68, 38, 36, 29, 166, 13, 0, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:47:28.149199Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:47:28.149202Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:47:28.149216Z INFO sui::client_commands: Commands: [ +2023-05-01T02:47:28.149220Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:47:28.149224Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:47:28.149228Z INFO sui::client_commands: ] +2023-05-01T02:47:28.149231Z INFO sui::client_commands: +2023-05-01T02:47:28.149238Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:47:28.149244Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x4, digest: BCcjJxoXsXnD7co2Lj9BoAE1RtXc6PQUUn5SXi993isa +2023-05-01T02:47:28.149248Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:47:28.149253Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:47:28.149257Z INFO sui::client_commands: Gas Budget: 2000000 +2023-05-01T02:47:28.149263Z INFO sui::client_commands: +2023-05-01T02:47:28.149266Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:47:28.149273Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas in command 0" } +2023-05-01T02:47:28.149279Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:47:28.149285Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:47:28.149291Z INFO sui::client_commands: +2023-05-01T02:47:28.149301Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:47:28.149309Z INFO sui::client_commands: Array [] +2023-05-01T02:47:28.149315Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:47:28.149321Z INFO sui::client_commands: Array [ +2023-05-01T02:47:28.149328Z INFO sui::client_commands: Object { +2023-05-01T02:47:28.149333Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:47:28.149341Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:47:28.149347Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:47:28.149355Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:47:28.149377Z INFO sui::client_commands: }, +2023-05-01T02:47:28.149380Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:47:28.149383Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:47:28.149388Z INFO sui::client_commands: "version": String("5"), +2023-05-01T02:47:28.149391Z INFO sui::client_commands: "previousVersion": String("4"), +2023-05-01T02:47:28.149399Z INFO sui::client_commands: "digest": String("RrvsJoK7LVkvMnkQQKPx8jPQtRvktXA7kQKLkUsm5cX"), +2023-05-01T02:47:28.149402Z INFO sui::client_commands: }, +2023-05-01T02:47:28.149405Z INFO sui::client_commands: ] +2023-05-01T02:47:28.149410Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:47:28.149414Z INFO sui::client_commands: Array [ +2023-05-01T02:47:28.149417Z INFO sui::client_commands: Object { +2023-05-01T02:47:28.149421Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:47:28.149430Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:47:28.149436Z INFO sui::client_commands: }, +2023-05-01T02:47:28.149445Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:47:28.149454Z INFO sui::client_commands: "amount": String("-2000000"), +2023-05-01T02:47:28.149462Z INFO sui::client_commands: }, +2023-05-01T02:47:28.149470Z INFO sui::client_commands: ] +2023-05-01T02:47:34.146057Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:47:34.146096Z INFO sui::client_commands: 9wL8aNX3tch6CVJDms3CjdjPzqyLE6AqyH4PenkhXiyo +2023-05-01T02:47:34.146100Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:47:34.146105Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 123, 94, 235, 156, 181, 99, 126, 34, 45, 61, 134, 124, 98, 184, 53, 79, 20, 50, 251, 234, 61, 49, 215, 63, 96, 60, 78, 91, 147, 83, 34, 80, 240, 143, 233, 109, 227, 33, 155, 130, 130, 123, 193, 241, 138, 147, 174, 218, 191, 250, 227, 108, 145, 162, 155, 122, 139, 176, 245, 57, 109, 27, 216, 14, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:47:34.146111Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:47:34.146114Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:47:34.146117Z INFO sui::client_commands: Commands: [ +2023-05-01T02:47:34.146123Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:47:34.146128Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:47:34.146137Z INFO sui::client_commands: ] +2023-05-01T02:47:34.146140Z INFO sui::client_commands: +2023-05-01T02:47:34.146144Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:47:34.146147Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x5, digest: RrvsJoK7LVkvMnkQQKPx8jPQtRvktXA7kQKLkUsm5cX +2023-05-01T02:47:34.146151Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:47:34.146154Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:47:34.146157Z INFO sui::client_commands: Gas Budget: 20000 +2023-05-01T02:47:34.146161Z INFO sui::client_commands: +2023-05-01T02:47:34.146165Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:47:34.146173Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T02:47:34.146177Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:47:34.146182Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:47:34.146184Z INFO sui::client_commands: +2023-05-01T02:47:34.146188Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:47:34.146191Z INFO sui::client_commands: Array [] +2023-05-01T02:47:34.146204Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:47:34.146215Z INFO sui::client_commands: Array [ +2023-05-01T02:47:34.146220Z INFO sui::client_commands: Object { +2023-05-01T02:47:34.146222Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:47:34.146226Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:47:34.146229Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:47:34.146236Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:47:34.146240Z INFO sui::client_commands: }, +2023-05-01T02:47:34.146247Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:47:34.146252Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:47:34.146255Z INFO sui::client_commands: "version": String("6"), +2023-05-01T02:47:34.146260Z INFO sui::client_commands: "previousVersion": String("5"), +2023-05-01T02:47:34.146263Z INFO sui::client_commands: "digest": String("B9E2UzkJXy19SNwjkAWd9XBHXQbj9Gj1VpdJZ2UvG8HP"), +2023-05-01T02:47:34.146267Z INFO sui::client_commands: }, +2023-05-01T02:47:34.146270Z INFO sui::client_commands: ] +2023-05-01T02:47:34.146279Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:47:34.146286Z INFO sui::client_commands: Array [ +2023-05-01T02:47:34.146289Z INFO sui::client_commands: Object { +2023-05-01T02:47:34.146293Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:47:34.146297Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:47:34.146300Z INFO sui::client_commands: }, +2023-05-01T02:47:34.146304Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:47:34.146312Z INFO sui::client_commands: "amount": String("-20000"), +2023-05-01T02:47:34.146317Z INFO sui::client_commands: }, +2023-05-01T02:47:34.146325Z INFO sui::client_commands: ] +2023-05-01T02:48:46.411692Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0x6]) ----- +2023-05-01T02:48:46.411719Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:48:46.411722Z INFO sui::client_commands: Version: 0x6 +2023-05-01T02:48:46.411725Z INFO sui::client_commands: Storage Rebate: 0 +2023-05-01T02:48:46.411729Z INFO sui::client_commands: Previous Transaction: TransactionDigest(9wL8aNX3tch6CVJDms3CjdjPzqyLE6AqyH4PenkhXiyo) +2023-05-01T02:48:46.411733Z INFO sui::client_commands: ----- Data ----- +2023-05-01T02:48:46.411741Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> +2023-05-01T02:48:46.411744Z INFO sui::client_commands: balance: 29999999997956000 +2023-05-01T02:48:46.411748Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 +2023-05-01T02:49:13.840950Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:49:13.840980Z INFO sui::client_commands: 4wKeoL3EC13n4WDn7xj4jiv27PUCmALmCUpAgt6siE7N +2023-05-01T02:49:13.840984Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:49:13.840989Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 45, 1, 104, 232, 220, 12, 187, 160, 53, 155, 155, 193, 250, 72, 56, 128, 113, 63, 158, 124, 119, 168, 219, 238, 51, 178, 57, 252, 234, 242, 170, 81, 199, 96, 141, 72, 175, 1, 115, 185, 38, 49, 2, 75, 142, 206, 127, 12, 72, 138, 240, 129, 186, 19, 168, 224, 21, 248, 237, 195, 121, 234, 21, 7, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:49:13.841000Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:49:13.841008Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:49:13.841011Z INFO sui::client_commands: Commands: [ +2023-05-01T02:49:13.841017Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:49:13.841025Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:49:13.841031Z INFO sui::client_commands: ] +2023-05-01T02:49:13.841034Z INFO sui::client_commands: +2023-05-01T02:49:13.841038Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:49:13.841042Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x6, digest: B9E2UzkJXy19SNwjkAWd9XBHXQbj9Gj1VpdJZ2UvG8HP +2023-05-01T02:49:13.841047Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:49:13.841050Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:49:13.841054Z INFO sui::client_commands: Gas Budget: 20000 +2023-05-01T02:49:13.841056Z INFO sui::client_commands: +2023-05-01T02:49:13.841059Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:49:13.841066Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T02:49:13.841079Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:49:13.841089Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:49:13.841092Z INFO sui::client_commands: +2023-05-01T02:49:13.841095Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:49:13.841098Z INFO sui::client_commands: Array [] +2023-05-01T02:49:13.841105Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:49:13.841112Z INFO sui::client_commands: Array [ +2023-05-01T02:49:13.841119Z INFO sui::client_commands: Object { +2023-05-01T02:49:13.841123Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:49:13.841128Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:49:13.841138Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:49:13.841146Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:49:13.841151Z INFO sui::client_commands: }, +2023-05-01T02:49:13.841157Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:49:13.841163Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:49:13.841169Z INFO sui::client_commands: "version": String("7"), +2023-05-01T02:49:13.841176Z INFO sui::client_commands: "previousVersion": String("6"), +2023-05-01T02:49:13.841181Z INFO sui::client_commands: "digest": String("CpkQgce3Xydmh1foLRnTfuK5BAjKCPUHzeoAQKk97Lmn"), +2023-05-01T02:49:13.841188Z INFO sui::client_commands: }, +2023-05-01T02:49:13.841195Z INFO sui::client_commands: ] +2023-05-01T02:49:13.841201Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:49:13.841206Z INFO sui::client_commands: Array [ +2023-05-01T02:49:13.841212Z INFO sui::client_commands: Object { +2023-05-01T02:49:13.841217Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:49:13.841223Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:49:13.841231Z INFO sui::client_commands: }, +2023-05-01T02:49:13.841238Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:49:13.841244Z INFO sui::client_commands: "amount": String("-20000"), +2023-05-01T02:49:13.841249Z INFO sui::client_commands: }, +2023-05-01T02:49:13.841255Z INFO sui::client_commands: ] +2023-05-01T02:52:51.789343Z INFO sui::client_commands: Object ID | Version | Digest | Owner Type | Object Type +2023-05-01T02:52:51.789410Z INFO sui::client_commands: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- +2023-05-01T02:52:51.789416Z INFO sui::client_commands: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 | 7 | r6vvqMYd7P6x1JK16/z6at30i+kRSPSwTqVLFiI4XiE= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:52:51.789419Z INFO sui::client_commands: 0x7d66ddfb579e127068204f18d2f6dd6d0c2499a1e23d15d3254845b960dd2d1c | 1 | je104t5qiXBpAaFDHVT8cq5ylh7dLuzdl3Tqu8e+1Mo= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:52:51.789430Z INFO sui::client_commands: 0xc512b676e6af8191806a7ee84fcef6a65af1510ae1910229352444e930bc05f4 | 1 | 8odt34bwBxirv4pauIk06EVQ2dVxXvgGDq6FhKNKbhQ= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:52:51.789435Z INFO sui::client_commands: 0xee979d4ef0f6c546aa0f83fe77fa1c5de325fe04a011db7408347467ad8143e1 | 1 | g1aeRrWpDWjmXb0DflWcbgR+/9dzzffuNSDHHjwwYmI= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:52:51.789441Z INFO sui::client_commands: 0xf9c0995266ab5473c748f7fa7637c80dc26e4bbe0fdaf5b8df629f6fccfb30ea | 1 | /x0784SwC6C+vl9/xl9T5J4ywkIeNr51ApoE4TV04m4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) +2023-05-01T02:52:51.789447Z INFO sui::client_commands: Showing 5 results. +2023-05-01T02:53:05.814101Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0x7]) ----- +2023-05-01T02:53:05.814131Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:53:05.814135Z INFO sui::client_commands: Version: 0x7 +2023-05-01T02:53:05.814139Z INFO sui::client_commands: Storage Rebate: 0 +2023-05-01T02:53:05.814143Z INFO sui::client_commands: Previous Transaction: TransactionDigest(4wKeoL3EC13n4WDn7xj4jiv27PUCmALmCUpAgt6siE7N) +2023-05-01T02:53:05.814148Z INFO sui::client_commands: ----- Data ----- +2023-05-01T02:53:05.814151Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> +2023-05-01T02:53:05.814167Z INFO sui::client_commands: balance: 29999999997936000 +2023-05-01T02:53:05.814171Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 +2023-05-01T02:54:04.831913Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:54:04.831950Z INFO sui::client_commands: BJDg1jALHkyBByhCDHrDBmVgfnDZW7TYFkhRSVcANPTt +2023-05-01T02:54:04.831955Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:54:04.831960Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 222, 3, 87, 124, 173, 252, 155, 99, 93, 206, 226, 223, 123, 110, 254, 220, 176, 169, 121, 62, 208, 107, 136, 98, 253, 232, 233, 176, 55, 154, 224, 21, 92, 181, 227, 207, 6, 5, 39, 162, 43, 214, 197, 191, 253, 82, 50, 117, 254, 246, 249, 71, 175, 193, 48, 180, 232, 149, 195, 3, 33, 78, 89, 10, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:54:04.831965Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:54:04.831968Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:54:04.831972Z INFO sui::client_commands: Commands: [ +2023-05-01T02:54:04.831975Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:54:04.831980Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:54:04.831985Z INFO sui::client_commands: ] +2023-05-01T02:54:04.831988Z INFO sui::client_commands: +2023-05-01T02:54:04.831992Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:04.831996Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x7, digest: CpkQgce3Xydmh1foLRnTfuK5BAjKCPUHzeoAQKk97Lmn +2023-05-01T02:54:04.832000Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:04.832003Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:54:04.832006Z INFO sui::client_commands: Gas Budget: 50000 +2023-05-01T02:54:04.832010Z INFO sui::client_commands: +2023-05-01T02:54:04.832015Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:54:04.832018Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T02:54:04.832022Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:54:04.832025Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:04.832028Z INFO sui::client_commands: +2023-05-01T02:54:04.832032Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:54:04.832034Z INFO sui::client_commands: Array [] +2023-05-01T02:54:04.832040Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:54:04.832045Z INFO sui::client_commands: Array [ +2023-05-01T02:54:04.832049Z INFO sui::client_commands: Object { +2023-05-01T02:54:04.832053Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:54:04.832056Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:04.832060Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:04.832063Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:04.832072Z INFO sui::client_commands: }, +2023-05-01T02:54:04.832080Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:54:04.832084Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:54:04.832088Z INFO sui::client_commands: "version": String("8"), +2023-05-01T02:54:04.832091Z INFO sui::client_commands: "previousVersion": String("7"), +2023-05-01T02:54:04.832095Z INFO sui::client_commands: "digest": String("G8WSFW2oEFuKnqzBFoCb5VvBwkD2EjjW9vCijChewcFc"), +2023-05-01T02:54:04.832097Z INFO sui::client_commands: }, +2023-05-01T02:54:04.832101Z INFO sui::client_commands: ] +2023-05-01T02:54:04.832104Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:54:04.832115Z INFO sui::client_commands: Array [ +2023-05-01T02:54:04.832125Z INFO sui::client_commands: Object { +2023-05-01T02:54:04.832130Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:04.832135Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:04.832139Z INFO sui::client_commands: }, +2023-05-01T02:54:04.832143Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:54:04.832146Z INFO sui::client_commands: "amount": String("-50000"), +2023-05-01T02:54:04.832151Z INFO sui::client_commands: }, +2023-05-01T02:54:04.832156Z INFO sui::client_commands: ] +2023-05-01T02:54:10.784739Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:54:10.784771Z INFO sui::client_commands: iJrLoo4G8aCq4ekN4VUJTqLaYQdP1w8dbzjfWPHwZZy +2023-05-01T02:54:10.784775Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:54:10.784780Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 54, 162, 89, 38, 236, 251, 46, 137, 55, 116, 157, 115, 250, 42, 198, 31, 8, 57, 220, 54, 9, 170, 100, 72, 232, 149, 236, 195, 46, 225, 158, 201, 54, 223, 179, 66, 223, 112, 161, 193, 106, 66, 241, 228, 158, 149, 255, 186, 26, 94, 68, 2, 157, 79, 39, 219, 150, 118, 92, 96, 11, 217, 181, 9, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:54:10.784784Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:54:10.784790Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:54:10.784795Z INFO sui::client_commands: Commands: [ +2023-05-01T02:54:10.784805Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:54:10.784812Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:54:10.784815Z INFO sui::client_commands: ] +2023-05-01T02:54:10.784819Z INFO sui::client_commands: +2023-05-01T02:54:10.784822Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:10.784829Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x8, digest: G8WSFW2oEFuKnqzBFoCb5VvBwkD2EjjW9vCijChewcFc +2023-05-01T02:54:10.784835Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:10.784840Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:54:10.784844Z INFO sui::client_commands: Gas Budget: 100000 +2023-05-01T02:54:10.784851Z INFO sui::client_commands: +2023-05-01T02:54:10.784854Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:54:10.784856Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T02:54:10.784859Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:54:10.784864Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:10.784867Z INFO sui::client_commands: +2023-05-01T02:54:10.784878Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:54:10.784882Z INFO sui::client_commands: Array [] +2023-05-01T02:54:10.784885Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:54:10.784888Z INFO sui::client_commands: Array [ +2023-05-01T02:54:10.784895Z INFO sui::client_commands: Object { +2023-05-01T02:54:10.784901Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:54:10.784907Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:10.784913Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:10.784922Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:10.784929Z INFO sui::client_commands: }, +2023-05-01T02:54:10.784935Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:54:10.784941Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:54:10.784949Z INFO sui::client_commands: "version": String("9"), +2023-05-01T02:54:10.784954Z INFO sui::client_commands: "previousVersion": String("8"), +2023-05-01T02:54:10.784961Z INFO sui::client_commands: "digest": String("99pzdzWfzfxMaSCeybuS1cCaYZM81czeUSB6pWZfkhRG"), +2023-05-01T02:54:10.784966Z INFO sui::client_commands: }, +2023-05-01T02:54:10.784970Z INFO sui::client_commands: ] +2023-05-01T02:54:10.784973Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:54:10.784976Z INFO sui::client_commands: Array [ +2023-05-01T02:54:10.784982Z INFO sui::client_commands: Object { +2023-05-01T02:54:10.784985Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:10.784989Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:10.784995Z INFO sui::client_commands: }, +2023-05-01T02:54:10.784998Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:54:10.785005Z INFO sui::client_commands: "amount": String("-100000"), +2023-05-01T02:54:10.785010Z INFO sui::client_commands: }, +2023-05-01T02:54:10.785017Z INFO sui::client_commands: ] +2023-05-01T02:54:13.594948Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:54:13.594981Z INFO sui::client_commands: 3eYEZj27R4SMkzNEdnwjzAZGEWWgHFaohgCS99i68dN7 +2023-05-01T02:54:13.594986Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:54:13.594992Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 249, 147, 8, 101, 141, 46, 129, 119, 12, 197, 251, 133, 144, 247, 95, 122, 101, 33, 42, 194, 235, 59, 234, 174, 112, 39, 171, 108, 100, 224, 135, 168, 132, 100, 179, 84, 224, 6, 199, 34, 221, 201, 195, 96, 115, 212, 149, 235, 19, 111, 112, 221, 109, 184, 135, 239, 41, 8, 204, 236, 210, 148, 101, 7, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:54:13.594997Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:54:13.595000Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:54:13.595003Z INFO sui::client_commands: Commands: [ +2023-05-01T02:54:13.595007Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:54:13.595011Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:54:13.595015Z INFO sui::client_commands: ] +2023-05-01T02:54:13.595019Z INFO sui::client_commands: +2023-05-01T02:54:13.595023Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:13.595033Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x9, digest: 99pzdzWfzfxMaSCeybuS1cCaYZM81czeUSB6pWZfkhRG +2023-05-01T02:54:13.595040Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:13.595043Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:54:13.595046Z INFO sui::client_commands: Gas Budget: 300000 +2023-05-01T02:54:13.595049Z INFO sui::client_commands: +2023-05-01T02:54:13.595053Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:54:13.595058Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T02:54:13.595062Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:54:13.595067Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:13.595069Z INFO sui::client_commands: +2023-05-01T02:54:13.595073Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:54:13.595081Z INFO sui::client_commands: Array [] +2023-05-01T02:54:13.595090Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:54:13.595098Z INFO sui::client_commands: Array [ +2023-05-01T02:54:13.595104Z INFO sui::client_commands: Object { +2023-05-01T02:54:13.595107Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:54:13.595112Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:13.595119Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:13.595125Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:13.595131Z INFO sui::client_commands: }, +2023-05-01T02:54:13.595136Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:54:13.595144Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:54:13.595151Z INFO sui::client_commands: "version": String("10"), +2023-05-01T02:54:13.595158Z INFO sui::client_commands: "previousVersion": String("9"), +2023-05-01T02:54:13.595163Z INFO sui::client_commands: "digest": String("3zn52QutLmepxTD248MiyhpVYCW1srW9AbFK9VuiVC1a"), +2023-05-01T02:54:13.595169Z INFO sui::client_commands: }, +2023-05-01T02:54:13.595175Z INFO sui::client_commands: ] +2023-05-01T02:54:13.595180Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:54:13.595186Z INFO sui::client_commands: Array [ +2023-05-01T02:54:13.595193Z INFO sui::client_commands: Object { +2023-05-01T02:54:13.595201Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:13.595208Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:13.595211Z INFO sui::client_commands: }, +2023-05-01T02:54:13.595217Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:54:13.595223Z INFO sui::client_commands: "amount": String("-300000"), +2023-05-01T02:54:13.595228Z INFO sui::client_commands: }, +2023-05-01T02:54:13.595235Z INFO sui::client_commands: ] +2023-05-01T02:54:16.131972Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:54:16.132003Z INFO sui::client_commands: 7K4V4SxDPTGJ8wu1KLfUEL8YeqyCQLABZiY3sguHSZLE +2023-05-01T02:54:16.132007Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:54:16.132013Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 227, 44, 247, 140, 87, 242, 197, 155, 86, 92, 143, 226, 222, 75, 131, 27, 177, 134, 209, 110, 120, 95, 27, 133, 187, 64, 245, 201, 76, 68, 127, 198, 47, 108, 98, 0, 170, 59, 107, 94, 25, 45, 145, 65, 103, 64, 141, 75, 147, 131, 120, 236, 67, 223, 174, 21, 189, 16, 184, 82, 98, 190, 41, 8, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:54:16.132023Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:54:16.132027Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:54:16.132031Z INFO sui::client_commands: Commands: [ +2023-05-01T02:54:16.132034Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:54:16.132043Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:54:16.132049Z INFO sui::client_commands: ] +2023-05-01T02:54:16.132052Z INFO sui::client_commands: +2023-05-01T02:54:16.132057Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:16.132063Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xa, digest: 3zn52QutLmepxTD248MiyhpVYCW1srW9AbFK9VuiVC1a +2023-05-01T02:54:16.132066Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:16.132070Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:54:16.132073Z INFO sui::client_commands: Gas Budget: 500000 +2023-05-01T02:54:16.132080Z INFO sui::client_commands: +2023-05-01T02:54:16.132083Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:54:16.132085Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas in command 0" } +2023-05-01T02:54:16.132097Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:54:16.132102Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:16.132104Z INFO sui::client_commands: +2023-05-01T02:54:16.132108Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:54:16.132111Z INFO sui::client_commands: Array [] +2023-05-01T02:54:16.132116Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:54:16.132119Z INFO sui::client_commands: Array [ +2023-05-01T02:54:16.132123Z INFO sui::client_commands: Object { +2023-05-01T02:54:16.132127Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:54:16.132136Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:16.132139Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:16.132143Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:16.132147Z INFO sui::client_commands: }, +2023-05-01T02:54:16.132150Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:54:16.132154Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:54:16.132157Z INFO sui::client_commands: "version": String("11"), +2023-05-01T02:54:16.132162Z INFO sui::client_commands: "previousVersion": String("10"), +2023-05-01T02:54:16.132165Z INFO sui::client_commands: "digest": String("EbuR5U8NS43fdUCa3fpEnQe9RriR5TkLduauJcwD8kwC"), +2023-05-01T02:54:16.132169Z INFO sui::client_commands: }, +2023-05-01T02:54:16.132172Z INFO sui::client_commands: ] +2023-05-01T02:54:16.132176Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:54:16.132178Z INFO sui::client_commands: Array [ +2023-05-01T02:54:16.132181Z INFO sui::client_commands: Object { +2023-05-01T02:54:16.132185Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:16.132195Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:16.132202Z INFO sui::client_commands: }, +2023-05-01T02:54:16.132206Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:54:16.132213Z INFO sui::client_commands: "amount": String("-500000"), +2023-05-01T02:54:16.132216Z INFO sui::client_commands: }, +2023-05-01T02:54:16.132220Z INFO sui::client_commands: ] +2023-05-01T02:54:19.784083Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:54:19.784113Z INFO sui::client_commands: BnPqjrbxUy6PW8x4sHV4nctNn7oFrJ9yRei6hhbzPWHA +2023-05-01T02:54:19.784116Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:54:19.784122Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 46, 65, 167, 200, 90, 213, 86, 244, 152, 106, 0, 175, 217, 122, 11, 34, 148, 119, 88, 133, 13, 134, 49, 21, 147, 68, 174, 146, 102, 89, 29, 32, 156, 34, 148, 226, 82, 39, 188, 111, 95, 73, 126, 110, 138, 113, 112, 231, 65, 146, 23, 2, 183, 51, 148, 230, 153, 92, 57, 141, 204, 198, 9, 6, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:54:19.784132Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:54:19.784137Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:54:19.784139Z INFO sui::client_commands: Commands: [ +2023-05-01T02:54:19.784144Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:54:19.784147Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:54:19.784150Z INFO sui::client_commands: ] +2023-05-01T02:54:19.784153Z INFO sui::client_commands: +2023-05-01T02:54:19.784158Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:19.784163Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xb, digest: EbuR5U8NS43fdUCa3fpEnQe9RriR5TkLduauJcwD8kwC +2023-05-01T02:54:19.784167Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:19.784173Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:54:19.784176Z INFO sui::client_commands: Gas Budget: 1000000 +2023-05-01T02:54:19.784182Z INFO sui::client_commands: +2023-05-01T02:54:19.784189Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:54:19.784192Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas in command 0" } +2023-05-01T02:54:19.784199Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:54:19.784207Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:19.784213Z INFO sui::client_commands: +2023-05-01T02:54:19.784219Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:54:19.784225Z INFO sui::client_commands: Array [] +2023-05-01T02:54:19.784231Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:54:19.784236Z INFO sui::client_commands: Array [ +2023-05-01T02:54:19.784243Z INFO sui::client_commands: Object { +2023-05-01T02:54:19.784250Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:54:19.784262Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:19.784268Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:19.784275Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:19.784280Z INFO sui::client_commands: }, +2023-05-01T02:54:19.784286Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:54:19.784292Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:54:19.784298Z INFO sui::client_commands: "version": String("12"), +2023-05-01T02:54:19.784306Z INFO sui::client_commands: "previousVersion": String("11"), +2023-05-01T02:54:19.784313Z INFO sui::client_commands: "digest": String("7P1M2u8kQqHkfB4XQ5oYZmm3HTN1QpJmsq6E51vdHagj"), +2023-05-01T02:54:19.784319Z INFO sui::client_commands: }, +2023-05-01T02:54:19.784325Z INFO sui::client_commands: ] +2023-05-01T02:54:19.784331Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:54:19.784336Z INFO sui::client_commands: Array [ +2023-05-01T02:54:19.784342Z INFO sui::client_commands: Object { +2023-05-01T02:54:19.784347Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:19.784367Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:19.784370Z INFO sui::client_commands: }, +2023-05-01T02:54:19.784376Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:54:19.784382Z INFO sui::client_commands: "amount": String("-1000000"), +2023-05-01T02:54:19.784388Z INFO sui::client_commands: }, +2023-05-01T02:54:19.784394Z INFO sui::client_commands: ] +2023-05-01T02:54:25.898514Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0xc]) ----- +2023-05-01T02:54:25.898551Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:25.898555Z INFO sui::client_commands: Version: 0xc +2023-05-01T02:54:25.898558Z INFO sui::client_commands: Storage Rebate: 0 +2023-05-01T02:54:25.898561Z INFO sui::client_commands: Previous Transaction: TransactionDigest(BnPqjrbxUy6PW8x4sHV4nctNn7oFrJ9yRei6hhbzPWHA) +2023-05-01T02:54:25.898565Z INFO sui::client_commands: ----- Data ----- +2023-05-01T02:54:25.898567Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> +2023-05-01T02:54:25.898575Z INFO sui::client_commands: balance: 29999999995986000 +2023-05-01T02:54:25.898581Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 +2023-05-01T02:54:31.707537Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:54:31.707572Z INFO sui::client_commands: D8VYE8JAZyfTfMuhn28nyzqWDGmBekTVXvJbk4w2f9Vd +2023-05-01T02:54:31.707577Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:54:31.707586Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 1, 131, 61, 58, 171, 9, 221, 98, 200, 201, 95, 150, 186, 218, 186, 68, 51, 178, 205, 190, 80, 223, 75, 115, 116, 93, 31, 207, 15, 207, 140, 166, 74, 125, 85, 38, 218, 16, 12, 96, 177, 72, 144, 218, 220, 53, 248, 181, 161, 123, 213, 237, 209, 43, 71, 231, 234, 211, 183, 113, 238, 163, 215, 13, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:54:31.707593Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:54:31.707596Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:54:31.707600Z INFO sui::client_commands: Commands: [ +2023-05-01T02:54:31.707603Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:54:31.707610Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:54:31.707614Z INFO sui::client_commands: ] +2023-05-01T02:54:31.707618Z INFO sui::client_commands: +2023-05-01T02:54:31.707622Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:31.707626Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xc, digest: 7P1M2u8kQqHkfB4XQ5oYZmm3HTN1QpJmsq6E51vdHagj +2023-05-01T02:54:31.707630Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:31.707633Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:54:31.707636Z INFO sui::client_commands: Gas Budget: 3000555 +2023-05-01T02:54:31.707639Z INFO sui::client_commands: +2023-05-01T02:54:31.707647Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:54:31.707651Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } +2023-05-01T02:54:31.707655Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:54:31.707659Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:31.707666Z INFO sui::client_commands: +2023-05-01T02:54:31.707672Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:54:31.707675Z INFO sui::client_commands: Array [] +2023-05-01T02:54:31.707679Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:54:31.707687Z INFO sui::client_commands: Array [ +2023-05-01T02:54:31.707693Z INFO sui::client_commands: Object { +2023-05-01T02:54:31.707696Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:54:31.707700Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:31.707708Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:31.707712Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:31.707715Z INFO sui::client_commands: }, +2023-05-01T02:54:31.707733Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:54:31.707737Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:54:31.707740Z INFO sui::client_commands: "version": String("13"), +2023-05-01T02:54:31.707742Z INFO sui::client_commands: "previousVersion": String("12"), +2023-05-01T02:54:31.707745Z INFO sui::client_commands: "digest": String("2fk2CbtzrZrruTcFr3yFERmdk2Y3Zocu7wyeBthvKj34"), +2023-05-01T02:54:31.707748Z INFO sui::client_commands: }, +2023-05-01T02:54:31.707752Z INFO sui::client_commands: ] +2023-05-01T02:54:31.707754Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:54:31.707758Z INFO sui::client_commands: Array [ +2023-05-01T02:54:31.707762Z INFO sui::client_commands: Object { +2023-05-01T02:54:31.707766Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:31.707769Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:31.707773Z INFO sui::client_commands: }, +2023-05-01T02:54:31.707775Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:54:31.707778Z INFO sui::client_commands: "amount": String("-3000555"), +2023-05-01T02:54:31.707786Z INFO sui::client_commands: }, +2023-05-01T02:54:31.707791Z INFO sui::client_commands: ] +2023-05-01T02:54:33.935261Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0xd]) ----- +2023-05-01T02:54:33.935288Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:33.935293Z INFO sui::client_commands: Version: 0xd +2023-05-01T02:54:33.935297Z INFO sui::client_commands: Storage Rebate: 0 +2023-05-01T02:54:33.935300Z INFO sui::client_commands: Previous Transaction: TransactionDigest(D8VYE8JAZyfTfMuhn28nyzqWDGmBekTVXvJbk4w2f9Vd) +2023-05-01T02:54:33.935307Z INFO sui::client_commands: ----- Data ----- +2023-05-01T02:54:33.935310Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> +2023-05-01T02:54:33.935313Z INFO sui::client_commands: balance: 29999999992985445 +2023-05-01T02:54:33.935325Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 +2023-05-01T02:54:45.863061Z INFO sui::client_commands: ----- Transaction Digest ---- +2023-05-01T02:54:45.863104Z INFO sui::client_commands: A7UdQaGapH56Jw6MTtntgKuCrMxYNrdKybpQiKBkYMrh +2023-05-01T02:54:45.863108Z INFO sui::client_commands: ----- Transaction Data ---- +2023-05-01T02:54:45.863120Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 237, 154, 1, 220, 156, 73, 213, 198, 96, 150, 98, 23, 230, 157, 119, 108, 189, 177, 46, 164, 37, 38, 30, 105, 42, 18, 190, 78, 18, 92, 181, 7, 93, 196, 56, 188, 219, 207, 243, 128, 139, 109, 172, 198, 46, 88, 119, 58, 202, 190, 14, 245, 135, 125, 15, 130, 42, 118, 127, 0, 167, 94, 199, 5, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] +2023-05-01T02:54:45.863128Z INFO sui::client_commands: Transaction Kind : Programmable +2023-05-01T02:54:45.863131Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] +2023-05-01T02:54:45.863135Z INFO sui::client_commands: Commands: [ +2023-05-01T02:54:45.863143Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), +2023-05-01T02:54:45.863147Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), +2023-05-01T02:54:45.863150Z INFO sui::client_commands: ] +2023-05-01T02:54:45.863153Z INFO sui::client_commands: +2023-05-01T02:54:45.863158Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:45.863161Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xd, digest: 2fk2CbtzrZrruTcFr3yFERmdk2Y3Zocu7wyeBthvKj34 +2023-05-01T02:54:45.863165Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 +2023-05-01T02:54:45.863169Z INFO sui::client_commands: Gas Price: 1000 +2023-05-01T02:54:45.863177Z INFO sui::client_commands: Gas Budget: 30005550000 +2023-05-01T02:54:45.863181Z INFO sui::client_commands: +2023-05-01T02:54:45.863184Z INFO sui::client_commands: ----- Transaction Effects ---- +2023-05-01T02:54:45.863191Z INFO sui::client_commands: Status : Success +2023-05-01T02:54:45.863193Z INFO sui::client_commands: Created Objects: +2023-05-01T02:54:45.863199Z INFO sui::client_commands: - ID: 0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6 , Owner: Immutable +2023-05-01T02:54:45.863203Z INFO sui::client_commands: - ID: 0x480cb17f5776ef3bdf6d83cca798d8a34f5fba29ae701487b56ce0955af249f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:45.863210Z INFO sui::client_commands: - ID: 0x558bc846ca736cd69ddf6769402c1509f74c41200ecb635f0ec0cd3acf3feeb7 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:45.863218Z INFO sui::client_commands: Mutated Objects: +2023-05-01T02:54:45.863225Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) +2023-05-01T02:54:45.863231Z INFO sui::client_commands: +2023-05-01T02:54:45.863237Z INFO sui::client_commands: ----- Events ---- +2023-05-01T02:54:45.863243Z INFO sui::client_commands: Array [] +2023-05-01T02:54:45.863249Z INFO sui::client_commands: ----- Object changes ---- +2023-05-01T02:54:45.863255Z INFO sui::client_commands: Array [ +2023-05-01T02:54:45.863261Z INFO sui::client_commands: Object { +2023-05-01T02:54:45.863269Z INFO sui::client_commands: "type": String("mutated"), +2023-05-01T02:54:45.863278Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:45.863284Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:45.863290Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:45.863296Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863302Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), +2023-05-01T02:54:45.863308Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), +2023-05-01T02:54:45.863315Z INFO sui::client_commands: "version": String("14"), +2023-05-01T02:54:45.863323Z INFO sui::client_commands: "previousVersion": String("13"), +2023-05-01T02:54:45.863330Z INFO sui::client_commands: "digest": String("CoSdCwTatHfc2taSjQCtgQk6miYzKPJqnwcxpeJLWTQG"), +2023-05-01T02:54:45.863336Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863342Z INFO sui::client_commands: Object { +2023-05-01T02:54:45.863348Z INFO sui::client_commands: "type": String("published"), +2023-05-01T02:54:45.863354Z INFO sui::client_commands: "packageId": String("0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6"), +2023-05-01T02:54:45.863369Z INFO sui::client_commands: "version": String("1"), +2023-05-01T02:54:45.863379Z INFO sui::client_commands: "digest": String("GG9RCjvLhhPRWqvkGaTAgAV6CRr9PZjDeJ1nKJsRU7td"), +2023-05-01T02:54:45.863386Z INFO sui::client_commands: "modules": Array [ +2023-05-01T02:54:45.863392Z INFO sui::client_commands: String("batch_price_attestation"), +2023-05-01T02:54:45.863398Z INFO sui::client_commands: String("contract_upgrade"), +2023-05-01T02:54:45.863404Z INFO sui::client_commands: String("data_source"), +2023-05-01T02:54:45.863410Z INFO sui::client_commands: String("deserialize"), +2023-05-01T02:54:45.863415Z INFO sui::client_commands: String("event"), +2023-05-01T02:54:45.863418Z INFO sui::client_commands: String("governance"), +2023-05-01T02:54:45.863426Z INFO sui::client_commands: String("governance_action"), +2023-05-01T02:54:45.863433Z INFO sui::client_commands: String("governance_instruction"), +2023-05-01T02:54:45.863439Z INFO sui::client_commands: String("governance_witness"), +2023-05-01T02:54:45.863445Z INFO sui::client_commands: String("i64"), +2023-05-01T02:54:45.863451Z INFO sui::client_commands: String("migrate"), +2023-05-01T02:54:45.863456Z INFO sui::client_commands: String("price"), +2023-05-01T02:54:45.863462Z INFO sui::client_commands: String("price_feed"), +2023-05-01T02:54:45.863467Z INFO sui::client_commands: String("price_identifier"), +2023-05-01T02:54:45.863475Z INFO sui::client_commands: String("price_info"), +2023-05-01T02:54:45.863482Z INFO sui::client_commands: String("price_status"), +2023-05-01T02:54:45.863488Z INFO sui::client_commands: String("pyth"), +2023-05-01T02:54:45.863494Z INFO sui::client_commands: String("required_version"), +2023-05-01T02:54:45.863499Z INFO sui::client_commands: String("set"), +2023-05-01T02:54:45.863505Z INFO sui::client_commands: String("set_data_sources"), +2023-05-01T02:54:45.863511Z INFO sui::client_commands: String("set_governance_data_source"), +2023-05-01T02:54:45.863516Z INFO sui::client_commands: String("set_stale_price_threshold"), +2023-05-01T02:54:45.863524Z INFO sui::client_commands: String("set_update_fee"), +2023-05-01T02:54:45.863531Z INFO sui::client_commands: String("setup"), +2023-05-01T02:54:45.863538Z INFO sui::client_commands: String("state"), +2023-05-01T02:54:45.863544Z INFO sui::client_commands: String("transfer_fee"), +2023-05-01T02:54:45.863549Z INFO sui::client_commands: String("version_control"), +2023-05-01T02:54:45.863555Z INFO sui::client_commands: ], +2023-05-01T02:54:45.863561Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863572Z INFO sui::client_commands: Object { +2023-05-01T02:54:45.863578Z INFO sui::client_commands: "type": String("created"), +2023-05-01T02:54:45.863585Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:45.863592Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:45.863598Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:45.863604Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863610Z INFO sui::client_commands: "objectType": String("0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6::setup::DeployerCap"), +2023-05-01T02:54:45.863616Z INFO sui::client_commands: "objectId": String("0x480cb17f5776ef3bdf6d83cca798d8a34f5fba29ae701487b56ce0955af249f8"), +2023-05-01T02:54:45.863624Z INFO sui::client_commands: "version": String("14"), +2023-05-01T02:54:45.863632Z INFO sui::client_commands: "digest": String("7BEBx1v4z1QHgSzNgSnJpryStVApa9yMfysno7w3TTLb"), +2023-05-01T02:54:45.863638Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863644Z INFO sui::client_commands: Object { +2023-05-01T02:54:45.863650Z INFO sui::client_commands: "type": String("created"), +2023-05-01T02:54:45.863656Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:45.863662Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:45.863667Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:45.863675Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863682Z INFO sui::client_commands: "objectType": String("0x2::package::UpgradeCap"), +2023-05-01T02:54:45.863689Z INFO sui::client_commands: "objectId": String("0x558bc846ca736cd69ddf6769402c1509f74c41200ecb635f0ec0cd3acf3feeb7"), +2023-05-01T02:54:45.863695Z INFO sui::client_commands: "version": String("14"), +2023-05-01T02:54:45.863701Z INFO sui::client_commands: "digest": String("QerNERCcj1cxZ4XJePY3Kqogb9yueiEBFZnyw3nWQon"), +2023-05-01T02:54:45.863707Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863712Z INFO sui::client_commands: ] +2023-05-01T02:54:45.863718Z INFO sui::client_commands: ----- Balance changes ---- +2023-05-01T02:54:45.863726Z INFO sui::client_commands: Array [ +2023-05-01T02:54:45.863733Z INFO sui::client_commands: Object { +2023-05-01T02:54:45.863739Z INFO sui::client_commands: "owner": Object { +2023-05-01T02:54:45.863744Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), +2023-05-01T02:54:45.863751Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863758Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), +2023-05-01T02:54:45.863763Z INFO sui::client_commands: "amount": String("-225111200"), +2023-05-01T02:54:45.863769Z INFO sui::client_commands: }, +2023-05-01T02:54:45.863776Z INFO sui::client_commands: ] +2023-05-01T03:28:12.418631Z INFO sui::client_commands: ----- package (0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6[0x1]) ----- +2023-05-01T03:28:12.418663Z INFO sui::client_commands: Owner: Immutable +2023-05-01T03:28:12.418668Z INFO sui::client_commands: Version: 0x1 +2023-05-01T03:28:12.418671Z INFO sui::client_commands: Storage Rebate: 216174400 +2023-05-01T03:28:12.418679Z INFO sui::client_commands: Previous Transaction: TransactionDigest(A7UdQaGapH56Jw6MTtntgKuCrMxYNrdKybpQiKBkYMrh) +2023-05-01T03:28:12.418687Z INFO sui::client_commands: ----- Data ----- +2023-05-01T03:28:12.418692Z INFO sui::client_commands: Modules: ["batch_price_attestation", "contract_upgrade", "data_source", "deserialize", "event", "governance", "governance_action", "governance_instruction", "governance_witness", "i64", "migrate", "price", "price_feed", "price_identifier", "price_info", "price_status", "pyth", "required_version", "set", "set_data_sources", "set_governance_data_source", "set_stale_price_threshold", "set_update_fee", "setup", "state", "transfer_fee", "version_control"] diff --git a/target_chains/sui/scripts/Makefile b/target_chains/sui/scripts/Makefile new file mode 100644 index 0000000000..58fe350246 --- /dev/null +++ b/target_chains/sui/scripts/Makefile @@ -0,0 +1,11 @@ +.PHONY: clean +clean: + rm -rf node_modules + +node_modules: + npm ci + +.PHONY: test +## Run tests +test: node_modules + bash run_integration_test.sh diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/init_pyth.ts new file mode 100644 index 0000000000..94d13069f0 --- /dev/null +++ b/target_chains/sui/scripts/init_pyth.ts @@ -0,0 +1,97 @@ +import dotenv from "dotenv" + +import { + RawSigner, + SUI_CLOCK_OBJECT_ID, + TransactionBlock, + fromB64, + normalizeSuiObjectId, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, +} from "@mysten/sui.js"; +import { Console } from "console"; + +const provider = new JsonRpcProvider(new Connection({ fullnode: "http://0.0.0.0:9000" })) +dotenv.config({"path":"~/.env"}) + +async function main() { + // const guardianPrivateKey = process.env.TESTNET_GUARDIAN_PRIVATE_KEY; + // if (guardianPrivateKey === undefined) { + // throw new Error("TESTNET_GUARDIAN_PRIVATE_KEY unset in environment"); + // } + const walletPrivateKey = process.env.SUI_DEVNET; + //const walletPrivateKey = "AARb87p4OlmRjUBCZOBy8iLGTWt1PVZ6gowPx7Lit+Tn"; + if (walletPrivateKey === undefined) { + throw new Error("SUI_DEVNET unset in environment"); + } + + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + Buffer.from(walletPrivateKey, "base64").subarray(1) + ), + provider + ); + console.log(wallet) + + // Note: set these before calling init_pyth + const deployerCap = "0x480cb17f5776ef3bdf6d83cca798d8a34f5fba29ae701487b56ce0955af249f8" + const upgradeCap = "0x558bc846ca736cd69ddf6769402c1509f74c41200ecb635f0ec0cd3acf3feeb7" + + init_pyth(wallet, deployerCap, upgradeCap) +} + +main(); + +/// Use a programmable transaction block to call +/// the Pyth setup::init_and_share_state function. +async function init_pyth( + signer: RawSigner, + deployerCap: string, + upgradeCap: string + ) { + const PythPackage = "0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6" + + const tx = new TransactionBlock(); + + // init_and_share_state( + // deployer: DeployerCap, + // upgrade_cap: UpgradeCap, + // stale_price_threshold: u64, + // base_update_fee: u64, + // governance_data_source: DataSource, + // sources: vector, + // ctx: &mut TxContext + // ) + + // // fun new(emitter_chain: u64, emitter_address: ExternalAddress) + + let [governance_data_source] = tx.moveCall({ + target: `${PythPackage}::data_source::new`, + arguments: [ + tx.pure(5), // emitter chain + tx.pure("0x0000000000000000000000000000000000000000000000000000000000000002") // emitter address + ] + }) + + tx.moveCall({ + target: `${PythPackage}::setup::init_and_share_state`, + arguments: [ + tx.object(deployerCap), + tx.object(upgradeCap), + tx.pure(1000), // stale price threshold + tx.pure(0), // base update fee + governance_data_source, // governance data source + governance_data_source // vec + ], + }); + + return signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showEffects: true, + showEvents: true, + }, + }); + } \ No newline at end of file diff --git a/target_chains/sui/scripts/package-lock.json b/target_chains/sui/scripts/package-lock.json new file mode 100644 index 0000000000..b65ffbe0c5 --- /dev/null +++ b/target_chains/sui/scripts/package-lock.json @@ -0,0 +1,9783 @@ +{ + "name": "pyth-sui-integration-test-and-deploy-scripts", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "pyth-sui-integration-test-and-deploy-scripts", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@certusone/wormhole-sdk": "^0.9.12", + "@mysten/sui.js": "^0.32.2", + "chai": "^4.3.7", + "dotenv": "^16.0.3", + "mocha": "^10.2.0", + "prettier": "^2.8.7", + "ts-mocha": "^10.0.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + }, + "devDependencies": { + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/node": "^18.15.11" + } + }, + "node_modules/@apollo/client": { + "version": "3.7.13", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.13.tgz", + "integrity": "sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.2", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-ws": "^5.5.5", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "subscriptions-transport-ws": "^0.9.0 || ^0.11.0" + }, + "peerDependenciesMeta": { + "graphql-ws": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "subscriptions-transport-ws": { + "optional": true + } + } + }, + "node_modules/@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@certusone/wormhole-sdk": { + "version": "0.9.14", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.14.tgz", + "integrity": "sha512-xR1dkMkzWJz+EfIvlzThQ5AkU6oY1UjRsyxaxvDEcd9NxZMRHfXJSgHFdP8gWjDfg3nUnj4NGY/UeqAxq9l1+g==", + "dependencies": { + "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-wasm": "^0.0.1", + "@coral-xyz/borsh": "0.2.6", + "@injectivelabs/networks": "1.10.7", + "@injectivelabs/sdk-ts": "1.10.47", + "@injectivelabs/utils": "1.10.5", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", + "@terra-money/terra.js": "^3.1.3", + "@xpla/xpla.js": "^0.2.1", + "algosdk": "^1.15.0", + "aptos": "1.5.0", + "axios": "^0.24.0", + "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.4", + "js-base64": "^3.6.1", + "near-api-js": "^1.0.0" + } + }, + "node_modules/@certusone/wormhole-sdk-proto-web": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" + } + }, + "node_modules/@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "dependencies": { + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" + } + }, + "node_modules/@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/@classic-terra/terra.proto/node_modules/@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@classic-terra/terra.proto/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "dependencies": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" + } + }, + "node_modules/@confio/ics23/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.2.0" + } + }, + "node_modules/@cosmjs/amino": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", + "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", + "dependencies": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1" + } + }, + "node_modules/@cosmjs/crypto": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", + "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", + "dependencies": { + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" + } + }, + "node_modules/@cosmjs/encoding": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", + "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", + "dependencies": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/@cosmjs/json-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", + "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", + "dependencies": { + "@cosmjs/stream": "^0.30.1", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/math": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", + "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", + "dependencies": { + "bn.js": "^5.2.0" + } + }, + "node_modules/@cosmjs/proto-signing": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", + "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", + "dependencies": { + "@cosmjs/amino": "^0.30.1", + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0" + } + }, + "node_modules/@cosmjs/socket": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", + "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", + "dependencies": { + "@cosmjs/stream": "^0.30.1", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/stargate": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", + "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", + "dependencies": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/tendermint-rpc": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/stargate/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@cosmjs/stream": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", + "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", + "dependencies": { + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/tendermint-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", + "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", + "dependencies": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/json-rpc": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/socket": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/tendermint-rpc/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@cosmjs/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "dependencies": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@injectivelabs/core-proto-ts": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.12.tgz", + "integrity": "sha512-axdL+KWuv4aORIdYqJQy5k9H+bPsi5Y4KWNcYPxrFQ0FAu+sjpvm5PmbIzBSgv/hnIB2cHcLuKvE3BtEa3vJ/w==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "node_modules/@injectivelabs/exceptions": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", + "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.10.12", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "peerDependencies": { + "@injectivelabs/grpc-web": ">=0.0.1" + } + }, + "node_modules/@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "peerDependencies": { + "@injectivelabs/grpc-web": ">=0.0.1" + } + }, + "node_modules/@injectivelabs/indexer-proto-ts": { + "version": "1.10.8-rc.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", + "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "node_modules/@injectivelabs/mito-proto-ts": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.4.tgz", + "integrity": "sha512-8raVmZnaXVbpikMTmnc+OtViBPzgyx2ilezUTZFCNcQzZM01lbJlpd0NbF6K5tG76eJ3Wjwj+YpAdRPNuayZ4A==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "node_modules/@injectivelabs/networks": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.7.tgz", + "integrity": "sha512-qnU3A7FgTVi4bGEMaSsSIN2wTBhKZfV+3fiwU09aX8ZNcWAilMx8d/mlE1naZFAHs7Kf5hFBxzgeSRZa1GJqiA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/sdk-ts": { + "version": "1.10.47", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.47.tgz", + "integrity": "sha512-G11Cdf5iO6is0qWzQRdfiUJLI8IPF4VtD5mVfBwnakrk78syN/Dy492trL7hispDSQaCJaP6a/fa6HnMPCsvzA==", + "hasInstallScript": true, + "dependencies": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stargate": "^0.30.1", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.12", + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", + "@injectivelabs/mito-proto-ts": "1.0.4", + "@injectivelabs/networks": "^1.10.7", + "@injectivelabs/test-utils": "^1.10.2", + "@injectivelabs/token-metadata": "^1.10.25", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.7.2", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + } + }, + "node_modules/@injectivelabs/sdk-ts/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@injectivelabs/test-utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", + "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", + "hasInstallScript": true, + "dependencies": { + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@injectivelabs/test-utils/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@injectivelabs/token-metadata": { + "version": "1.10.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", + "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/networks": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/networks": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", + "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", + "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@injectivelabs/token-metadata/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@injectivelabs/ts-types": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", + "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", + "hasInstallScript": true, + "dependencies": { + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/utils": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.5.tgz", + "integrity": "sha512-9t+9xOh8wQWs/kuUrfWjGAJMVbtgwu20AWdDQl5qeoNxstE7uKTM0hJWCn+OhF5WYloZH7kwfqEUSNZ84G/VpA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@injectivelabs/utils/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", + "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/bcs/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/@mysten/bcs/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", + "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "dependencies": { + "@mysten/bcs": "0.7.1", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.3.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "1.3.0" + } + }, + "node_modules/@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "dependencies": { + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@project-serum/anchor/node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "node_modules/@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.2.0" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@scure/bip32": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/curves": "~1.0.0", + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@scure/bip39": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", + "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "dependencies": { + "buffer": "~6.0.3" + }, + "engines": { + "node": ">=5.10" + } + }, + "node_modules/@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@solana/spl-token": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", + "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" + } + }, + "node_modules/@solana/web3.js": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.75.0.tgz", + "integrity": "sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "^2.6.7", + "rpc-websockets": "^7.5.1", + "superstruct": "^0.14.2" + } + }, + "node_modules/@solana/web3.js/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "node_modules/@solana/web3.js/node_modules/jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@terra-money/legacy.proto": { + "name": "@terra-money/terra.proto", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", + "dependencies": { + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/@terra-money/legacy.proto/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@terra-money/terra.js": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", + "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", + "dependencies": { + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@terra-money/terra.js/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@terra-money/terra.proto": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/@terra-money/terra.proto/node_modules/@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@terra-money/terra.proto/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "optional": true + }, + "node_modules/@types/lodash": { + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" + }, + "node_modules/@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mocha": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wry/equality": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", + "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@xpla/xpla.js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", + "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", + "dependencies": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@xpla/xpla.js/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "node_modules/agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/algosdk": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", + "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", + "dependencies": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.2", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", + "dependencies": { + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/aptos/node_modules/@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/aptos/node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "node_modules/aptos/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", + "dependencies": { + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/bip32/node_modules/@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", + "engines": { + "node": ">=4.5" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dependencies": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmjs-types": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", + "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/cosmjs-types/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "dependencies": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "node_modules/crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "optional": true, + "dependencies": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "hasInstallScript": true, + "dependencies": { + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0" + }, + "optionalDependencies": { + "secp256k1": "3.7.1" + } + }, + "node_modules/eccrypto/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true + }, + "node_modules/eccrypto/node_modules/secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", + "dependencies": { + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", + "dependencies": { + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/pubkey" + } + }, + "node_modules/eth-crypto/node_modules/@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eth-crypto/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/eth-crypto/node_modules/secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "node_modules/graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/jayson": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "node_modules/js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", + "bin": { + "jscrypto": "bin/cli.js" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "optional": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "dependencies": { + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" + } + }, + "node_modules/libsodium": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", + "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" + }, + "node_modules/libsodium-wrappers": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", + "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", + "dependencies": { + "libsodium": "^0.7.11" + } + }, + "node_modules/link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", + "dependencies": { + "chalk": "^2.4.1" + }, + "bin": { + "link-module-alias": "index.js" + }, + "engines": { + "node": "> 8.0.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/near-api-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", + "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", + "dependencies": { + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", + "dependencies": { + "capability": "^0.2.5" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optimism": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", + "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", + "dependencies": { + "@wry/context": "^0.7.0", + "@wry/trie": "^0.3.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/rpc-websockets/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/snakecase-keys": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", + "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", + "dependencies": { + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tiny-secp256k1/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", + "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", + "dependencies": { + "ts-node": "7.0.1" + }, + "bin": { + "ts-mocha": "bin/ts-mocha" + }, + "engines": { + "node": ">= 6.X.X" + }, + "optionalDependencies": { + "tsconfig-paths": "^3.5.0" + }, + "peerDependencies": { + "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X" + } + }, + "node_modules/ts-mocha/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ts-mocha/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ts-mocha/node_modules/ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-mocha/node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "optional": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", + "dependencies": { + "bs58check": "<3.0.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xstream": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", + "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", + "dependencies": { + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" + } + }, + "node_modules/xstream/node_modules/symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "node_modules/zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "dependencies": { + "zen-observable": "0.8.15" + } + } + }, + "dependencies": { + "@apollo/client": { + "version": "3.7.13", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.13.tgz", + "integrity": "sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==", + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.2", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + } + }, + "@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@certusone/wormhole-sdk": { + "version": "0.9.14", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.14.tgz", + "integrity": "sha512-xR1dkMkzWJz+EfIvlzThQ5AkU6oY1UjRsyxaxvDEcd9NxZMRHfXJSgHFdP8gWjDfg3nUnj4NGY/UeqAxq9l1+g==", + "requires": { + "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-wasm": "^0.0.1", + "@coral-xyz/borsh": "0.2.6", + "@injectivelabs/networks": "1.10.7", + "@injectivelabs/sdk-ts": "1.10.47", + "@injectivelabs/utils": "1.10.5", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", + "@terra-money/terra.js": "^3.1.3", + "@xpla/xpla.js": "^0.2.1", + "algosdk": "^1.15.0", + "aptos": "1.5.0", + "axios": "^0.24.0", + "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.4", + "js-base64": "^3.6.1", + "near-api-js": "^1.0.0" + } + }, + "@certusone/wormhole-sdk-proto-web": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "requires": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" + } + }, + "@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "requires": { + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" + } + }, + "@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "requires": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "@cosmjs/amino": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", + "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1" + } + }, + "@cosmjs/crypto": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", + "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", + "requires": { + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" + } + }, + "@cosmjs/encoding": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", + "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/json-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", + "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", + "requires": { + "@cosmjs/stream": "^0.30.1", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", + "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", + "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", + "requires": { + "@cosmjs/amino": "^0.30.1", + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0" + } + }, + "@cosmjs/socket": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", + "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", + "requires": { + "@cosmjs/stream": "^0.30.1", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", + "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/tendermint-rpc": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@cosmjs/stream": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", + "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", + "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/json-rpc": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/socket": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@cosmjs/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "requires": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "requires": {} + } + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "@injectivelabs/core-proto-ts": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.12.tgz", + "integrity": "sha512-axdL+KWuv4aORIdYqJQy5k9H+bPsi5Y4KWNcYPxrFQ0FAu+sjpvm5PmbIzBSgv/hnIB2cHcLuKvE3BtEa3vJ/w==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/exceptions": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", + "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.10.12", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "requires": {} + }, + "@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "requires": {} + }, + "@injectivelabs/indexer-proto-ts": { + "version": "1.10.8-rc.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", + "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/mito-proto-ts": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.4.tgz", + "integrity": "sha512-8raVmZnaXVbpikMTmnc+OtViBPzgyx2ilezUTZFCNcQzZM01lbJlpd0NbF6K5tG76eJ3Wjwj+YpAdRPNuayZ4A==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/networks": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.7.tgz", + "integrity": "sha512-qnU3A7FgTVi4bGEMaSsSIN2wTBhKZfV+3fiwU09aX8ZNcWAilMx8d/mlE1naZFAHs7Kf5hFBxzgeSRZa1GJqiA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/sdk-ts": { + "version": "1.10.47", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.47.tgz", + "integrity": "sha512-G11Cdf5iO6is0qWzQRdfiUJLI8IPF4VtD5mVfBwnakrk78syN/Dy492trL7hispDSQaCJaP6a/fa6HnMPCsvzA==", + "requires": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stargate": "^0.30.1", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.12", + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", + "@injectivelabs/mito-proto-ts": "1.0.4", + "@injectivelabs/networks": "^1.10.7", + "@injectivelabs/test-utils": "^1.10.2", + "@injectivelabs/token-metadata": "^1.10.25", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.7.2", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + } + } + }, + "@injectivelabs/test-utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", + "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", + "requires": { + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@injectivelabs/token-metadata": { + "version": "1.10.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", + "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/networks": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" + }, + "dependencies": { + "@injectivelabs/networks": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", + "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", + "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@injectivelabs/ts-types": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", + "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", + "requires": { + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/utils": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.5.tgz", + "integrity": "sha512-9t+9xOh8wQWs/kuUrfWjGAJMVbtgwu20AWdDQl5qeoNxstE7uKTM0hJWCn+OhF5WYloZH7kwfqEUSNZ84G/VpA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "@mysten/bcs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", + "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "requires": { + "bs58": "^5.0.0" + }, + "dependencies": { + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + } + } + }, + "@mysten/sui.js": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", + "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "requires": { + "@mysten/bcs": "0.7.1", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.3.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", + "requires": { + "@noble/hashes": "1.3.0" + } + }, + "@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==" + }, + "@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" + }, + "@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" + }, + "@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "requires": { + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + } + } + }, + "@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" + }, + "@scure/bip32": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "requires": { + "@noble/curves": "~1.0.0", + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@scure/bip39": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", + "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", + "requires": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "requires": { + "buffer": "~6.0.3" + } + }, + "@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + } + }, + "@solana/spl-token": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", + "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + } + }, + "@solana/web3.js": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.75.0.tgz", + "integrity": "sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg==", + "requires": { + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "^2.6.7", + "rpc-websockets": "^7.5.1", + "superstruct": "^0.14.2" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "requires": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" + } + }, + "superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + } + } + }, + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@terra-money/legacy.proto": { + "version": "npm:@terra-money/terra.proto@0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", + "requires": { + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@terra-money/terra.js": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", + "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", + "requires": { + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + } + } + }, + "@terra-money/terra.proto": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "optional": true + }, + "@types/lodash": { + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" + }, + "@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/mocha": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true + }, + "@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "requires": { + "@types/node": "*" + } + }, + "@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@wry/equality": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", + "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@xpla/xpla.js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", + "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" + }, + "dependencies": { + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "requires": { + "follow-redirects": "^1.14.8" + } + } + } + }, + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "requires": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + } + }, + "algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" + }, + "algosdk": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", + "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", + "requires": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.2", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", + "requires": { + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" + }, + "@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "requires": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + } + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" + }, + "bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "requires": { + "bindings": "^1.3.0" + } + }, + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", + "requires": { + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" + }, + "dependencies": { + "@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + } + } + }, + "bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "requires": { + "@noble/hashes": "^1.2.0" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "requires": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" + }, + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmjs-types": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", + "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "requires": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + }, + "drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "optional": true, + "requires": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + } + }, + "eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "requires": { + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0", + "secp256k1": "3.7.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true + }, + "secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + } + } + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", + "requires": { + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", + "requires": { + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + } + } + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } + }, + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + }, + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" + }, + "fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==" + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" + }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + } + } + }, + "http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, + "jayson": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", + "requires": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + } + } + }, + "js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==" + }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "optional": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" + }, + "jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "requires": { + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" + } + }, + "libsodium": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", + "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" + }, + "libsodium-wrappers": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", + "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", + "requires": { + "libsodium": "^0.7.11" + } + }, + "link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", + "requires": { + "chalk": "^2.4.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" + }, + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + } + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" + }, + "near-api-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", + "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", + "requires": { + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" + } + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", + "requires": { + "capability": "^0.2.5" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "optimism": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", + "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", + "requires": { + "@wry/context": "^0.7.0", + "@wry/trie": "^0.3.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + } + } + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" + }, + "rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "requires": { + "@babel/runtime": "^7.17.2", + "bufferutil": "^4.0.1", + "eventemitter3": "^4.0.7", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "dependencies": { + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + } + } + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "requires": { + "buffer": "6.0.3" + } + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "snakecase-keys": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", + "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", + "requires": { + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + }, + "store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "optional": true + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + }, + "text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "requires": { + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "ts-mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", + "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", + "requires": { + "ts-node": "7.0.1", + "tsconfig-paths": "^3.5.0" + }, + "dependencies": { + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" + }, + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } + }, + "ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "requires": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + } + }, + "yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==" + } + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + } + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "optional": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" + }, + "typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + }, + "typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" + }, + "u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", + "requires": { + "bs58check": "<3.0.0" + } + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + }, + "xstream": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", + "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", + "requires": { + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" + }, + "dependencies": { + "symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==" + } + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + } + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "requires": { + "zen-observable": "0.8.15" + } + } + } +} diff --git a/target_chains/sui/scripts/package.json b/target_chains/sui/scripts/package.json new file mode 100644 index 0000000000..07160009cc --- /dev/null +++ b/target_chains/sui/scripts/package.json @@ -0,0 +1,23 @@ +{ + "name": "pyth-sui-integration-test-and-deploy-scripts", + "version": "0.0.1", + "description": "Pyth Sui Integration Tests and Scripts", + "main": "index.js", + "license": "MIT", + "dependencies": { + "@certusone/wormhole-sdk": "^0.9.12", + "@mysten/sui.js": "^0.32.2", + "chai": "^4.3.7", + "dotenv": "^16.0.3", + "mocha": "^10.2.0", + "prettier": "^2.8.7", + "ts-mocha": "^10.0.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + }, + "devDependencies": { + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/node": "^18.15.11" + } +} diff --git a/target_chains/sui/scripts/tsconfig.json b/target_chains/sui/scripts/tsconfig.json new file mode 100644 index 0000000000..9dffe0cca5 --- /dev/null +++ b/target_chains/sui/scripts/tsconfig.json @@ -0,0 +1,12 @@ +{ + "compilerOptions": { + "types": ["mocha", "chai"], + "typeRoots": ["./node_modules/@types"], + "lib": ["es2020"], + "module": "commonjs", + "target": "es2020", + "strict": true, + "resolveJsonModule": true, + "esModuleInterop": true + } +} From 23c4d7948afac5bf721501b9252d0c77012c915f Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 1 May 2023 04:23:49 +0000 Subject: [PATCH 057/140] add build to Makefile --- target_chains/sui/contracts/Makefile | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/target_chains/sui/contracts/Makefile b/target_chains/sui/contracts/Makefile index c5afac1583..82b8c54edc 100644 --- a/target_chains/sui/contracts/Makefile +++ b/target_chains/sui/contracts/Makefile @@ -3,3 +3,7 @@ TARGETS := test .PHONY: test test: sui move test + +.PHONY: build +build: + sui move build \ No newline at end of file From 934ba97e5a5bcc27cabb414c7d54a1ebd8c52a5b Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 1 May 2023 04:59:46 +0000 Subject: [PATCH 058/140] init pyth ts script --- .../sui/contracts/sui.log.2023-05-01 | 771 ------------------ target_chains/sui/scripts/init_pyth.ts | 57 +- 2 files changed, 20 insertions(+), 808 deletions(-) delete mode 100644 target_chains/sui/contracts/sui.log.2023-05-01 diff --git a/target_chains/sui/contracts/sui.log.2023-05-01 b/target_chains/sui/contracts/sui.log.2023-05-01 deleted file mode 100644 index cc37efdce3..0000000000 --- a/target_chains/sui/contracts/sui.log.2023-05-01 +++ /dev/null @@ -1,771 +0,0 @@ -2023-05-01T01:51:07.541730Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T01:51:07.541760Z INFO sui::client_commands: AWXBF9K6HkbMxzkpDUbxyrcETuZBg6dSQBP5yvdBabUS -2023-05-01T01:51:07.541765Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T01:51:07.541771Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 96, 229, 125, 251, 42, 203, 86, 74, 246, 93, 157, 233, 202, 103, 245, 165, 150, 141, 229, 46, 70, 210, 254, 208, 92, 67, 177, 221, 231, 244, 189, 247, 191, 6, 174, 215, 180, 176, 157, 139, 87, 86, 13, 34, 117, 177, 218, 5, 27, 23, 122, 42, 66, 233, 35, 214, 55, 52, 178, 61, 53, 111, 214, 8, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T01:51:07.541777Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T01:51:07.541780Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T01:51:07.541784Z INFO sui::client_commands: Commands: [ -2023-05-01T01:51:07.541787Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T01:51:07.541791Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T01:51:07.541794Z INFO sui::client_commands: ] -2023-05-01T01:51:07.541798Z INFO sui::client_commands: -2023-05-01T01:51:07.541806Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T01:51:07.541809Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x1, digest: ck51pWSdh5bQrANDFq2xeLhdUqdjEDrGyUMZNuWAiSw -2023-05-01T01:51:07.541814Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T01:51:07.541816Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T01:51:07.541820Z INFO sui::client_commands: Gas Budget: 20000 -2023-05-01T01:51:07.541823Z INFO sui::client_commands: -2023-05-01T01:51:07.541825Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T01:51:07.541833Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T01:51:07.541837Z INFO sui::client_commands: Mutated Objects: -2023-05-01T01:51:07.541841Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T01:51:07.541844Z INFO sui::client_commands: -2023-05-01T01:51:07.541847Z INFO sui::client_commands: ----- Events ---- -2023-05-01T01:51:07.541851Z INFO sui::client_commands: Array [] -2023-05-01T01:51:07.541853Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T01:51:07.541857Z INFO sui::client_commands: Array [ -2023-05-01T01:51:07.541861Z INFO sui::client_commands: Object { -2023-05-01T01:51:07.541869Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T01:51:07.541873Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T01:51:07.541879Z INFO sui::client_commands: "owner": Object { -2023-05-01T01:51:07.541882Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T01:51:07.541885Z INFO sui::client_commands: }, -2023-05-01T01:51:07.541889Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T01:51:07.541891Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T01:51:07.541902Z INFO sui::client_commands: "version": String("2"), -2023-05-01T01:51:07.541909Z INFO sui::client_commands: "previousVersion": String("1"), -2023-05-01T01:51:07.541912Z INFO sui::client_commands: "digest": String("5qSVR2tSV9drHp1F1ampanM2e2eAPbD5smuQ4Q7pMSvh"), -2023-05-01T01:51:07.541918Z INFO sui::client_commands: }, -2023-05-01T01:51:07.541922Z INFO sui::client_commands: ] -2023-05-01T01:51:07.541928Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T01:51:07.541930Z INFO sui::client_commands: Array [ -2023-05-01T01:51:07.541933Z INFO sui::client_commands: Object { -2023-05-01T01:51:07.541946Z INFO sui::client_commands: "owner": Object { -2023-05-01T01:51:07.541951Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T01:51:07.541957Z INFO sui::client_commands: }, -2023-05-01T01:51:07.541963Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T01:51:07.541968Z INFO sui::client_commands: "amount": String("-20000"), -2023-05-01T01:51:07.541974Z INFO sui::client_commands: }, -2023-05-01T01:51:07.541980Z INFO sui::client_commands: ] -2023-05-01T01:51:14.755737Z INFO sui::client_commands: Object ID | Version | Digest | Owner Type | Object Type -2023-05-01T01:51:14.755765Z INFO sui::client_commands: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- -2023-05-01T01:51:14.755769Z INFO sui::client_commands: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 | 2 | R9dytHEvUd/jiLNkqWzdMqNiCsde8yNdNgobQrmc1b4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T01:51:14.755773Z INFO sui::client_commands: 0x7d66ddfb579e127068204f18d2f6dd6d0c2499a1e23d15d3254845b960dd2d1c | 1 | je104t5qiXBpAaFDHVT8cq5ylh7dLuzdl3Tqu8e+1Mo= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T01:51:14.755777Z INFO sui::client_commands: 0xc512b676e6af8191806a7ee84fcef6a65af1510ae1910229352444e930bc05f4 | 1 | 8odt34bwBxirv4pauIk06EVQ2dVxXvgGDq6FhKNKbhQ= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T01:51:14.755781Z INFO sui::client_commands: 0xee979d4ef0f6c546aa0f83fe77fa1c5de325fe04a011db7408347467ad8143e1 | 1 | g1aeRrWpDWjmXb0DflWcbgR+/9dzzffuNSDHHjwwYmI= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T01:51:14.755795Z INFO sui::client_commands: 0xf9c0995266ab5473c748f7fa7637c80dc26e4bbe0fdaf5b8df629f6fccfb30ea | 1 | /x0784SwC6C+vl9/xl9T5J4ywkIeNr51ApoE4TV04m4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T01:51:14.755799Z INFO sui::client_commands: Showing 5 results. -2023-05-01T01:51:30.899774Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T01:51:30.899812Z INFO sui::client_commands: CRUgnujQEUVcepd21v7pLYLKXjJWFc9X9Vv3hmA1qVMR -2023-05-01T01:51:30.899816Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T01:51:30.899827Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 239, 252, 101, 58, 125, 120, 39, 176, 218, 155, 183, 75, 66, 123, 28, 167, 190, 114, 236, 148, 8, 120, 0, 108, 146, 45, 255, 85, 66, 162, 7, 119, 26, 73, 58, 182, 189, 162, 34, 177, 42, 17, 236, 99, 231, 104, 130, 20, 165, 122, 109, 131, 234, 165, 187, 49, 217, 17, 2, 190, 234, 197, 26, 1, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T01:51:30.899835Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T01:51:30.899838Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T01:51:30.899842Z INFO sui::client_commands: Commands: [ -2023-05-01T01:51:30.899851Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T01:51:30.899858Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T01:51:30.899862Z INFO sui::client_commands: ] -2023-05-01T01:51:30.899866Z INFO sui::client_commands: -2023-05-01T01:51:30.899876Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T01:51:30.899880Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x2, digest: 5qSVR2tSV9drHp1F1ampanM2e2eAPbD5smuQ4Q7pMSvh -2023-05-01T01:51:30.899883Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T01:51:30.899886Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T01:51:30.899891Z INFO sui::client_commands: Gas Budget: 2000 -2023-05-01T01:51:30.899894Z INFO sui::client_commands: -2023-05-01T01:51:30.899898Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T01:51:30.899901Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T01:51:30.899904Z INFO sui::client_commands: Mutated Objects: -2023-05-01T01:51:30.899909Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T01:51:30.899911Z INFO sui::client_commands: -2023-05-01T01:51:30.899918Z INFO sui::client_commands: ----- Events ---- -2023-05-01T01:51:30.899922Z INFO sui::client_commands: Array [] -2023-05-01T01:51:30.899925Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T01:51:30.899929Z INFO sui::client_commands: Array [ -2023-05-01T01:51:30.899933Z INFO sui::client_commands: Object { -2023-05-01T01:51:30.899940Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T01:51:30.899944Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T01:51:30.899948Z INFO sui::client_commands: "owner": Object { -2023-05-01T01:51:30.899952Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T01:51:30.899955Z INFO sui::client_commands: }, -2023-05-01T01:51:30.899960Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T01:51:30.899964Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T01:51:30.899968Z INFO sui::client_commands: "version": String("3"), -2023-05-01T01:51:30.899971Z INFO sui::client_commands: "previousVersion": String("2"), -2023-05-01T01:51:30.899978Z INFO sui::client_commands: "digest": String("C6dqeQ1igC4wJtXte1fpbjqcSM3yXEioh9ndL2danVRe"), -2023-05-01T01:51:30.899981Z INFO sui::client_commands: }, -2023-05-01T01:51:30.899984Z INFO sui::client_commands: ] -2023-05-01T01:51:30.899988Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T01:51:30.899995Z INFO sui::client_commands: Array [ -2023-05-01T01:51:30.899998Z INFO sui::client_commands: Object { -2023-05-01T01:51:30.900001Z INFO sui::client_commands: "owner": Object { -2023-05-01T01:51:30.900010Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T01:51:30.900015Z INFO sui::client_commands: }, -2023-05-01T01:51:30.900021Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T01:51:30.900027Z INFO sui::client_commands: "amount": String("-2000"), -2023-05-01T01:51:30.900035Z INFO sui::client_commands: }, -2023-05-01T01:51:30.900042Z INFO sui::client_commands: ] -2023-05-01T02:46:29.568838Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:46:29.568872Z INFO sui::client_commands: CXG81uSCsGxksQwmoLH8s8cs7hBZ94vjZXGjmhGaFv3g -2023-05-01T02:46:29.568878Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:46:29.568884Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 144, 69, 145, 199, 122, 30, 214, 81, 65, 92, 27, 204, 249, 169, 180, 38, 239, 68, 23, 117, 56, 131, 156, 129, 243, 190, 190, 38, 255, 8, 221, 201, 140, 102, 166, 218, 78, 51, 180, 110, 175, 209, 248, 151, 213, 14, 182, 109, 65, 208, 198, 79, 226, 68, 68, 198, 73, 196, 162, 35, 26, 176, 121, 10, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:46:29.568888Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:46:29.568892Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:46:29.568904Z INFO sui::client_commands: Commands: [ -2023-05-01T02:46:29.568908Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:46:29.568910Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:46:29.568914Z INFO sui::client_commands: ] -2023-05-01T02:46:29.568919Z INFO sui::client_commands: -2023-05-01T02:46:29.568924Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:46:29.568939Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x3, digest: C6dqeQ1igC4wJtXte1fpbjqcSM3yXEioh9ndL2danVRe -2023-05-01T02:46:29.568946Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:46:29.568949Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:46:29.568952Z INFO sui::client_commands: Gas Budget: 2000 -2023-05-01T02:46:29.568956Z INFO sui::client_commands: -2023-05-01T02:46:29.568960Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:46:29.568965Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T02:46:29.568970Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:46:29.568974Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:46:29.568977Z INFO sui::client_commands: -2023-05-01T02:46:29.568984Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:46:29.568987Z INFO sui::client_commands: Array [] -2023-05-01T02:46:29.568994Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:46:29.569000Z INFO sui::client_commands: Array [ -2023-05-01T02:46:29.569008Z INFO sui::client_commands: Object { -2023-05-01T02:46:29.569016Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:46:29.569022Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:46:29.569028Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:46:29.569031Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:46:29.569055Z INFO sui::client_commands: }, -2023-05-01T02:46:29.569066Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:46:29.569070Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:46:29.569077Z INFO sui::client_commands: "version": String("4"), -2023-05-01T02:46:29.569085Z INFO sui::client_commands: "previousVersion": String("3"), -2023-05-01T02:46:29.569089Z INFO sui::client_commands: "digest": String("BCcjJxoXsXnD7co2Lj9BoAE1RtXc6PQUUn5SXi993isa"), -2023-05-01T02:46:29.569095Z INFO sui::client_commands: }, -2023-05-01T02:46:29.569100Z INFO sui::client_commands: ] -2023-05-01T02:46:29.569106Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:46:29.569112Z INFO sui::client_commands: Array [ -2023-05-01T02:46:29.569120Z INFO sui::client_commands: Object { -2023-05-01T02:46:29.569127Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:46:29.569133Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:46:29.569139Z INFO sui::client_commands: }, -2023-05-01T02:46:29.569151Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:46:29.569158Z INFO sui::client_commands: "amount": String("-2000"), -2023-05-01T02:46:29.569163Z INFO sui::client_commands: }, -2023-05-01T02:46:29.569170Z INFO sui::client_commands: ] -2023-05-01T02:46:53.596884Z INFO sui::client_commands: Object ID | Version | Digest | Owner Type | Object Type -2023-05-01T02:46:53.596915Z INFO sui::client_commands: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- -2023-05-01T02:46:53.596921Z INFO sui::client_commands: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 | 4 | l46oWUdeuHKv0gm/+s+MPtYHHfXh+31wuM0Z6tTxCEk= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:46:53.596926Z INFO sui::client_commands: 0x7d66ddfb579e127068204f18d2f6dd6d0c2499a1e23d15d3254845b960dd2d1c | 1 | je104t5qiXBpAaFDHVT8cq5ylh7dLuzdl3Tqu8e+1Mo= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:46:53.596930Z INFO sui::client_commands: 0xc512b676e6af8191806a7ee84fcef6a65af1510ae1910229352444e930bc05f4 | 1 | 8odt34bwBxirv4pauIk06EVQ2dVxXvgGDq6FhKNKbhQ= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:46:53.596935Z INFO sui::client_commands: 0xee979d4ef0f6c546aa0f83fe77fa1c5de325fe04a011db7408347467ad8143e1 | 1 | g1aeRrWpDWjmXb0DflWcbgR+/9dzzffuNSDHHjwwYmI= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:46:53.596938Z INFO sui::client_commands: 0xf9c0995266ab5473c748f7fa7637c80dc26e4bbe0fdaf5b8df629f6fccfb30ea | 1 | /x0784SwC6C+vl9/xl9T5J4ywkIeNr51ApoE4TV04m4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:46:53.596942Z INFO sui::client_commands: Showing 5 results. -2023-05-01T02:46:59.709340Z INFO sui::client_commands: Showing 5 results. -2023-05-01T02:46:59.709385Z INFO sui::client_commands: 0x41ebfbbf39dbc5a281839d5778e01025138dd133095d66221de5b0e31416aa76 -2023-05-01T02:46:59.709389Z INFO sui::client_commands: 0x42ee1baa8f38d0a4d9ba84bfedecbc876bdc6ae7c58833fc5f7548adf5058636 -2023-05-01T02:46:59.709392Z INFO sui::client_commands: 0x756c559cb861c20dbe9d20595a400283feffd7c88c78cf34ec075d227e66e3a2 -2023-05-01T02:46:59.709395Z INFO sui::client_commands: 0x9a80bf7f43076a563121a2fdd3f6a84ecc30b5476b4e12ca075026d1d8d5b7a8 -2023-05-01T02:46:59.709403Z INFO sui::client_commands: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 <= -2023-05-01T02:47:28.149146Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:47:28.149184Z INFO sui::client_commands: 67N36nZUAdSehBsS1CPq71iNhcNpussSkz4K4gnxu3KE -2023-05-01T02:47:28.149188Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:47:28.149194Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 178, 89, 103, 81, 174, 235, 218, 208, 4, 22, 225, 187, 125, 110, 167, 212, 52, 138, 50, 147, 91, 127, 244, 250, 249, 131, 152, 165, 211, 70, 134, 77, 23, 255, 42, 26, 174, 104, 124, 203, 57, 132, 182, 27, 48, 249, 167, 105, 6, 148, 199, 166, 46, 117, 107, 226, 182, 68, 38, 36, 29, 166, 13, 0, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:47:28.149199Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:47:28.149202Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:47:28.149216Z INFO sui::client_commands: Commands: [ -2023-05-01T02:47:28.149220Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:47:28.149224Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:47:28.149228Z INFO sui::client_commands: ] -2023-05-01T02:47:28.149231Z INFO sui::client_commands: -2023-05-01T02:47:28.149238Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:47:28.149244Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x4, digest: BCcjJxoXsXnD7co2Lj9BoAE1RtXc6PQUUn5SXi993isa -2023-05-01T02:47:28.149248Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:47:28.149253Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:47:28.149257Z INFO sui::client_commands: Gas Budget: 2000000 -2023-05-01T02:47:28.149263Z INFO sui::client_commands: -2023-05-01T02:47:28.149266Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:47:28.149273Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas in command 0" } -2023-05-01T02:47:28.149279Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:47:28.149285Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:47:28.149291Z INFO sui::client_commands: -2023-05-01T02:47:28.149301Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:47:28.149309Z INFO sui::client_commands: Array [] -2023-05-01T02:47:28.149315Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:47:28.149321Z INFO sui::client_commands: Array [ -2023-05-01T02:47:28.149328Z INFO sui::client_commands: Object { -2023-05-01T02:47:28.149333Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:47:28.149341Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:47:28.149347Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:47:28.149355Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:47:28.149377Z INFO sui::client_commands: }, -2023-05-01T02:47:28.149380Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:47:28.149383Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:47:28.149388Z INFO sui::client_commands: "version": String("5"), -2023-05-01T02:47:28.149391Z INFO sui::client_commands: "previousVersion": String("4"), -2023-05-01T02:47:28.149399Z INFO sui::client_commands: "digest": String("RrvsJoK7LVkvMnkQQKPx8jPQtRvktXA7kQKLkUsm5cX"), -2023-05-01T02:47:28.149402Z INFO sui::client_commands: }, -2023-05-01T02:47:28.149405Z INFO sui::client_commands: ] -2023-05-01T02:47:28.149410Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:47:28.149414Z INFO sui::client_commands: Array [ -2023-05-01T02:47:28.149417Z INFO sui::client_commands: Object { -2023-05-01T02:47:28.149421Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:47:28.149430Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:47:28.149436Z INFO sui::client_commands: }, -2023-05-01T02:47:28.149445Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:47:28.149454Z INFO sui::client_commands: "amount": String("-2000000"), -2023-05-01T02:47:28.149462Z INFO sui::client_commands: }, -2023-05-01T02:47:28.149470Z INFO sui::client_commands: ] -2023-05-01T02:47:34.146057Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:47:34.146096Z INFO sui::client_commands: 9wL8aNX3tch6CVJDms3CjdjPzqyLE6AqyH4PenkhXiyo -2023-05-01T02:47:34.146100Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:47:34.146105Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 123, 94, 235, 156, 181, 99, 126, 34, 45, 61, 134, 124, 98, 184, 53, 79, 20, 50, 251, 234, 61, 49, 215, 63, 96, 60, 78, 91, 147, 83, 34, 80, 240, 143, 233, 109, 227, 33, 155, 130, 130, 123, 193, 241, 138, 147, 174, 218, 191, 250, 227, 108, 145, 162, 155, 122, 139, 176, 245, 57, 109, 27, 216, 14, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:47:34.146111Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:47:34.146114Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:47:34.146117Z INFO sui::client_commands: Commands: [ -2023-05-01T02:47:34.146123Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:47:34.146128Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:47:34.146137Z INFO sui::client_commands: ] -2023-05-01T02:47:34.146140Z INFO sui::client_commands: -2023-05-01T02:47:34.146144Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:47:34.146147Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x5, digest: RrvsJoK7LVkvMnkQQKPx8jPQtRvktXA7kQKLkUsm5cX -2023-05-01T02:47:34.146151Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:47:34.146154Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:47:34.146157Z INFO sui::client_commands: Gas Budget: 20000 -2023-05-01T02:47:34.146161Z INFO sui::client_commands: -2023-05-01T02:47:34.146165Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:47:34.146173Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T02:47:34.146177Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:47:34.146182Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:47:34.146184Z INFO sui::client_commands: -2023-05-01T02:47:34.146188Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:47:34.146191Z INFO sui::client_commands: Array [] -2023-05-01T02:47:34.146204Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:47:34.146215Z INFO sui::client_commands: Array [ -2023-05-01T02:47:34.146220Z INFO sui::client_commands: Object { -2023-05-01T02:47:34.146222Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:47:34.146226Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:47:34.146229Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:47:34.146236Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:47:34.146240Z INFO sui::client_commands: }, -2023-05-01T02:47:34.146247Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:47:34.146252Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:47:34.146255Z INFO sui::client_commands: "version": String("6"), -2023-05-01T02:47:34.146260Z INFO sui::client_commands: "previousVersion": String("5"), -2023-05-01T02:47:34.146263Z INFO sui::client_commands: "digest": String("B9E2UzkJXy19SNwjkAWd9XBHXQbj9Gj1VpdJZ2UvG8HP"), -2023-05-01T02:47:34.146267Z INFO sui::client_commands: }, -2023-05-01T02:47:34.146270Z INFO sui::client_commands: ] -2023-05-01T02:47:34.146279Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:47:34.146286Z INFO sui::client_commands: Array [ -2023-05-01T02:47:34.146289Z INFO sui::client_commands: Object { -2023-05-01T02:47:34.146293Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:47:34.146297Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:47:34.146300Z INFO sui::client_commands: }, -2023-05-01T02:47:34.146304Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:47:34.146312Z INFO sui::client_commands: "amount": String("-20000"), -2023-05-01T02:47:34.146317Z INFO sui::client_commands: }, -2023-05-01T02:47:34.146325Z INFO sui::client_commands: ] -2023-05-01T02:48:46.411692Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0x6]) ----- -2023-05-01T02:48:46.411719Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:48:46.411722Z INFO sui::client_commands: Version: 0x6 -2023-05-01T02:48:46.411725Z INFO sui::client_commands: Storage Rebate: 0 -2023-05-01T02:48:46.411729Z INFO sui::client_commands: Previous Transaction: TransactionDigest(9wL8aNX3tch6CVJDms3CjdjPzqyLE6AqyH4PenkhXiyo) -2023-05-01T02:48:46.411733Z INFO sui::client_commands: ----- Data ----- -2023-05-01T02:48:46.411741Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> -2023-05-01T02:48:46.411744Z INFO sui::client_commands: balance: 29999999997956000 -2023-05-01T02:48:46.411748Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 -2023-05-01T02:49:13.840950Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:49:13.840980Z INFO sui::client_commands: 4wKeoL3EC13n4WDn7xj4jiv27PUCmALmCUpAgt6siE7N -2023-05-01T02:49:13.840984Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:49:13.840989Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 45, 1, 104, 232, 220, 12, 187, 160, 53, 155, 155, 193, 250, 72, 56, 128, 113, 63, 158, 124, 119, 168, 219, 238, 51, 178, 57, 252, 234, 242, 170, 81, 199, 96, 141, 72, 175, 1, 115, 185, 38, 49, 2, 75, 142, 206, 127, 12, 72, 138, 240, 129, 186, 19, 168, 224, 21, 248, 237, 195, 121, 234, 21, 7, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:49:13.841000Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:49:13.841008Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:49:13.841011Z INFO sui::client_commands: Commands: [ -2023-05-01T02:49:13.841017Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:49:13.841025Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:49:13.841031Z INFO sui::client_commands: ] -2023-05-01T02:49:13.841034Z INFO sui::client_commands: -2023-05-01T02:49:13.841038Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:49:13.841042Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x6, digest: B9E2UzkJXy19SNwjkAWd9XBHXQbj9Gj1VpdJZ2UvG8HP -2023-05-01T02:49:13.841047Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:49:13.841050Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:49:13.841054Z INFO sui::client_commands: Gas Budget: 20000 -2023-05-01T02:49:13.841056Z INFO sui::client_commands: -2023-05-01T02:49:13.841059Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:49:13.841066Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T02:49:13.841079Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:49:13.841089Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:49:13.841092Z INFO sui::client_commands: -2023-05-01T02:49:13.841095Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:49:13.841098Z INFO sui::client_commands: Array [] -2023-05-01T02:49:13.841105Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:49:13.841112Z INFO sui::client_commands: Array [ -2023-05-01T02:49:13.841119Z INFO sui::client_commands: Object { -2023-05-01T02:49:13.841123Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:49:13.841128Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:49:13.841138Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:49:13.841146Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:49:13.841151Z INFO sui::client_commands: }, -2023-05-01T02:49:13.841157Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:49:13.841163Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:49:13.841169Z INFO sui::client_commands: "version": String("7"), -2023-05-01T02:49:13.841176Z INFO sui::client_commands: "previousVersion": String("6"), -2023-05-01T02:49:13.841181Z INFO sui::client_commands: "digest": String("CpkQgce3Xydmh1foLRnTfuK5BAjKCPUHzeoAQKk97Lmn"), -2023-05-01T02:49:13.841188Z INFO sui::client_commands: }, -2023-05-01T02:49:13.841195Z INFO sui::client_commands: ] -2023-05-01T02:49:13.841201Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:49:13.841206Z INFO sui::client_commands: Array [ -2023-05-01T02:49:13.841212Z INFO sui::client_commands: Object { -2023-05-01T02:49:13.841217Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:49:13.841223Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:49:13.841231Z INFO sui::client_commands: }, -2023-05-01T02:49:13.841238Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:49:13.841244Z INFO sui::client_commands: "amount": String("-20000"), -2023-05-01T02:49:13.841249Z INFO sui::client_commands: }, -2023-05-01T02:49:13.841255Z INFO sui::client_commands: ] -2023-05-01T02:52:51.789343Z INFO sui::client_commands: Object ID | Version | Digest | Owner Type | Object Type -2023-05-01T02:52:51.789410Z INFO sui::client_commands: --------------------------------------------------------------------------------------------------------------------------------------------------------------------- -2023-05-01T02:52:51.789416Z INFO sui::client_commands: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 | 7 | r6vvqMYd7P6x1JK16/z6at30i+kRSPSwTqVLFiI4XiE= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:52:51.789419Z INFO sui::client_commands: 0x7d66ddfb579e127068204f18d2f6dd6d0c2499a1e23d15d3254845b960dd2d1c | 1 | je104t5qiXBpAaFDHVT8cq5ylh7dLuzdl3Tqu8e+1Mo= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:52:51.789430Z INFO sui::client_commands: 0xc512b676e6af8191806a7ee84fcef6a65af1510ae1910229352444e930bc05f4 | 1 | 8odt34bwBxirv4pauIk06EVQ2dVxXvgGDq6FhKNKbhQ= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:52:51.789435Z INFO sui::client_commands: 0xee979d4ef0f6c546aa0f83fe77fa1c5de325fe04a011db7408347467ad8143e1 | 1 | g1aeRrWpDWjmXb0DflWcbgR+/9dzzffuNSDHHjwwYmI= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:52:51.789441Z INFO sui::client_commands: 0xf9c0995266ab5473c748f7fa7637c80dc26e4bbe0fdaf5b8df629f6fccfb30ea | 1 | /x0784SwC6C+vl9/xl9T5J4ywkIeNr51ApoE4TV04m4= | AddressOwner | Some(Struct(MoveObjectType(GasCoin))) -2023-05-01T02:52:51.789447Z INFO sui::client_commands: Showing 5 results. -2023-05-01T02:53:05.814101Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0x7]) ----- -2023-05-01T02:53:05.814131Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:53:05.814135Z INFO sui::client_commands: Version: 0x7 -2023-05-01T02:53:05.814139Z INFO sui::client_commands: Storage Rebate: 0 -2023-05-01T02:53:05.814143Z INFO sui::client_commands: Previous Transaction: TransactionDigest(4wKeoL3EC13n4WDn7xj4jiv27PUCmALmCUpAgt6siE7N) -2023-05-01T02:53:05.814148Z INFO sui::client_commands: ----- Data ----- -2023-05-01T02:53:05.814151Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> -2023-05-01T02:53:05.814167Z INFO sui::client_commands: balance: 29999999997936000 -2023-05-01T02:53:05.814171Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 -2023-05-01T02:54:04.831913Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:54:04.831950Z INFO sui::client_commands: BJDg1jALHkyBByhCDHrDBmVgfnDZW7TYFkhRSVcANPTt -2023-05-01T02:54:04.831955Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:54:04.831960Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 222, 3, 87, 124, 173, 252, 155, 99, 93, 206, 226, 223, 123, 110, 254, 220, 176, 169, 121, 62, 208, 107, 136, 98, 253, 232, 233, 176, 55, 154, 224, 21, 92, 181, 227, 207, 6, 5, 39, 162, 43, 214, 197, 191, 253, 82, 50, 117, 254, 246, 249, 71, 175, 193, 48, 180, 232, 149, 195, 3, 33, 78, 89, 10, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:54:04.831965Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:54:04.831968Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:54:04.831972Z INFO sui::client_commands: Commands: [ -2023-05-01T02:54:04.831975Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:54:04.831980Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:54:04.831985Z INFO sui::client_commands: ] -2023-05-01T02:54:04.831988Z INFO sui::client_commands: -2023-05-01T02:54:04.831992Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:04.831996Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x7, digest: CpkQgce3Xydmh1foLRnTfuK5BAjKCPUHzeoAQKk97Lmn -2023-05-01T02:54:04.832000Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:04.832003Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:54:04.832006Z INFO sui::client_commands: Gas Budget: 50000 -2023-05-01T02:54:04.832010Z INFO sui::client_commands: -2023-05-01T02:54:04.832015Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:54:04.832018Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T02:54:04.832022Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:54:04.832025Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:04.832028Z INFO sui::client_commands: -2023-05-01T02:54:04.832032Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:54:04.832034Z INFO sui::client_commands: Array [] -2023-05-01T02:54:04.832040Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:54:04.832045Z INFO sui::client_commands: Array [ -2023-05-01T02:54:04.832049Z INFO sui::client_commands: Object { -2023-05-01T02:54:04.832053Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:54:04.832056Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:04.832060Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:04.832063Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:04.832072Z INFO sui::client_commands: }, -2023-05-01T02:54:04.832080Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:54:04.832084Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:54:04.832088Z INFO sui::client_commands: "version": String("8"), -2023-05-01T02:54:04.832091Z INFO sui::client_commands: "previousVersion": String("7"), -2023-05-01T02:54:04.832095Z INFO sui::client_commands: "digest": String("G8WSFW2oEFuKnqzBFoCb5VvBwkD2EjjW9vCijChewcFc"), -2023-05-01T02:54:04.832097Z INFO sui::client_commands: }, -2023-05-01T02:54:04.832101Z INFO sui::client_commands: ] -2023-05-01T02:54:04.832104Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:54:04.832115Z INFO sui::client_commands: Array [ -2023-05-01T02:54:04.832125Z INFO sui::client_commands: Object { -2023-05-01T02:54:04.832130Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:04.832135Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:04.832139Z INFO sui::client_commands: }, -2023-05-01T02:54:04.832143Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:54:04.832146Z INFO sui::client_commands: "amount": String("-50000"), -2023-05-01T02:54:04.832151Z INFO sui::client_commands: }, -2023-05-01T02:54:04.832156Z INFO sui::client_commands: ] -2023-05-01T02:54:10.784739Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:54:10.784771Z INFO sui::client_commands: iJrLoo4G8aCq4ekN4VUJTqLaYQdP1w8dbzjfWPHwZZy -2023-05-01T02:54:10.784775Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:54:10.784780Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 54, 162, 89, 38, 236, 251, 46, 137, 55, 116, 157, 115, 250, 42, 198, 31, 8, 57, 220, 54, 9, 170, 100, 72, 232, 149, 236, 195, 46, 225, 158, 201, 54, 223, 179, 66, 223, 112, 161, 193, 106, 66, 241, 228, 158, 149, 255, 186, 26, 94, 68, 2, 157, 79, 39, 219, 150, 118, 92, 96, 11, 217, 181, 9, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:54:10.784784Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:54:10.784790Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:54:10.784795Z INFO sui::client_commands: Commands: [ -2023-05-01T02:54:10.784805Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:54:10.784812Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:54:10.784815Z INFO sui::client_commands: ] -2023-05-01T02:54:10.784819Z INFO sui::client_commands: -2023-05-01T02:54:10.784822Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:10.784829Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x8, digest: G8WSFW2oEFuKnqzBFoCb5VvBwkD2EjjW9vCijChewcFc -2023-05-01T02:54:10.784835Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:10.784840Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:54:10.784844Z INFO sui::client_commands: Gas Budget: 100000 -2023-05-01T02:54:10.784851Z INFO sui::client_commands: -2023-05-01T02:54:10.784854Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:54:10.784856Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T02:54:10.784859Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:54:10.784864Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:10.784867Z INFO sui::client_commands: -2023-05-01T02:54:10.784878Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:54:10.784882Z INFO sui::client_commands: Array [] -2023-05-01T02:54:10.784885Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:54:10.784888Z INFO sui::client_commands: Array [ -2023-05-01T02:54:10.784895Z INFO sui::client_commands: Object { -2023-05-01T02:54:10.784901Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:54:10.784907Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:10.784913Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:10.784922Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:10.784929Z INFO sui::client_commands: }, -2023-05-01T02:54:10.784935Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:54:10.784941Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:54:10.784949Z INFO sui::client_commands: "version": String("9"), -2023-05-01T02:54:10.784954Z INFO sui::client_commands: "previousVersion": String("8"), -2023-05-01T02:54:10.784961Z INFO sui::client_commands: "digest": String("99pzdzWfzfxMaSCeybuS1cCaYZM81czeUSB6pWZfkhRG"), -2023-05-01T02:54:10.784966Z INFO sui::client_commands: }, -2023-05-01T02:54:10.784970Z INFO sui::client_commands: ] -2023-05-01T02:54:10.784973Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:54:10.784976Z INFO sui::client_commands: Array [ -2023-05-01T02:54:10.784982Z INFO sui::client_commands: Object { -2023-05-01T02:54:10.784985Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:10.784989Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:10.784995Z INFO sui::client_commands: }, -2023-05-01T02:54:10.784998Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:54:10.785005Z INFO sui::client_commands: "amount": String("-100000"), -2023-05-01T02:54:10.785010Z INFO sui::client_commands: }, -2023-05-01T02:54:10.785017Z INFO sui::client_commands: ] -2023-05-01T02:54:13.594948Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:54:13.594981Z INFO sui::client_commands: 3eYEZj27R4SMkzNEdnwjzAZGEWWgHFaohgCS99i68dN7 -2023-05-01T02:54:13.594986Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:54:13.594992Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 249, 147, 8, 101, 141, 46, 129, 119, 12, 197, 251, 133, 144, 247, 95, 122, 101, 33, 42, 194, 235, 59, 234, 174, 112, 39, 171, 108, 100, 224, 135, 168, 132, 100, 179, 84, 224, 6, 199, 34, 221, 201, 195, 96, 115, 212, 149, 235, 19, 111, 112, 221, 109, 184, 135, 239, 41, 8, 204, 236, 210, 148, 101, 7, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:54:13.594997Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:54:13.595000Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:54:13.595003Z INFO sui::client_commands: Commands: [ -2023-05-01T02:54:13.595007Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:54:13.595011Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:54:13.595015Z INFO sui::client_commands: ] -2023-05-01T02:54:13.595019Z INFO sui::client_commands: -2023-05-01T02:54:13.595023Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:13.595033Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0x9, digest: 99pzdzWfzfxMaSCeybuS1cCaYZM81czeUSB6pWZfkhRG -2023-05-01T02:54:13.595040Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:13.595043Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:54:13.595046Z INFO sui::client_commands: Gas Budget: 300000 -2023-05-01T02:54:13.595049Z INFO sui::client_commands: -2023-05-01T02:54:13.595053Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:54:13.595058Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T02:54:13.595062Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:54:13.595067Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:13.595069Z INFO sui::client_commands: -2023-05-01T02:54:13.595073Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:54:13.595081Z INFO sui::client_commands: Array [] -2023-05-01T02:54:13.595090Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:54:13.595098Z INFO sui::client_commands: Array [ -2023-05-01T02:54:13.595104Z INFO sui::client_commands: Object { -2023-05-01T02:54:13.595107Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:54:13.595112Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:13.595119Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:13.595125Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:13.595131Z INFO sui::client_commands: }, -2023-05-01T02:54:13.595136Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:54:13.595144Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:54:13.595151Z INFO sui::client_commands: "version": String("10"), -2023-05-01T02:54:13.595158Z INFO sui::client_commands: "previousVersion": String("9"), -2023-05-01T02:54:13.595163Z INFO sui::client_commands: "digest": String("3zn52QutLmepxTD248MiyhpVYCW1srW9AbFK9VuiVC1a"), -2023-05-01T02:54:13.595169Z INFO sui::client_commands: }, -2023-05-01T02:54:13.595175Z INFO sui::client_commands: ] -2023-05-01T02:54:13.595180Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:54:13.595186Z INFO sui::client_commands: Array [ -2023-05-01T02:54:13.595193Z INFO sui::client_commands: Object { -2023-05-01T02:54:13.595201Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:13.595208Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:13.595211Z INFO sui::client_commands: }, -2023-05-01T02:54:13.595217Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:54:13.595223Z INFO sui::client_commands: "amount": String("-300000"), -2023-05-01T02:54:13.595228Z INFO sui::client_commands: }, -2023-05-01T02:54:13.595235Z INFO sui::client_commands: ] -2023-05-01T02:54:16.131972Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:54:16.132003Z INFO sui::client_commands: 7K4V4SxDPTGJ8wu1KLfUEL8YeqyCQLABZiY3sguHSZLE -2023-05-01T02:54:16.132007Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:54:16.132013Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 227, 44, 247, 140, 87, 242, 197, 155, 86, 92, 143, 226, 222, 75, 131, 27, 177, 134, 209, 110, 120, 95, 27, 133, 187, 64, 245, 201, 76, 68, 127, 198, 47, 108, 98, 0, 170, 59, 107, 94, 25, 45, 145, 65, 103, 64, 141, 75, 147, 131, 120, 236, 67, 223, 174, 21, 189, 16, 184, 82, 98, 190, 41, 8, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:54:16.132023Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:54:16.132027Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:54:16.132031Z INFO sui::client_commands: Commands: [ -2023-05-01T02:54:16.132034Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:54:16.132043Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:54:16.132049Z INFO sui::client_commands: ] -2023-05-01T02:54:16.132052Z INFO sui::client_commands: -2023-05-01T02:54:16.132057Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:16.132063Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xa, digest: 3zn52QutLmepxTD248MiyhpVYCW1srW9AbFK9VuiVC1a -2023-05-01T02:54:16.132066Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:16.132070Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:54:16.132073Z INFO sui::client_commands: Gas Budget: 500000 -2023-05-01T02:54:16.132080Z INFO sui::client_commands: -2023-05-01T02:54:16.132083Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:54:16.132085Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas in command 0" } -2023-05-01T02:54:16.132097Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:54:16.132102Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:16.132104Z INFO sui::client_commands: -2023-05-01T02:54:16.132108Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:54:16.132111Z INFO sui::client_commands: Array [] -2023-05-01T02:54:16.132116Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:54:16.132119Z INFO sui::client_commands: Array [ -2023-05-01T02:54:16.132123Z INFO sui::client_commands: Object { -2023-05-01T02:54:16.132127Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:54:16.132136Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:16.132139Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:16.132143Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:16.132147Z INFO sui::client_commands: }, -2023-05-01T02:54:16.132150Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:54:16.132154Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:54:16.132157Z INFO sui::client_commands: "version": String("11"), -2023-05-01T02:54:16.132162Z INFO sui::client_commands: "previousVersion": String("10"), -2023-05-01T02:54:16.132165Z INFO sui::client_commands: "digest": String("EbuR5U8NS43fdUCa3fpEnQe9RriR5TkLduauJcwD8kwC"), -2023-05-01T02:54:16.132169Z INFO sui::client_commands: }, -2023-05-01T02:54:16.132172Z INFO sui::client_commands: ] -2023-05-01T02:54:16.132176Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:54:16.132178Z INFO sui::client_commands: Array [ -2023-05-01T02:54:16.132181Z INFO sui::client_commands: Object { -2023-05-01T02:54:16.132185Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:16.132195Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:16.132202Z INFO sui::client_commands: }, -2023-05-01T02:54:16.132206Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:54:16.132213Z INFO sui::client_commands: "amount": String("-500000"), -2023-05-01T02:54:16.132216Z INFO sui::client_commands: }, -2023-05-01T02:54:16.132220Z INFO sui::client_commands: ] -2023-05-01T02:54:19.784083Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:54:19.784113Z INFO sui::client_commands: BnPqjrbxUy6PW8x4sHV4nctNn7oFrJ9yRei6hhbzPWHA -2023-05-01T02:54:19.784116Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:54:19.784122Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 46, 65, 167, 200, 90, 213, 86, 244, 152, 106, 0, 175, 217, 122, 11, 34, 148, 119, 88, 133, 13, 134, 49, 21, 147, 68, 174, 146, 102, 89, 29, 32, 156, 34, 148, 226, 82, 39, 188, 111, 95, 73, 126, 110, 138, 113, 112, 231, 65, 146, 23, 2, 183, 51, 148, 230, 153, 92, 57, 141, 204, 198, 9, 6, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:54:19.784132Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:54:19.784137Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:54:19.784139Z INFO sui::client_commands: Commands: [ -2023-05-01T02:54:19.784144Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:54:19.784147Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:54:19.784150Z INFO sui::client_commands: ] -2023-05-01T02:54:19.784153Z INFO sui::client_commands: -2023-05-01T02:54:19.784158Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:19.784163Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xb, digest: EbuR5U8NS43fdUCa3fpEnQe9RriR5TkLduauJcwD8kwC -2023-05-01T02:54:19.784167Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:19.784173Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:54:19.784176Z INFO sui::client_commands: Gas Budget: 1000000 -2023-05-01T02:54:19.784182Z INFO sui::client_commands: -2023-05-01T02:54:19.784189Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:54:19.784192Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas in command 0" } -2023-05-01T02:54:19.784199Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:54:19.784207Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:19.784213Z INFO sui::client_commands: -2023-05-01T02:54:19.784219Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:54:19.784225Z INFO sui::client_commands: Array [] -2023-05-01T02:54:19.784231Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:54:19.784236Z INFO sui::client_commands: Array [ -2023-05-01T02:54:19.784243Z INFO sui::client_commands: Object { -2023-05-01T02:54:19.784250Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:54:19.784262Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:19.784268Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:19.784275Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:19.784280Z INFO sui::client_commands: }, -2023-05-01T02:54:19.784286Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:54:19.784292Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:54:19.784298Z INFO sui::client_commands: "version": String("12"), -2023-05-01T02:54:19.784306Z INFO sui::client_commands: "previousVersion": String("11"), -2023-05-01T02:54:19.784313Z INFO sui::client_commands: "digest": String("7P1M2u8kQqHkfB4XQ5oYZmm3HTN1QpJmsq6E51vdHagj"), -2023-05-01T02:54:19.784319Z INFO sui::client_commands: }, -2023-05-01T02:54:19.784325Z INFO sui::client_commands: ] -2023-05-01T02:54:19.784331Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:54:19.784336Z INFO sui::client_commands: Array [ -2023-05-01T02:54:19.784342Z INFO sui::client_commands: Object { -2023-05-01T02:54:19.784347Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:19.784367Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:19.784370Z INFO sui::client_commands: }, -2023-05-01T02:54:19.784376Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:54:19.784382Z INFO sui::client_commands: "amount": String("-1000000"), -2023-05-01T02:54:19.784388Z INFO sui::client_commands: }, -2023-05-01T02:54:19.784394Z INFO sui::client_commands: ] -2023-05-01T02:54:25.898514Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0xc]) ----- -2023-05-01T02:54:25.898551Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:25.898555Z INFO sui::client_commands: Version: 0xc -2023-05-01T02:54:25.898558Z INFO sui::client_commands: Storage Rebate: 0 -2023-05-01T02:54:25.898561Z INFO sui::client_commands: Previous Transaction: TransactionDigest(BnPqjrbxUy6PW8x4sHV4nctNn7oFrJ9yRei6hhbzPWHA) -2023-05-01T02:54:25.898565Z INFO sui::client_commands: ----- Data ----- -2023-05-01T02:54:25.898567Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> -2023-05-01T02:54:25.898575Z INFO sui::client_commands: balance: 29999999995986000 -2023-05-01T02:54:25.898581Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 -2023-05-01T02:54:31.707537Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:54:31.707572Z INFO sui::client_commands: D8VYE8JAZyfTfMuhn28nyzqWDGmBekTVXvJbk4w2f9Vd -2023-05-01T02:54:31.707577Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:54:31.707586Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 1, 131, 61, 58, 171, 9, 221, 98, 200, 201, 95, 150, 186, 218, 186, 68, 51, 178, 205, 190, 80, 223, 75, 115, 116, 93, 31, 207, 15, 207, 140, 166, 74, 125, 85, 38, 218, 16, 12, 96, 177, 72, 144, 218, 220, 53, 248, 181, 161, 123, 213, 237, 209, 43, 71, 231, 234, 211, 183, 113, 238, 163, 215, 13, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:54:31.707593Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:54:31.707596Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:54:31.707600Z INFO sui::client_commands: Commands: [ -2023-05-01T02:54:31.707603Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:54:31.707610Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:54:31.707614Z INFO sui::client_commands: ] -2023-05-01T02:54:31.707618Z INFO sui::client_commands: -2023-05-01T02:54:31.707622Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:31.707626Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xc, digest: 7P1M2u8kQqHkfB4XQ5oYZmm3HTN1QpJmsq6E51vdHagj -2023-05-01T02:54:31.707630Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:31.707633Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:54:31.707636Z INFO sui::client_commands: Gas Budget: 3000555 -2023-05-01T02:54:31.707639Z INFO sui::client_commands: -2023-05-01T02:54:31.707647Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:54:31.707651Z INFO sui::client_commands: Status : Failure { error: "InsufficientGas" } -2023-05-01T02:54:31.707655Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:54:31.707659Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:31.707666Z INFO sui::client_commands: -2023-05-01T02:54:31.707672Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:54:31.707675Z INFO sui::client_commands: Array [] -2023-05-01T02:54:31.707679Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:54:31.707687Z INFO sui::client_commands: Array [ -2023-05-01T02:54:31.707693Z INFO sui::client_commands: Object { -2023-05-01T02:54:31.707696Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:54:31.707700Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:31.707708Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:31.707712Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:31.707715Z INFO sui::client_commands: }, -2023-05-01T02:54:31.707733Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:54:31.707737Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:54:31.707740Z INFO sui::client_commands: "version": String("13"), -2023-05-01T02:54:31.707742Z INFO sui::client_commands: "previousVersion": String("12"), -2023-05-01T02:54:31.707745Z INFO sui::client_commands: "digest": String("2fk2CbtzrZrruTcFr3yFERmdk2Y3Zocu7wyeBthvKj34"), -2023-05-01T02:54:31.707748Z INFO sui::client_commands: }, -2023-05-01T02:54:31.707752Z INFO sui::client_commands: ] -2023-05-01T02:54:31.707754Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:54:31.707758Z INFO sui::client_commands: Array [ -2023-05-01T02:54:31.707762Z INFO sui::client_commands: Object { -2023-05-01T02:54:31.707766Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:31.707769Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:31.707773Z INFO sui::client_commands: }, -2023-05-01T02:54:31.707775Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:54:31.707778Z INFO sui::client_commands: "amount": String("-3000555"), -2023-05-01T02:54:31.707786Z INFO sui::client_commands: }, -2023-05-01T02:54:31.707791Z INFO sui::client_commands: ] -2023-05-01T02:54:33.935261Z INFO sui::client_commands: ----- 0x2::coin::Coin<0x2::sui::SUI> (0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8[0xd]) ----- -2023-05-01T02:54:33.935288Z INFO sui::client_commands: Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:33.935293Z INFO sui::client_commands: Version: 0xd -2023-05-01T02:54:33.935297Z INFO sui::client_commands: Storage Rebate: 0 -2023-05-01T02:54:33.935300Z INFO sui::client_commands: Previous Transaction: TransactionDigest(D8VYE8JAZyfTfMuhn28nyzqWDGmBekTVXvJbk4w2f9Vd) -2023-05-01T02:54:33.935307Z INFO sui::client_commands: ----- Data ----- -2023-05-01T02:54:33.935310Z INFO sui::client_commands: type: 0x2::coin::Coin<0x2::sui::SUI> -2023-05-01T02:54:33.935313Z INFO sui::client_commands: balance: 29999999992985445 -2023-05-01T02:54:33.935325Z INFO sui::client_commands: id: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 -2023-05-01T02:54:45.863061Z INFO sui::client_commands: ----- Transaction Digest ---- -2023-05-01T02:54:45.863104Z INFO sui::client_commands: A7UdQaGapH56Jw6MTtntgKuCrMxYNrdKybpQiKBkYMrh -2023-05-01T02:54:45.863108Z INFO sui::client_commands: ----- Transaction Data ---- -2023-05-01T02:54:45.863120Z INFO sui::client_commands: Transaction Signature: [Signature(Ed25519SuiSignature(Ed25519SuiSignature([0, 237, 154, 1, 220, 156, 73, 213, 198, 96, 150, 98, 23, 230, 157, 119, 108, 189, 177, 46, 164, 37, 38, 30, 105, 42, 18, 190, 78, 18, 92, 181, 7, 93, 196, 56, 188, 219, 207, 243, 128, 139, 109, 172, 198, 46, 88, 119, 58, 202, 190, 14, 245, 135, 125, 15, 130, 42, 118, 127, 0, 167, 94, 199, 5, 167, 133, 177, 6, 253, 150, 117, 255, 106, 86, 84, 118, 20, 183, 75, 14, 26, 17, 65, 225, 226, 4, 46, 59, 213, 126, 146, 171, 133, 246, 69, 185])))] -2023-05-01T02:54:45.863128Z INFO sui::client_commands: Transaction Kind : Programmable -2023-05-01T02:54:45.863131Z INFO sui::client_commands: Inputs: [Pure(SuiPureValue { value_type: Some(Address), value: "0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19" })] -2023-05-01T02:54:45.863135Z INFO sui::client_commands: Commands: [ -2023-05-01T02:54:45.863143Z INFO sui::client_commands: Publish(_,0x0000000000000000000000000000000000000000000000000000000000000001,0x0000000000000000000000000000000000000000000000000000000000000002,0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c), -2023-05-01T02:54:45.863147Z INFO sui::client_commands: TransferObjects([Result(0)],Input(0)), -2023-05-01T02:54:45.863150Z INFO sui::client_commands: ] -2023-05-01T02:54:45.863153Z INFO sui::client_commands: -2023-05-01T02:54:45.863158Z INFO sui::client_commands: Sender: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:45.863161Z INFO sui::client_commands: Gas Payment: Object ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8, version: 0xd, digest: 2fk2CbtzrZrruTcFr3yFERmdk2Y3Zocu7wyeBthvKj34 -2023-05-01T02:54:45.863165Z INFO sui::client_commands: Gas Owner: 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 -2023-05-01T02:54:45.863169Z INFO sui::client_commands: Gas Price: 1000 -2023-05-01T02:54:45.863177Z INFO sui::client_commands: Gas Budget: 30005550000 -2023-05-01T02:54:45.863181Z INFO sui::client_commands: -2023-05-01T02:54:45.863184Z INFO sui::client_commands: ----- Transaction Effects ---- -2023-05-01T02:54:45.863191Z INFO sui::client_commands: Status : Success -2023-05-01T02:54:45.863193Z INFO sui::client_commands: Created Objects: -2023-05-01T02:54:45.863199Z INFO sui::client_commands: - ID: 0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6 , Owner: Immutable -2023-05-01T02:54:45.863203Z INFO sui::client_commands: - ID: 0x480cb17f5776ef3bdf6d83cca798d8a34f5fba29ae701487b56ce0955af249f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:45.863210Z INFO sui::client_commands: - ID: 0x558bc846ca736cd69ddf6769402c1509f74c41200ecb635f0ec0cd3acf3feeb7 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:45.863218Z INFO sui::client_commands: Mutated Objects: -2023-05-01T02:54:45.863225Z INFO sui::client_commands: - ID: 0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8 , Owner: Account Address ( 0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19 ) -2023-05-01T02:54:45.863231Z INFO sui::client_commands: -2023-05-01T02:54:45.863237Z INFO sui::client_commands: ----- Events ---- -2023-05-01T02:54:45.863243Z INFO sui::client_commands: Array [] -2023-05-01T02:54:45.863249Z INFO sui::client_commands: ----- Object changes ---- -2023-05-01T02:54:45.863255Z INFO sui::client_commands: Array [ -2023-05-01T02:54:45.863261Z INFO sui::client_commands: Object { -2023-05-01T02:54:45.863269Z INFO sui::client_commands: "type": String("mutated"), -2023-05-01T02:54:45.863278Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:45.863284Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:45.863290Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:45.863296Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863302Z INFO sui::client_commands: "objectType": String("0x2::coin::Coin<0x2::sui::SUI>"), -2023-05-01T02:54:45.863308Z INFO sui::client_commands: "objectId": String("0x7d493d2f36cf73bd7706e13296ebd9314e9e7b866361614631c04527655881f8"), -2023-05-01T02:54:45.863315Z INFO sui::client_commands: "version": String("14"), -2023-05-01T02:54:45.863323Z INFO sui::client_commands: "previousVersion": String("13"), -2023-05-01T02:54:45.863330Z INFO sui::client_commands: "digest": String("CoSdCwTatHfc2taSjQCtgQk6miYzKPJqnwcxpeJLWTQG"), -2023-05-01T02:54:45.863336Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863342Z INFO sui::client_commands: Object { -2023-05-01T02:54:45.863348Z INFO sui::client_commands: "type": String("published"), -2023-05-01T02:54:45.863354Z INFO sui::client_commands: "packageId": String("0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6"), -2023-05-01T02:54:45.863369Z INFO sui::client_commands: "version": String("1"), -2023-05-01T02:54:45.863379Z INFO sui::client_commands: "digest": String("GG9RCjvLhhPRWqvkGaTAgAV6CRr9PZjDeJ1nKJsRU7td"), -2023-05-01T02:54:45.863386Z INFO sui::client_commands: "modules": Array [ -2023-05-01T02:54:45.863392Z INFO sui::client_commands: String("batch_price_attestation"), -2023-05-01T02:54:45.863398Z INFO sui::client_commands: String("contract_upgrade"), -2023-05-01T02:54:45.863404Z INFO sui::client_commands: String("data_source"), -2023-05-01T02:54:45.863410Z INFO sui::client_commands: String("deserialize"), -2023-05-01T02:54:45.863415Z INFO sui::client_commands: String("event"), -2023-05-01T02:54:45.863418Z INFO sui::client_commands: String("governance"), -2023-05-01T02:54:45.863426Z INFO sui::client_commands: String("governance_action"), -2023-05-01T02:54:45.863433Z INFO sui::client_commands: String("governance_instruction"), -2023-05-01T02:54:45.863439Z INFO sui::client_commands: String("governance_witness"), -2023-05-01T02:54:45.863445Z INFO sui::client_commands: String("i64"), -2023-05-01T02:54:45.863451Z INFO sui::client_commands: String("migrate"), -2023-05-01T02:54:45.863456Z INFO sui::client_commands: String("price"), -2023-05-01T02:54:45.863462Z INFO sui::client_commands: String("price_feed"), -2023-05-01T02:54:45.863467Z INFO sui::client_commands: String("price_identifier"), -2023-05-01T02:54:45.863475Z INFO sui::client_commands: String("price_info"), -2023-05-01T02:54:45.863482Z INFO sui::client_commands: String("price_status"), -2023-05-01T02:54:45.863488Z INFO sui::client_commands: String("pyth"), -2023-05-01T02:54:45.863494Z INFO sui::client_commands: String("required_version"), -2023-05-01T02:54:45.863499Z INFO sui::client_commands: String("set"), -2023-05-01T02:54:45.863505Z INFO sui::client_commands: String("set_data_sources"), -2023-05-01T02:54:45.863511Z INFO sui::client_commands: String("set_governance_data_source"), -2023-05-01T02:54:45.863516Z INFO sui::client_commands: String("set_stale_price_threshold"), -2023-05-01T02:54:45.863524Z INFO sui::client_commands: String("set_update_fee"), -2023-05-01T02:54:45.863531Z INFO sui::client_commands: String("setup"), -2023-05-01T02:54:45.863538Z INFO sui::client_commands: String("state"), -2023-05-01T02:54:45.863544Z INFO sui::client_commands: String("transfer_fee"), -2023-05-01T02:54:45.863549Z INFO sui::client_commands: String("version_control"), -2023-05-01T02:54:45.863555Z INFO sui::client_commands: ], -2023-05-01T02:54:45.863561Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863572Z INFO sui::client_commands: Object { -2023-05-01T02:54:45.863578Z INFO sui::client_commands: "type": String("created"), -2023-05-01T02:54:45.863585Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:45.863592Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:45.863598Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:45.863604Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863610Z INFO sui::client_commands: "objectType": String("0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6::setup::DeployerCap"), -2023-05-01T02:54:45.863616Z INFO sui::client_commands: "objectId": String("0x480cb17f5776ef3bdf6d83cca798d8a34f5fba29ae701487b56ce0955af249f8"), -2023-05-01T02:54:45.863624Z INFO sui::client_commands: "version": String("14"), -2023-05-01T02:54:45.863632Z INFO sui::client_commands: "digest": String("7BEBx1v4z1QHgSzNgSnJpryStVApa9yMfysno7w3TTLb"), -2023-05-01T02:54:45.863638Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863644Z INFO sui::client_commands: Object { -2023-05-01T02:54:45.863650Z INFO sui::client_commands: "type": String("created"), -2023-05-01T02:54:45.863656Z INFO sui::client_commands: "sender": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:45.863662Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:45.863667Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:45.863675Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863682Z INFO sui::client_commands: "objectType": String("0x2::package::UpgradeCap"), -2023-05-01T02:54:45.863689Z INFO sui::client_commands: "objectId": String("0x558bc846ca736cd69ddf6769402c1509f74c41200ecb635f0ec0cd3acf3feeb7"), -2023-05-01T02:54:45.863695Z INFO sui::client_commands: "version": String("14"), -2023-05-01T02:54:45.863701Z INFO sui::client_commands: "digest": String("QerNERCcj1cxZ4XJePY3Kqogb9yueiEBFZnyw3nWQon"), -2023-05-01T02:54:45.863707Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863712Z INFO sui::client_commands: ] -2023-05-01T02:54:45.863718Z INFO sui::client_commands: ----- Balance changes ---- -2023-05-01T02:54:45.863726Z INFO sui::client_commands: Array [ -2023-05-01T02:54:45.863733Z INFO sui::client_commands: Object { -2023-05-01T02:54:45.863739Z INFO sui::client_commands: "owner": Object { -2023-05-01T02:54:45.863744Z INFO sui::client_commands: "AddressOwner": String("0x9f79d84367a618ec4b08e18a2d0e00e84d2803dcf3666a41980e5ffbc8fa2f19"), -2023-05-01T02:54:45.863751Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863758Z INFO sui::client_commands: "coinType": String("0x2::sui::SUI"), -2023-05-01T02:54:45.863763Z INFO sui::client_commands: "amount": String("-225111200"), -2023-05-01T02:54:45.863769Z INFO sui::client_commands: }, -2023-05-01T02:54:45.863776Z INFO sui::client_commands: ] -2023-05-01T03:28:12.418631Z INFO sui::client_commands: ----- package (0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6[0x1]) ----- -2023-05-01T03:28:12.418663Z INFO sui::client_commands: Owner: Immutable -2023-05-01T03:28:12.418668Z INFO sui::client_commands: Version: 0x1 -2023-05-01T03:28:12.418671Z INFO sui::client_commands: Storage Rebate: 216174400 -2023-05-01T03:28:12.418679Z INFO sui::client_commands: Previous Transaction: TransactionDigest(A7UdQaGapH56Jw6MTtntgKuCrMxYNrdKybpQiKBkYMrh) -2023-05-01T03:28:12.418687Z INFO sui::client_commands: ----- Data ----- -2023-05-01T03:28:12.418692Z INFO sui::client_commands: Modules: ["batch_price_attestation", "contract_upgrade", "data_source", "deserialize", "event", "governance", "governance_action", "governance_instruction", "governance_witness", "i64", "migrate", "price", "price_feed", "price_identifier", "price_info", "price_status", "pyth", "required_version", "set", "set_data_sources", "set_governance_data_source", "set_stale_price_threshold", "set_update_fee", "setup", "state", "transfer_fee", "version_control"] diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/init_pyth.ts index 94d13069f0..946a61a42f 100644 --- a/target_chains/sui/scripts/init_pyth.ts +++ b/target_chains/sui/scripts/init_pyth.ts @@ -11,18 +11,12 @@ import { testnetConnection, Connection, } from "@mysten/sui.js"; -import { Console } from "console"; const provider = new JsonRpcProvider(new Connection({ fullnode: "http://0.0.0.0:9000" })) dotenv.config({"path":"~/.env"}) async function main() { - // const guardianPrivateKey = process.env.TESTNET_GUARDIAN_PRIVATE_KEY; - // if (guardianPrivateKey === undefined) { - // throw new Error("TESTNET_GUARDIAN_PRIVATE_KEY unset in environment"); - // } const walletPrivateKey = process.env.SUI_DEVNET; - //const walletPrivateKey = "AARb87p4OlmRjUBCZOBy8iLGTWt1PVZ6gowPx7Lit+Tn"; if (walletPrivateKey === undefined) { throw new Error("SUI_DEVNET unset in environment"); } @@ -33,65 +27,54 @@ async function main() { ), provider ); - console.log(wallet) // Note: set these before calling init_pyth - const deployerCap = "0x480cb17f5776ef3bdf6d83cca798d8a34f5fba29ae701487b56ce0955af249f8" - const upgradeCap = "0x558bc846ca736cd69ddf6769402c1509f74c41200ecb635f0ec0cd3acf3feeb7" + const pythPackage = "0xb94d0d4a7ce7934e6bae2e430d5d7d5ba58c25d229aa1338ad543f0445bdfc7f" + const deployerCap = "0x80bbb9430366fcd6d8b22769988612e202055f12787cc2abdafed5e51f78f756" + const upgradeCap = "0xffdc98c07d8cd0d5327209153bd01fedb0b15862da99eb3a837931a44202d48b" - init_pyth(wallet, deployerCap, upgradeCap) + init_pyth(wallet, pythPackage, deployerCap, upgradeCap) } main(); /// Use a programmable transaction block to call -/// the Pyth setup::init_and_share_state function. +/// the Pyth pyth::pyth::init_pyth function. async function init_pyth( signer: RawSigner, + pythPackage: string, deployerCap: string, upgradeCap: string ) { - const PythPackage = "0x147415b6d9215a2233649ca24f5d51b94bb9a249b381b03fb4a639fc506ebbc6" const tx = new TransactionBlock(); - // init_and_share_state( - // deployer: DeployerCap, - // upgrade_cap: UpgradeCap, - // stale_price_threshold: u64, - // base_update_fee: u64, - // governance_data_source: DataSource, - // sources: vector, - // ctx: &mut TxContext - // ) - - // // fun new(emitter_chain: u64, emitter_address: ExternalAddress) - - let [governance_data_source] = tx.moveCall({ - target: `${PythPackage}::data_source::new`, - arguments: [ - tx.pure(5), // emitter chain - tx.pure("0x0000000000000000000000000000000000000000000000000000000000000002") // emitter address - ] - }) - tx.moveCall({ - target: `${PythPackage}::setup::init_and_share_state`, + target: `${pythPackage}::pyth::init_pyth`, arguments: [ tx.object(deployerCap), tx.object(upgradeCap), tx.pure(1000), // stale price threshold + tx.pure(121), // governance emitter chain id + tx.pure("3"), // governance emitter chain address + tx.pure([121]), // data source emitter chain ids + tx.pure(["3"]), // data source addresses tx.pure(0), // base update fee - governance_data_source, // governance data source - governance_data_source // vec ], }); - return signer.signAndExecuteTransactionBlock({ + tx.setGasBudget(1_000_000_000n); + + let result = await signer.signAndExecuteTransactionBlock({ transactionBlock: tx, options: { + showInput: true, showEffects: true, showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, }, }); - } \ No newline at end of file + console.log(result) + return result + } From 0b6b534570c47717a2e006707381f25b942bcba3 Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 1 May 2023 17:30:53 +0000 Subject: [PATCH 059/140] sui deploy and testing scripts --- .../sui/scripts/create_price_feed.ts | 85 +++++ .../sui/scripts/get_price_feed_vaas.ts | 26 ++ target_chains/sui/scripts/init_pyth.ts | 4 +- target_chains/sui/scripts/package-lock.json | 309 +++++++++++++++++- target_chains/sui/scripts/package.json | 5 +- target_chains/sui/scripts/registry.ts | 30 ++ target_chains/sui/scripts/tsconfig.json | 2 +- .../scripts/update_and_consume_price_feed.ts | 9 + 8 files changed, 465 insertions(+), 5 deletions(-) create mode 100644 target_chains/sui/scripts/create_price_feed.ts create mode 100644 target_chains/sui/scripts/get_price_feed_vaas.ts create mode 100644 target_chains/sui/scripts/registry.ts create mode 100644 target_chains/sui/scripts/update_and_consume_price_feed.ts diff --git a/target_chains/sui/scripts/create_price_feed.ts b/target_chains/sui/scripts/create_price_feed.ts new file mode 100644 index 0000000000..4cfc7c1e6e --- /dev/null +++ b/target_chains/sui/scripts/create_price_feed.ts @@ -0,0 +1,85 @@ +/// We build a programmable txn to create a price feed. +import dotenv from "dotenv" + +import { + RawSigner, + SUI_CLOCK_OBJECT_ID, + TransactionBlock, + fromB64, + normalizeSuiObjectId, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, +} from "@mysten/sui.js"; + +import {REGISTRY, NETWORK} from "./registry" + +const registry = REGISTRY["DEVNET"] +const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +dotenv.config({"path":"~/.env"}) + +async function main() { + const walletPrivateKey = process.env.SUI_DEVNET; + if (walletPrivateKey === undefined) { + throw new Error("SUI_DEVNET unset in environment"); + } + + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + Buffer.from(walletPrivateKey, "base64").subarray(1) + ), + provider + ); + + const vaa_bytes = "AQAAAAABAMN885gNTVEako6fczJq22AOFSRWdUsUOxPQVHSnxhj3ecU2gJVDBlAcY6G9FWmGCcGcdZ/5iVXQCm+0loHvfqwAZE/kXQAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAADugxEBUDJXSAADAAEAAQIABQCdWnl7akEQMaEEfYaw/fhuJFW+jn/vFq7yPbIJcj2vlB9hIm05vuoZ0zTxfC/rzifhJkbYRnWSTrsCuc2upocn4wAAAABBxD4gAAAAAAAJ2WD////4AAAAAEIrzm4AAAAAAAn/ewEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAABBxC0/AAAAAAAJi/EAAAAAZE/kXLWIXWbTUV6YNI7DMlk7XRbg/bhT77Ye1dzAvPgOkWCB11ZqO6f3KG7VT0rn6YP0QgrgseDziS4R+cSrEHu617kAAAAAZCplIAAAAAAAEu4I////+AAAAABkvzOKAAAAAAAQZDgBAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAAAZCplIAAAAAAAFIotAAAAAGRP5Fw3+21L/xkSgKfP+Av17aeofBUakdmoW6So+OLPlX5BjbMn2c8OzXk6F1+nCsjS3BCdRGJ1jlVpYsSoewLsTz8VAAAAAC1gXb0AAAAAAAdkLv////gAAAAALZa00gAAAAAABpwgAQAAAAEAAAACAAAAAGRP5F0AAAAAZE/kXQAAAABkT+RcAAAAAC1gXb0AAAAAAAdkLgAAAABkT+RcHNsaXh40VtKXfuDT1wdlI58IpChVuVCP1HnhXG3E0f7s9VN3DZsQll+Ptkdx6T9WkKGC7cMr5KMjbgyqpuBYGgAAAAewLri2AAAAAAEnq0n////4AAAAB7uEHmgAAAAAAV8hnAEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAAewBz2PAAAAAAE4kisAAAAAZE/kXGogZxwOP4yyGc4/RuWuCWpPL9+TbSvU2okl9wCH1R3YMAKUeVmHlykONjihcSwpveI2fQ7KeU93iyW1pHLxkt4AAAACtJQuKQAAAAAAn4lX////+AAAAAK3aIHUAAAAAACmrg4BAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAACtJOhZQAAAAAAnAlPAAAAAGRP5Fw="; + create_price_feeds(wallet, registry, vaa_bytes) +} + +main(); + +async function create_price_feeds( + signer: RawSigner, + registry: any, + vaa_bytes: string +) { + const tx = new TransactionBlock(); + + let PYTH_PACKAGE = registry["PYTH_PACKAGE"] + let PYTH_STATE = registry["PYTH_STATE"] + let WORM_PACKAGE = registry["WORM_PACKAGE"] + let WORM_STATE = registry["WORM_STATE"] + + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure(vaa_bytes), + tx.object(SUI_CLOCK_OBJECT_ID), // the clock + ], + }); + + tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, + arguments: [ + tx.object(PYTH_STATE), + verified_vaa, + tx.object(SUI_CLOCK_OBJECT_ID) + ], + }); + + tx.setGasBudget(1_000_000_000n); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result) + return result +} diff --git a/target_chains/sui/scripts/get_price_feed_vaas.ts b/target_chains/sui/scripts/get_price_feed_vaas.ts new file mode 100644 index 0000000000..9a812be523 --- /dev/null +++ b/target_chains/sui/scripts/get_price_feed_vaas.ts @@ -0,0 +1,26 @@ +import { PriceServiceConnection } from '@pythnetwork/price-service-client'; +import { Buffer } from 'buffer'; +async function main(){ + const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", { + priceFeedRequestConfig: { + binary: true, + }, + }) + // const priceIds = [ + // "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", + // "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", + // "0xdcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" + // ]; + const priceIds = [ + "0x61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" + ] + const priceFeedVAAs = await connection.getLatestVaas(priceIds); + console.log(priceFeedVAAs) + + let x = Buffer.from([19,148,123,212,139,24,229,63,218,238,231,127,52,115,57,26,199,39,198,56]).toString("hex") + console.log(x) + +} + +main(); + diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/init_pyth.ts index 946a61a42f..508b009a0b 100644 --- a/target_chains/sui/scripts/init_pyth.ts +++ b/target_chains/sui/scripts/init_pyth.ts @@ -45,7 +45,7 @@ async function init_pyth( pythPackage: string, deployerCap: string, upgradeCap: string - ) { +) { const tx = new TransactionBlock(); @@ -77,4 +77,4 @@ async function init_pyth( }); console.log(result) return result - } +} diff --git a/target_chains/sui/scripts/package-lock.json b/target_chains/sui/scripts/package-lock.json index b65ffbe0c5..1fb04c3f27 100644 --- a/target_chains/sui/scripts/package-lock.json +++ b/target_chains/sui/scripts/package-lock.json @@ -11,6 +11,9 @@ "dependencies": { "@certusone/wormhole-sdk": "^0.9.12", "@mysten/sui.js": "^0.32.2", + "@pythnetwork/client": "^2.17.0", + "@pythnetwork/price-service-client": "^1.4.0", + "@pythnetwork/price-service-sdk": "^1.2.0", "chai": "^4.3.7", "dotenv": "^16.0.3", "mocha": "^10.2.0", @@ -22,7 +25,7 @@ "devDependencies": { "@types/chai": "^4.3.4", "@types/mocha": "^10.0.1", - "@types/node": "^18.15.11" + "@types/node": "^18.16.3" } }, "node_modules/@apollo/client": { @@ -204,6 +207,62 @@ "pbts": "bin/pbts" } }, + "node_modules/@coral-xyz/anchor": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", + "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", + "dependencies": { + "@coral-xyz/borsh": "^0.26.0", + "@solana/web3.js": "^1.68.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, "node_modules/@coral-xyz/borsh": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", @@ -1631,6 +1690,91 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "node_modules/@pythnetwork/client": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.17.0.tgz", + "integrity": "sha512-hv285vehmLH6N762Z4jqvPTM+hCYnXQaUp6DMgLUpDHvE0mTbwW9PvlxYoUJZGtyeCDkgn9HrTWXPtnaXTRr+Q==", + "dependencies": { + "@coral-xyz/anchor": "^0.26.0", + "@coral-xyz/borsh": "^0.26.0", + "buffer": "^6.0.1" + }, + "peerDependencies": { + "@solana/web3.js": "^1.30.2" + } + }, + "node_modules/@pythnetwork/client/node_modules/@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@pythnetwork/price-service-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-client/-/price-service-client-1.4.0.tgz", + "integrity": "sha512-ibFxczDll/GdXX3jT7YB7+tbxyoXisop7EWXebaBjJqvc+OTctVNmJHCjlz4goDy5l1IDDsxEEYJyjckGsLjVA==", + "dependencies": { + "@pythnetwork/price-service-sdk": "*", + "@types/ws": "^8.5.3", + "axios": "^1.2.5", + "axios-retry": "^3.4.0", + "isomorphic-ws": "^4.0.1", + "ts-log": "^2.2.4", + "ws": "^8.6.0" + } + }, + "node_modules/@pythnetwork/price-service-client/node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@pythnetwork/price-service-client/node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@pythnetwork/price-service-client/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true + }, + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@pythnetwork/price-service-sdk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-sdk/-/price-service-sdk-1.2.0.tgz", + "integrity": "sha512-h4HcUwBPFEZwa5nLMTz9YnwdLE5m+Bfctzqbj09vpSJo2DyPHCyEXScFUuizWBbfofxB/pF+OnZXjU3pJxtm/w==" + }, "node_modules/@scure/base": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", @@ -2259,6 +2403,15 @@ "follow-redirects": "^1.14.4" } }, + "node_modules/axios-retry": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.4.0.tgz", + "integrity": "sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, "node_modules/balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -3680,6 +3833,17 @@ "node": ">=8" } }, + "node_modules/is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, "node_modules/is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -4540,6 +4704,11 @@ "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "node_modules/randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -5103,6 +5272,11 @@ "node": ">=8" } }, + "node_modules/ts-log": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", + "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==" + }, "node_modules/ts-mocha": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", @@ -5704,6 +5878,49 @@ } } }, + "@coral-xyz/anchor": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", + "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", + "requires": { + "@coral-xyz/borsh": "^0.26.0", + "@solana/web3.js": "^1.68.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + }, + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + } + } + }, "@coral-xyz/borsh": { "version": "0.2.6", "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", @@ -6762,6 +6979,72 @@ "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" }, + "@pythnetwork/client": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.17.0.tgz", + "integrity": "sha512-hv285vehmLH6N762Z4jqvPTM+hCYnXQaUp6DMgLUpDHvE0mTbwW9PvlxYoUJZGtyeCDkgn9HrTWXPtnaXTRr+Q==", + "requires": { + "@coral-xyz/anchor": "^0.26.0", + "@coral-xyz/borsh": "^0.26.0", + "buffer": "^6.0.1" + }, + "dependencies": { + "@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + } + } + }, + "@pythnetwork/price-service-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-client/-/price-service-client-1.4.0.tgz", + "integrity": "sha512-ibFxczDll/GdXX3jT7YB7+tbxyoXisop7EWXebaBjJqvc+OTctVNmJHCjlz4goDy5l1IDDsxEEYJyjckGsLjVA==", + "requires": { + "@pythnetwork/price-service-sdk": "*", + "@types/ws": "^8.5.3", + "axios": "^1.2.5", + "axios-retry": "^3.4.0", + "isomorphic-ws": "^4.0.1", + "ts-log": "^2.2.4", + "ws": "^8.6.0" + }, + "dependencies": { + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "requires": { + "@types/node": "*" + } + }, + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + } + } + }, + "@pythnetwork/price-service-sdk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-sdk/-/price-service-sdk-1.2.0.tgz", + "integrity": "sha512-h4HcUwBPFEZwa5nLMTz9YnwdLE5m+Bfctzqbj09vpSJo2DyPHCyEXScFUuizWBbfofxB/pF+OnZXjU3pJxtm/w==" + }, "@scure/base": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", @@ -7286,6 +7569,15 @@ "follow-redirects": "^1.14.4" } }, + "axios-retry": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.4.0.tgz", + "integrity": "sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==", + "requires": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, "balanced-match": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", @@ -8383,6 +8675,11 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" }, + "is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==" + }, "is-unicode-supported": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", @@ -9037,6 +9334,11 @@ } } }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, "randombytes": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", @@ -9461,6 +9763,11 @@ "tslib": "^2.1.0" } }, + "ts-log": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", + "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==" + }, "ts-mocha": { "version": "10.0.0", "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", diff --git a/target_chains/sui/scripts/package.json b/target_chains/sui/scripts/package.json index 07160009cc..c4e19e67fb 100644 --- a/target_chains/sui/scripts/package.json +++ b/target_chains/sui/scripts/package.json @@ -7,6 +7,9 @@ "dependencies": { "@certusone/wormhole-sdk": "^0.9.12", "@mysten/sui.js": "^0.32.2", + "@pythnetwork/client": "^2.17.0", + "@pythnetwork/price-service-client": "^1.4.0", + "@pythnetwork/price-service-sdk": "^1.2.0", "chai": "^4.3.7", "dotenv": "^16.0.3", "mocha": "^10.2.0", @@ -18,6 +21,6 @@ "devDependencies": { "@types/chai": "^4.3.4", "@types/mocha": "^10.0.1", - "@types/node": "^18.15.11" + "@types/node": "^18.16.3" } } diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts new file mode 100644 index 0000000000..3e258b7ac8 --- /dev/null +++ b/target_chains/sui/scripts/registry.ts @@ -0,0 +1,30 @@ +export const REGISTRY = +{ + DEVNET: { + "PYTH_PACKAGE_ID": "0x0", + "PYTH_STATE_ID": "0x0", + "WORMHOLE_PACKAGE_ID": "0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c", + "WORMHOLE_STATE_ID": "0x14cbf165349ad2934c8819f307e973c03d08ffe3a40548068298aeffa8a93bbf", + "RPC_URL": "http://0.0.0.0:9000" + }, + TESTNET: { + "PYTH_PACKAGE_ID": "0x0", + "PYTH_STATE_ID": "0x0", + "WORMHOLE_PACKAGE_ID": "0x0", + "WORMHOLE_STATE_ID": "0x0", + "RPC_URL": "https://fullnode.testnet.sui.io:443" + }, + MAINNET: { + "PYTH_PACKAGE_ID": "0x0", + "PYTH_STATE_ID": "0x0", + "WORMHOLE_PACKAGE_ID": "0x0", + "WORMHOLE_STATE_ID": "0x0", + "RPC_URL": "https://fullnode.mainnet.sui.io:443" + } +} + +export enum NETWORK { + DEVNET = "DEVNET", + TESTNET = "TESTNET", + MAINNET = "MAINNET", +} diff --git a/target_chains/sui/scripts/tsconfig.json b/target_chains/sui/scripts/tsconfig.json index 9dffe0cca5..d7af25b4d8 100644 --- a/target_chains/sui/scripts/tsconfig.json +++ b/target_chains/sui/scripts/tsconfig.json @@ -2,7 +2,7 @@ "compilerOptions": { "types": ["mocha", "chai"], "typeRoots": ["./node_modules/@types"], - "lib": ["es2020"], + "lib": ["es2020", "DOM"], "module": "commonjs", "target": "es2020", "strict": true, diff --git a/target_chains/sui/scripts/update_and_consume_price_feed.ts b/target_chains/sui/scripts/update_and_consume_price_feed.ts new file mode 100644 index 0000000000..64ab1a6cc2 --- /dev/null +++ b/target_chains/sui/scripts/update_and_consume_price_feed.ts @@ -0,0 +1,9 @@ +/// We build a programmable transaction to look up a PriceInfoObject ID +/// from a price feed ID, update the price feed, and finally fetch +/// the updated price. +/// +/// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet + +/// TODO + + From 7a286f6eae1da44d3da296a1e2f93fd1ae38ae42 Mon Sep 17 00:00:00 2001 From: optke3 Date: Mon, 1 May 2023 18:33:09 +0000 Subject: [PATCH 060/140] contract fixes, set_fee_recipient governance action, emit price update event only if fresh price update --- .../sources/governance/governance.move | 9 ++-- .../sources/governance/governance_action.move | 8 +-- .../governance/governance_witness.move | 2 +- ...ansfer_fee.move => set_fee_recipient.move} | 35 +++--------- target_chains/sui/contracts/sources/pyth.move | 5 +- .../sui/contracts/sources/state.move | 54 +++++-------------- 6 files changed, 31 insertions(+), 82 deletions(-) rename target_chains/sui/contracts/sources/governance/{transfer_fee.move => set_fee_recipient.move} (59%) diff --git a/target_chains/sui/contracts/sources/governance/governance.move b/target_chains/sui/contracts/sources/governance/governance.move index e38759951a..929dce6b8f 100644 --- a/target_chains/sui/contracts/sources/governance/governance.move +++ b/target_chains/sui/contracts/sources/governance/governance.move @@ -1,12 +1,10 @@ module pyth::governance { - use sui::tx_context::{TxContext}; - use pyth::governance_instruction; use pyth::governance_action; use pyth::set_governance_data_source; use pyth::set_data_sources; use pyth::set_stale_price_threshold; - use pyth::transfer_fee; + use pyth::set_fee_recipient; use pyth::state::{Self, State}; use pyth::set_update_fee; use pyth::governance_witness::{GovernanceWitness}; @@ -22,7 +20,6 @@ module pyth::governance { public fun execute_governance_instruction( pyth_state : &mut State, receipt: DecreeReceipt, - ctx: &mut TxContext ) { // This capability ensures that the current build version is used. let latest_only = state::assert_latest_only(pyth_state); @@ -64,8 +61,8 @@ module pyth::governance { set_update_fee::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else if (action == governance_action::new_set_stale_price_threshold()) { set_stale_price_threshold::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); - } else if (action == governance_action::new_set_transfer_fee()) { - transfer_fee::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction), ctx); + } else if (action == governance_action::new_set_fee_recipient()) { + set_fee_recipient::execute(&latest_only, pyth_state, governance_instruction::destroy(instruction)); } else { governance_instruction::destroy(instruction); assert!(false, E_INVALID_GOVERNANCE_ACTION); diff --git a/target_chains/sui/contracts/sources/governance/governance_action.move b/target_chains/sui/contracts/sources/governance/governance_action.move index eb31ee6023..4bfcb76731 100644 --- a/target_chains/sui/contracts/sources/governance/governance_action.move +++ b/target_chains/sui/contracts/sources/governance/governance_action.move @@ -6,7 +6,7 @@ module pyth::governance_action { const SET_DATA_SOURCES: u8 = 2; const SET_UPDATE_FEE: u8 = 3; const SET_STALE_PRICE_THRESHOLD: u8 = 4; - const TRANSFER_FEE: u8 = 5; + const SET_FEE_RECIPIENT: u8 = 5; const E_INVALID_GOVERNANCE_ACTION: u64 = 6; @@ -15,7 +15,7 @@ module pyth::governance_action { } public fun from_u8(value: u8): GovernanceAction { - assert!(CONTRACT_UPGRADE <= value && value <= TRANSFER_FEE, E_INVALID_GOVERNANCE_ACTION); + assert!(CONTRACT_UPGRADE <= value && value <= SET_FEE_RECIPIENT, E_INVALID_GOVERNANCE_ACTION); GovernanceAction { value } } @@ -43,7 +43,7 @@ module pyth::governance_action { GovernanceAction { value: SET_STALE_PRICE_THRESHOLD } } - public fun new_set_transfer_fee(): GovernanceAction { - GovernanceAction { value: TRANSFER_FEE } + public fun new_set_fee_recipient(): GovernanceAction { + GovernanceAction { value: SET_FEE_RECIPIENT } } } diff --git a/target_chains/sui/contracts/sources/governance/governance_witness.move b/target_chains/sui/contracts/sources/governance/governance_witness.move index 5a08b374d2..733a566449 100644 --- a/target_chains/sui/contracts/sources/governance/governance_witness.move +++ b/target_chains/sui/contracts/sources/governance/governance_witness.move @@ -4,7 +4,7 @@ module pyth::governance_witness { friend pyth::set_stale_price_threshold; friend pyth::set_update_fee; friend pyth::set_governance_data_source; - friend pyth::transfer_fee; + friend pyth::set_fee_recipient; friend pyth::contract_upgrade; /// A hot potato that ensures that only DecreeTickets diff --git a/target_chains/sui/contracts/sources/governance/transfer_fee.move b/target_chains/sui/contracts/sources/governance/set_fee_recipient.move similarity index 59% rename from target_chains/sui/contracts/sources/governance/transfer_fee.move rename to target_chains/sui/contracts/sources/governance/set_fee_recipient.move index 80e869d1af..716a95e5d3 100644 --- a/target_chains/sui/contracts/sources/governance/transfer_fee.move +++ b/target_chains/sui/contracts/sources/governance/set_fee_recipient.move @@ -1,12 +1,6 @@ -module pyth::transfer_fee { - - use sui::transfer::Self; - use sui::coin::Self; - use sui::tx_context::TxContext; - +module pyth::set_fee_recipient { use wormhole::cursor; use wormhole::external_address::{Self}; - use wormhole::bytes32::{Self}; use wormhole::governance_message::{Self, DecreeTicket}; use pyth::state::{Self, State, LatestOnly}; @@ -15,8 +9,7 @@ module pyth::transfer_fee { friend pyth::governance; - struct PythFee { - amount: u64, + struct PythFeeRecipient { recipient: address } @@ -28,36 +21,24 @@ module pyth::transfer_fee { state::governance_chain(pyth_state), state::governance_contract(pyth_state), state::governance_module(), - governance_action::get_value(governance_action::new_set_transfer_fee()) + governance_action::get_value(governance_action::new_set_fee_recipient()) ) } - public(friend) fun execute(latest_only: &LatestOnly, state: &mut State, payload: vector, ctx: &mut TxContext) { - - let PythFee { amount, recipient } = from_byte_vec(payload); - - transfer::public_transfer( - coin::from_balance( - state::withdraw_fee(latest_only, state, amount), - ctx - ), - recipient - ); + public(friend) fun execute(latest_only: &LatestOnly, state: &mut State, payload: vector) { + let PythFeeRecipient { recipient } = from_byte_vec(payload); + state::set_fee_recipient(latest_only, state, recipient); } - fun from_byte_vec(payload: vector): PythFee { + fun from_byte_vec(payload: vector): PythFeeRecipient { let cur = cursor::new(payload); - // This amount cannot be greater than max u64. - let amount = bytes32::to_u64_be(bytes32::take_bytes(&mut cur)); - // Recipient must be non-zero address. let recipient = external_address::take_nonzero(&mut cur); cursor::destroy_empty(cur); - PythFee { - amount: (amount as u64), + PythFeeRecipient { recipient: external_address::to_address(recipient) } } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index b26a61fad8..cd421983c4 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -171,7 +171,7 @@ module pyth::pyth { // to take in mutable references to PythState, because taking a global write lock on it // makes it so price updates can't execute in parallel, even if they act on different price feeds // (or PriceInfoObjects). - transfer::public_transfer(fee, @pyth); + transfer::public_transfer(fee, state::get_fee_recipient(pyth_state)); // Update the price feed from each VAA while (!vector::is_empty(&verified_vaas)) { @@ -234,10 +234,9 @@ module pyth::pyth { if (price_info::get_price_identifier(&price_info) == price_info::get_price_identifier(&update)){ found = true; - pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), clock::timestamp_ms(clock)/1000); - // Update the price info object with the new updated price info. if (is_fresh_update(&update, vector::borrow(price_info_objects, i))){ + pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), clock::timestamp_ms(clock)/1000); price_info::update_price_info_object( vector::borrow_mut(price_info_objects, i), update diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index a1e5d92b7c..0253bce5e0 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -1,10 +1,8 @@ module pyth::state { use std::vector; use sui::object::{Self, UID, ID}; - use sui::tx_context::{TxContext}; + use sui::tx_context::{Self, TxContext}; use sui::package::{UpgradeCap, UpgradeTicket, UpgradeReceipt}; - use sui::balance::{Balance}; - use sui::sui::SUI; use pyth::data_source::{Self, DataSource}; use pyth::price_info::{Self}; @@ -13,7 +11,6 @@ module pyth::state { use wormhole::consumed_vaas::{Self, ConsumedVAAs}; use wormhole::bytes32::{Self, Bytes32}; - use wormhole::fee_collector::{Self, FeeCollector}; use wormhole::package_utils::{Self}; use wormhole::external_address::{ExternalAddress}; @@ -28,7 +25,7 @@ module pyth::state { friend pyth::set_governance_data_source; friend pyth::migrate; friend pyth::contract_upgrade; - friend pyth::transfer_fee; + friend pyth::set_fee_recipient; friend pyth::setup; /// Build digest does not agree with current implementation. @@ -48,14 +45,12 @@ module pyth::state { governance_data_source: DataSource, stale_price_threshold: u64, base_update_fee: u64, + fee_recipient_address: address, last_executed_governance_sequence: u64, consumed_vaas: ConsumedVAAs, // Upgrade capability. - upgrade_cap: UpgradeCap, - - // Fee collector. - fee_collector: FeeCollector, + upgrade_cap: UpgradeCap } public(friend) fun new( @@ -105,10 +100,10 @@ module pyth::state { upgrade_cap, governance_data_source, stale_price_threshold, + fee_recipient_address: tx_context::sender(ctx), base_update_fee, consumed_vaas, - last_executed_governance_sequence: 0, - fee_collector: fee_collector::new(base_update_fee) + last_executed_governance_sequence: 0 } } @@ -129,6 +124,10 @@ module pyth::state { s.base_update_fee } + public fun get_fee_recipient(s: &State): address { + s.fee_recipient_address + } + public fun is_valid_data_source(s: &State, data_source: DataSource): bool { data_source::contains(&s.id, data_source) } @@ -197,30 +196,12 @@ module pyth::state { LatestOnly {} } - /// Deposit fee when sending Wormhole message. This method does not - /// necessarily have to be a `friend` to `wormhole::publish_message`. But - /// we also do not want an integrator to mistakenly deposit fees outside - /// of calling `publish_message`. - /// - /// See `wormhole::publish_message` for more info. - public(friend) fun deposit_fee( + public(friend) fun set_fee_recipient( _: &LatestOnly, self: &mut State, - fee: Balance + addr: address ) { - fee_collector::deposit_balance(&mut self.fee_collector, fee); - } - - /// Withdraw collected fees when governance action to transfer fees to a - /// particular recipient. - /// - /// See `wormhole::transfer_fee` for more info. - public(friend) fun withdraw_fee( - _: &LatestOnly, - self: &mut State, - amount: u64 - ): Balance { - fee_collector::withdraw_balance(&mut self.fee_collector, amount) + self.fee_recipient_address = addr; } /// Store `VAA` hash as a way to claim a VAA. This method prevents a VAA @@ -250,11 +231,6 @@ module pyth::state { package_utils::current_package(&self.id) } - - public(friend) fun set_fee_collector_fee(_: &LatestOnly, self: &mut State, amount: u64) { - fee_collector::change_fee(&mut self.fee_collector, amount); - } - public(friend) fun set_data_sources(_: &LatestOnly, s: &mut State, new_sources: vector) { // Empty the existing table of data sources registered in state. data_source::empty(&mut s.id); @@ -284,10 +260,6 @@ module pyth::state { s.stale_price_threshold = threshold_secs; } - public(friend) fun register_price_feed(_: &LatestOnly, s: &mut State, p: PriceIdentifier, id: ID){ - price_info::add(&mut s.id, p, id); - } - //////////////////////////////////////////////////////////////////////////// // // Upgradability From 74de7c6beb2f9cf9e56b0071e88b2d94df2b4365 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 00:35:27 +0000 Subject: [PATCH 061/140] init_pyth.ts, registry.ts, create_price_feed.ts --- .gitignore | 1 + .../sui/scripts/create_price_feed.ts | 34 ++++++++++------- .../sui/scripts/get_price_feed_vaas.ts | 3 +- target_chains/sui/scripts/init_pyth.ts | 35 +++++++++-------- target_chains/sui/scripts/registry.ts | 38 +++++++++++++++---- 5 files changed, 74 insertions(+), 37 deletions(-) diff --git a/.gitignore b/.gitignore index 419f54e69a..add7a01ca6 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ tsconfig.tsbuildinfo *~ *mnemonic* .envrc +*/*.sui.log* diff --git a/target_chains/sui/scripts/create_price_feed.ts b/target_chains/sui/scripts/create_price_feed.ts index 4cfc7c1e6e..baf75332ad 100644 --- a/target_chains/sui/scripts/create_price_feed.ts +++ b/target_chains/sui/scripts/create_price_feed.ts @@ -13,25 +13,29 @@ import { Connection, } from "@mysten/sui.js"; +dotenv.config({"path":"~/.env"}) + import {REGISTRY, NETWORK} from "./registry" -const registry = REGISTRY["DEVNET"] +let network = NETWORK.DEVNET +const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -dotenv.config({"path":"~/.env"}) +const walletPrivateKey = process.env.SUI_DEVNET; async function main() { - const walletPrivateKey = process.env.SUI_DEVNET; if (walletPrivateKey === undefined) { throw new Error("SUI_DEVNET unset in environment"); } - const wallet = new RawSigner( Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "base64").subarray(1) + network == "MAINNET" ? + Buffer.from(walletPrivateKey, "hex") + : + Buffer.from(walletPrivateKey, "base64").subarray(1) ), - provider + provider ); - + console.log(wallet.getAddress()) const vaa_bytes = "AQAAAAABAMN885gNTVEako6fczJq22AOFSRWdUsUOxPQVHSnxhj3ecU2gJVDBlAcY6G9FWmGCcGcdZ/5iVXQCm+0loHvfqwAZE/kXQAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAADugxEBUDJXSAADAAEAAQIABQCdWnl7akEQMaEEfYaw/fhuJFW+jn/vFq7yPbIJcj2vlB9hIm05vuoZ0zTxfC/rzifhJkbYRnWSTrsCuc2upocn4wAAAABBxD4gAAAAAAAJ2WD////4AAAAAEIrzm4AAAAAAAn/ewEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAABBxC0/AAAAAAAJi/EAAAAAZE/kXLWIXWbTUV6YNI7DMlk7XRbg/bhT77Ye1dzAvPgOkWCB11ZqO6f3KG7VT0rn6YP0QgrgseDziS4R+cSrEHu617kAAAAAZCplIAAAAAAAEu4I////+AAAAABkvzOKAAAAAAAQZDgBAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAAAZCplIAAAAAAAFIotAAAAAGRP5Fw3+21L/xkSgKfP+Av17aeofBUakdmoW6So+OLPlX5BjbMn2c8OzXk6F1+nCsjS3BCdRGJ1jlVpYsSoewLsTz8VAAAAAC1gXb0AAAAAAAdkLv////gAAAAALZa00gAAAAAABpwgAQAAAAEAAAACAAAAAGRP5F0AAAAAZE/kXQAAAABkT+RcAAAAAC1gXb0AAAAAAAdkLgAAAABkT+RcHNsaXh40VtKXfuDT1wdlI58IpChVuVCP1HnhXG3E0f7s9VN3DZsQll+Ptkdx6T9WkKGC7cMr5KMjbgyqpuBYGgAAAAewLri2AAAAAAEnq0n////4AAAAB7uEHmgAAAAAAV8hnAEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAAewBz2PAAAAAAE4kisAAAAAZE/kXGogZxwOP4yyGc4/RuWuCWpPL9+TbSvU2okl9wCH1R3YMAKUeVmHlykONjihcSwpveI2fQ7KeU93iyW1pHLxkt4AAAACtJQuKQAAAAAAn4lX////+AAAAAK3aIHUAAAAAACmrg4BAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAACtJOhZQAAAAAAnAlPAAAAAGRP5Fw="; create_price_feeds(wallet, registry, vaa_bytes) } @@ -45,17 +49,21 @@ async function create_price_feeds( ) { const tx = new TransactionBlock(); - let PYTH_PACKAGE = registry["PYTH_PACKAGE"] - let PYTH_STATE = registry["PYTH_STATE"] - let WORM_PACKAGE = registry["WORM_PACKAGE"] - let WORM_STATE = registry["WORM_STATE"] + let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] + let PYTH_STATE = registry["PYTH_STATE_ID"] + let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"] + let WORM_STATE = registry["WORMHOLE_STATE_ID"] + console.log("PYTH_PACKAGE: ", PYTH_PACKAGE) + console.log("PYTH_STATE: ", PYTH_STATE) + console.log("WORM_PACKAGE: ", WORM_PACKAGE) + console.log("WORM_STATE: ", WORM_STATE) let [verified_vaa] = tx.moveCall({ target: `${WORM_PACKAGE}::vaa::parse_and_verify`, arguments: [ tx.object(WORM_STATE), - tx.pure(vaa_bytes), - tx.object(SUI_CLOCK_OBJECT_ID), // the clock + tx.pure([...Buffer.from(vaa_bytes, "hex")]), + tx.object(SUI_CLOCK_OBJECT_ID), ], }); diff --git a/target_chains/sui/scripts/get_price_feed_vaas.ts b/target_chains/sui/scripts/get_price_feed_vaas.ts index 9a812be523..f765efe554 100644 --- a/target_chains/sui/scripts/get_price_feed_vaas.ts +++ b/target_chains/sui/scripts/get_price_feed_vaas.ts @@ -1,3 +1,5 @@ +/// Fetch price feed VAAs of interest from the Pyth +/// price feed service. import { PriceServiceConnection } from '@pythnetwork/price-service-client'; import { Buffer } from 'buffer'; async function main(){ @@ -23,4 +25,3 @@ async function main(){ } main(); - diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/init_pyth.ts index 508b009a0b..6df7da59e3 100644 --- a/target_chains/sui/scripts/init_pyth.ts +++ b/target_chains/sui/scripts/init_pyth.ts @@ -12,28 +12,34 @@ import { Connection, } from "@mysten/sui.js"; -const provider = new JsonRpcProvider(new Connection({ fullnode: "http://0.0.0.0:9000" })) +import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "./registry" dotenv.config({"path":"~/.env"}) +let network = NETWORK.DEVNET +const registry = REGISTRY[network] +const initial_data_sources = INITIAL_DATA_SOURCES[network] +const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"]})) +let walletPrivateKey = process.env.SUI_DEVNET; // <= Update this with the right private key + async function main() { - const walletPrivateKey = process.env.SUI_DEVNET; if (walletPrivateKey === undefined) { throw new Error("SUI_DEVNET unset in environment"); } const wallet = new RawSigner( Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "base64").subarray(1) + Buffer.from(walletPrivateKey, "base64").subarray(1) ), provider ); - // Note: set these before calling init_pyth - const pythPackage = "0xb94d0d4a7ce7934e6bae2e430d5d7d5ba58c25d229aa1338ad543f0445bdfc7f" - const deployerCap = "0x80bbb9430366fcd6d8b22769988612e202055f12787cc2abdafed5e51f78f756" - const upgradeCap = "0xffdc98c07d8cd0d5327209153bd01fedb0b15862da99eb3a837931a44202d48b" + const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] + + // Note: Set these before calling init_pyth + const upgradeCap = "0x83d655518f83d791b9617d6ec5bd62c4ef369d08e0cfd737902b4ca8f2a4695d" + const deployerCap = "0x272d403533abb081e0fd1fd53c5a9c1526bb10e75f7f2b6154953bee7ebe5f55" - init_pyth(wallet, pythPackage, deployerCap, upgradeCap) + init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap) } main(); @@ -48,18 +54,17 @@ async function init_pyth( ) { const tx = new TransactionBlock(); - tx.moveCall({ target: `${pythPackage}::pyth::init_pyth`, arguments: [ tx.object(deployerCap), tx.object(upgradeCap), - tx.pure(1000), // stale price threshold - tx.pure(121), // governance emitter chain id - tx.pure("3"), // governance emitter chain address - tx.pure([121]), // data source emitter chain ids - tx.pure(["3"]), // data source addresses - tx.pure(0), // base update fee + tx.pure(60), // stale price threshold + tx.pure(initial_data_sources["GOVERNANCE_CHAIN"]), // governance emitter chain id + tx.pure([...Buffer.from(initial_data_sources["GOVERNANCE_ADDRESS"], "hex")]), // governance emitter chain address + tx.pure(initial_data_sources["DATA_SOURCE_CHAINS"]), // data source emitter chain ids + tx.pure(initial_data_sources["DATA_SOURCE_ADDRESSES"].map( x => [...Buffer.from(x, "hex")])), // data source addresses + tx.pure(1), // base update fee ], }); diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index 3e258b7ac8..4dbaacef16 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -1,10 +1,16 @@ +export enum NETWORK { + DEVNET = "DEVNET", + TESTNET = "TESTNET", + MAINNET = "MAINNET", +} + export const REGISTRY = { DEVNET: { - "PYTH_PACKAGE_ID": "0x0", - "PYTH_STATE_ID": "0x0", - "WORMHOLE_PACKAGE_ID": "0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c", - "WORMHOLE_STATE_ID": "0x14cbf165349ad2934c8819f307e973c03d08ffe3a40548068298aeffa8a93bbf", + "PYTH_PACKAGE_ID": "0x65ff3e76bb70c3b081de7ebdbb8bc55f2072cdd1a9609a5406171f21c4f56e94", + "PYTH_STATE_ID": "0xcb00472afd998fe551d4a4e3d492ebdaf6bbb3d6aa083f46d40c48d15871b80f", + "WORMHOLE_PACKAGE_ID": "0x600c5bb1a273e44303f5853f83255ac3ca37f40c5696dde8584f1fd7f0449eb4", + "WORMHOLE_STATE_ID": "0x01e2adee6591782ff86d0594d1971561a9c5a9a77fab6b27f3f25d1be4f27f07", "RPC_URL": "http://0.0.0.0:9000" }, TESTNET: { @@ -23,8 +29,24 @@ export const REGISTRY = } } -export enum NETWORK { - DEVNET = "DEVNET", - TESTNET = "TESTNET", - MAINNET = "MAINNET", +export const INITIAL_DATA_SOURCES = { + // Devnet params are same as testnet. + DEVNET: { + GOVERNANCE_ADDRESS: "63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", + GOVERNANCE_CHAIN: 1, + DATA_SOURCE_ADDRESSES: ["f346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", "a27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6"], + DATA_SOURCE_CHAINS: [1, 26] + }, + TESTNET: { + GOVERNANCE_ADDRESS: "0x63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", + GOVERNANCE_CHAIN: 1, + DATA_SOURCE_ADDRESSES: ["0xf346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", "0xa27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6"], + DATA_SOURCE_CHAINS: [1, 26] + }, + MAINNET: { + GOVERNANCE_ADDRESS: "0x5635979a221c34931e32620b9293a463065555ea71fe97cd6237ade875b12e9e", + GOVERNANCE_CHAIN: 1, + DATA_SOURCE_ADDRESSES: ["0x6bb14509a612f01fbbc4cffeebd4bbfb492a86df717ebe92eb6df432a3f00a25", "0xf8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0"], + DATA_SOURCE_CHAINS: [1, 26] + } } From f61f2e8fd0d0cebb51ba78de32a5bfb3e6f39894 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 01:58:39 +0000 Subject: [PATCH 062/140] create price feeds --- target_chains/sui/scripts/create_price_feed.ts | 14 ++++++++++++-- target_chains/sui/scripts/init_pyth.ts | 10 +++++++--- target_chains/sui/scripts/registry.ts | 8 ++++---- 3 files changed, 23 insertions(+), 9 deletions(-) diff --git a/target_chains/sui/scripts/create_price_feed.ts b/target_chains/sui/scripts/create_price_feed.ts index baf75332ad..2ee4419c11 100644 --- a/target_chains/sui/scripts/create_price_feed.ts +++ b/target_chains/sui/scripts/create_price_feed.ts @@ -57,12 +57,13 @@ async function create_price_feeds( console.log("PYTH_STATE: ", PYTH_STATE) console.log("WORM_PACKAGE: ", WORM_PACKAGE) console.log("WORM_STATE: ", WORM_STATE) + console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) let [verified_vaa] = tx.moveCall({ target: `${WORM_PACKAGE}::vaa::parse_and_verify`, arguments: [ tx.object(WORM_STATE), - tx.pure([...Buffer.from(vaa_bytes, "hex")]), + tx.pure([...Buffer.from(vaa_bytes, "base64")]), tx.object(SUI_CLOCK_OBJECT_ID), ], }); @@ -71,11 +72,20 @@ async function create_price_feeds( target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, arguments: [ tx.object(PYTH_STATE), - verified_vaa, + tx.makeMoveVec({ objects: [verified_vaa] }), // has type vector tx.object(SUI_CLOCK_OBJECT_ID) ], }); + // tx.moveCall({ + // target: `${PYTH_PACKAGE}::state::get_fee_recipient`, + // arguments: [ + // tx.pure(PYTH_STATE), + // //tx.makeMoveVec({ objects: [verified_vaa] }), // has type vector + // //tx.object(SUI_CLOCK_OBJECT_ID) + // ], + // }); + tx.setGasBudget(1_000_000_000n); let result = await signer.signAndExecuteTransactionBlock({ diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/init_pyth.ts index 6df7da59e3..445e27df05 100644 --- a/target_chains/sui/scripts/init_pyth.ts +++ b/target_chains/sui/scripts/init_pyth.ts @@ -36,8 +36,8 @@ async function main() { const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] // Note: Set these before calling init_pyth - const upgradeCap = "0x83d655518f83d791b9617d6ec5bd62c4ef369d08e0cfd737902b4ca8f2a4695d" - const deployerCap = "0x272d403533abb081e0fd1fd53c5a9c1526bb10e75f7f2b6154953bee7ebe5f55" + const upgradeCap = "0x4d14b6d73323af805fa531bad542c44696d671858303ffc1bfbf70212e20b042" + const deployerCap = "0xa49273072591dce457a77fc71f47c7ec9244cbdbe870938e10bc0d7209bb54d1" init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap) } @@ -52,8 +52,12 @@ async function init_pyth( deployerCap: string, upgradeCap: string ) { - + console.log("GOVERNANCE_CHAIN: ", initial_data_sources["GOVERNANCE_CHAIN"]) + console.log("GOVERNANCE_ADDRESS: ", [...Buffer.from(initial_data_sources["GOVERNANCE_ADDRESS"], "hex")]) + console.log("DATA_SOURCE_CHAINS: ", initial_data_sources["DATA_SOURCE_CHAINS"]) + console.log("DATA_SOURCE_ADDRESSES: ", initial_data_sources["DATA_SOURCE_ADDRESSES"].map( x => [...Buffer.from(x, "hex")])) const tx = new TransactionBlock(); + tx.moveCall({ target: `${pythPackage}::pyth::init_pyth`, arguments: [ diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index 4dbaacef16..d5efa7f621 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -7,10 +7,10 @@ export enum NETWORK { export const REGISTRY = { DEVNET: { - "PYTH_PACKAGE_ID": "0x65ff3e76bb70c3b081de7ebdbb8bc55f2072cdd1a9609a5406171f21c4f56e94", - "PYTH_STATE_ID": "0xcb00472afd998fe551d4a4e3d492ebdaf6bbb3d6aa083f46d40c48d15871b80f", - "WORMHOLE_PACKAGE_ID": "0x600c5bb1a273e44303f5853f83255ac3ca37f40c5696dde8584f1fd7f0449eb4", - "WORMHOLE_STATE_ID": "0x01e2adee6591782ff86d0594d1971561a9c5a9a77fab6b27f3f25d1be4f27f07", + "PYTH_PACKAGE_ID": "0xcd7f3fe6338a618e3d8df8445cd8e8daa0af35c956c4d35cbac78d63d7869ece", + "PYTH_STATE_ID": "0x5a7ef4ddaa1035448f11644f1eb0c4ca26f6bf094c8ee5c3309ddbed386b03fa", + "WORMHOLE_PACKAGE_ID": "0xef530c697826910f09c82292a0344d11e8371f9462d0d1f470b79cde92311188", + "WORMHOLE_STATE_ID": "0xd7e478de3e6925127da439586a64867ada00405fa683e3ab9c4359c3bbcfd9ca", "RPC_URL": "http://0.0.0.0:9000" }, TESTNET: { From d52701d1cfdbee1e589a0e1b3d2a5eaf54a9eb4a Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 02:47:19 +0000 Subject: [PATCH 063/140] deploy script and Move.toml --- target_chains/sui/scripts/deploy.ts | 108 ++++++++++++++++++++++++++++ 1 file changed, 108 insertions(+) create mode 100644 target_chains/sui/scripts/deploy.ts diff --git a/target_chains/sui/scripts/deploy.ts b/target_chains/sui/scripts/deploy.ts new file mode 100644 index 0000000000..469d6e0f7f --- /dev/null +++ b/target_chains/sui/scripts/deploy.ts @@ -0,0 +1,108 @@ +/// Deploy Pyth to Sui testnet (devnet deploy can be done via CLI) +import { + fromB64, + getPublishedObjectChanges, + normalizeSuiObjectId, + RawSigner, + TransactionBlock, + SUI_CLOCK_OBJECT_ID, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, + } from "@mysten/sui.js"; + import { execSync } from "child_process"; + import fs from "fs"; + import { resolve } from "path"; + +import dotenv from "dotenv" + +import {REGISTRY, NETWORK} from "./registry" + +dotenv.config({"path":"~/.env"}) + +let network = NETWORK.TESTNET +const registry = REGISTRY[network] +const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const walletPrivateKey = process.env.SUI_TESTNET; + +async function main(){ + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + Buffer.from(walletPrivateKey, "hex") + ), + provider + ); + await publishPackage(wallet, "../contracts"); +} + +main() + + async function publishPackage( + signer: RawSigner, + //network: Network, + packagePath: string + ) { + try { + // Build contracts + const buildOutput: { + modules: string[]; + dependencies: string[]; + } = JSON.parse( + execSync( + `sui move build --dump-bytecode-as-base64 --path ${packagePath} 2> /dev/null`, + { + encoding: "utf-8", + } + ) + ); + + console.log("buildOutput: ", buildOutput) + + // Publish contracts + const transactionBlock = new TransactionBlock(); + + // important + transactionBlock.setGasBudget(5000000000); + + const [upgradeCap] = transactionBlock.publish({ + modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), + dependencies: buildOutput.dependencies.map((d: string) => + normalizeSuiObjectId(d) + ), + }); + + // Transfer upgrade capability to deployer + transactionBlock.transferObjects( + [upgradeCap], + transactionBlock.pure(await signer.getAddress()) + ); + + // Execute transactions + const res = await signer.signAndExecuteTransactionBlock({ + transactionBlock, + options: { + showInput: true, + showObjectChanges: true, + }, + }); + + // // Update network-specific Move.toml with package ID + // const publishEvents = getPublishedObjectChanges(res); + // if (publishEvents.length !== 1) { + // throw new Error( + // "No publish event found in transaction:" + + // JSON.stringify(res.objectChanges, null, 2) + // ); + // } + + // Return publish transaction info + return res; + } catch (e) { + throw e; + } finally { + } + }; From 2bdc573b542327083e664830c8e1383b7864d9a7 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 04:30:23 +0000 Subject: [PATCH 064/140] some contract updates to compile with WH branch sui/mainnet deployment script updates --- target_chains/sui/contracts/Move.lock | 4 +- target_chains/sui/contracts/Move.toml | 4 +- .../sui/contracts/sources/state.move | 21 +--- target_chains/sui/scripts/deploy.ts | 16 +-- target_chains/sui/scripts/deploy_wormhole.ts | 108 ++++++++++++++++++ target_chains/sui/scripts/init_pyth.ts | 10 +- target_chains/sui/scripts/init_wormhole.ts | 105 +++++++++++++++++ target_chains/sui/scripts/registry.ts | 14 +-- 8 files changed, 240 insertions(+), 42 deletions(-) create mode 100644 target_chains/sui/scripts/deploy_wormhole.ts create mode 100644 target_chains/sui/scripts/init_wormhole.ts diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index f1cd2334a9..de1bf93efd 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -10,11 +10,11 @@ dependencies = [ [[move.package]] name = "MoveStdlib" -source = { git = "https://github.com/MystenLabs/sui.git", rev = "3a70c4374090b020b95465787f3220a95d8ab0ba", subdir = "crates/sui-framework/packages/move-stdlib" } +source = { git = "https://github.com/MystenLabs/sui.git", rev = "09b2081498366df936abae26eea4b2d5cafb2788", subdir = "crates/sui-framework/packages/move-stdlib" } [[move.package]] name = "Sui" -source = { git = "https://github.com/MystenLabs/sui.git", rev = "3a70c4374090b020b95465787f3220a95d8ab0ba", subdir = "crates/sui-framework/packages/sui-framework" } +source = { git = "https://github.com/MystenLabs/sui.git", rev = "09b2081498366df936abae26eea4b2d5cafb2788", subdir = "crates/sui-framework/packages/sui-framework" } dependencies = [ { name = "MoveStdlib" }, diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 7d1622133c..2e4b796cd8 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -5,11 +5,11 @@ version = "0.0.1" [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" subdir = "crates/sui-framework/packages/sui-framework" -rev = "3a70c4374090b020b95465787f3220a95d8ab0ba" +rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] local = "../../../../wormhole/sui/wormhole" [addresses] pyth = "0x0" -wormhole = "0x07aa529a7ab00007b9081f47728537d47d7fe0f3d7fded2c01fa34340ac7a71c" \ No newline at end of file +wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" \ No newline at end of file diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 0253bce5e0..6429ef42ac 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -79,20 +79,12 @@ module pyth::state { let consumed_vaas = consumed_vaas::new(ctx); - - // Set first version for this package. - package_utils::init_version( - &mut uid, - version_control::current_version() - ); - // Initialize package info. This will be used for emitting information // of successful migrations. package_utils::init_package_info( &mut uid, - &upgrade_cap, - bytes32::default(), - bytes32::default() + version_control::current_version(), + &upgrade_cap ); State { @@ -340,20 +332,13 @@ module pyth::state { // fields do not exist in the previous build (0.1.0). // See `state::new` above. - // Need to remove old dynamic field. This was set when performing the - // upgrade on previous version. We need to take this digest and then - // initialize package info with this as the pending digest. - let pending_digest = - sui::dynamic_field::remove(&mut self.id, CurrentDigest {}); - // Initialize package info. This will be used for emitting information // of successful migrations. let upgrade_cap = &self.upgrade_cap; package_utils::init_package_info( &mut self.id, + version_control::current_version(), upgrade_cap, - bytes32::default(), - pending_digest ); } diff --git a/target_chains/sui/scripts/deploy.ts b/target_chains/sui/scripts/deploy.ts index 469d6e0f7f..158c6eaef9 100644 --- a/target_chains/sui/scripts/deploy.ts +++ b/target_chains/sui/scripts/deploy.ts @@ -90,14 +90,14 @@ main() }, }); - // // Update network-specific Move.toml with package ID - // const publishEvents = getPublishedObjectChanges(res); - // if (publishEvents.length !== 1) { - // throw new Error( - // "No publish event found in transaction:" + - // JSON.stringify(res.objectChanges, null, 2) - // ); - // } + // Update network-specific Move.toml with package ID + const publishEvents = getPublishedObjectChanges(res); + if (publishEvents.length !== 1) { + throw new Error( + "No publish event found in transaction:" + + JSON.stringify(res.objectChanges, null, 2) + ); + } // Return publish transaction info return res; diff --git a/target_chains/sui/scripts/deploy_wormhole.ts b/target_chains/sui/scripts/deploy_wormhole.ts new file mode 100644 index 0000000000..477e0bb370 --- /dev/null +++ b/target_chains/sui/scripts/deploy_wormhole.ts @@ -0,0 +1,108 @@ +/// Deploy Pyth to Sui testnet (devnet deploy can be done via CLI) +import { + fromB64, + getPublishedObjectChanges, + normalizeSuiObjectId, + RawSigner, + TransactionBlock, + SUI_CLOCK_OBJECT_ID, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, + } from "@mysten/sui.js"; + import { execSync } from "child_process"; + import fs from "fs"; + import { resolve } from "path"; + +import dotenv from "dotenv" + +import {REGISTRY, NETWORK} from "./registry" + +dotenv.config({"path":"~/.env"}) + +let network = NETWORK.TESTNET +const registry = REGISTRY[network] +const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const walletPrivateKey = process.env.SUI_TESTNET; + +async function main(){ + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + Buffer.from(walletPrivateKey, "hex") + ), + provider + ); + await publishPackage(wallet, "~/developer/wormhole/sui/wormhole"); +} + +main() + + async function publishPackage( + signer: RawSigner, + //network: Network, + packagePath: string + ) { + try { + // Build contracts + const buildOutput: { + modules: string[]; + dependencies: string[]; + } = JSON.parse( + execSync( + `sui move build --dump-bytecode-as-base64 --path ${packagePath} 2> /dev/null`, + { + encoding: "utf-8", + } + ) + ); + + console.log("buildOutput: ", buildOutput) + + // Publish contracts + const transactionBlock = new TransactionBlock(); + + // important + transactionBlock.setGasBudget(5000000000); + + const [upgradeCap] = transactionBlock.publish({ + modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), + dependencies: buildOutput.dependencies.map((d: string) => + normalizeSuiObjectId(d) + ), + }); + + // Transfer upgrade capability to deployer + transactionBlock.transferObjects( + [upgradeCap], + transactionBlock.pure(await signer.getAddress()) + ); + + // Execute transactions + const res = await signer.signAndExecuteTransactionBlock({ + transactionBlock, + options: { + showInput: true, + showObjectChanges: true, + }, + }); + + // Update network-specific Move.toml with package ID + const publishEvents = getPublishedObjectChanges(res); + if (publishEvents.length !== 1) { + throw new Error( + "No publish event found in transaction:" + + JSON.stringify(res.objectChanges, null, 2) + ); + } + + // Return publish transaction info + return res; + } catch (e) { + throw e; + } finally { + } + }; diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/init_pyth.ts index 445e27df05..c277db8907 100644 --- a/target_chains/sui/scripts/init_pyth.ts +++ b/target_chains/sui/scripts/init_pyth.ts @@ -15,15 +15,15 @@ import { import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "./registry" dotenv.config({"path":"~/.env"}) -let network = NETWORK.DEVNET +let network = NETWORK.TESTNET // <= Update this when changing network const registry = REGISTRY[network] const initial_data_sources = INITIAL_DATA_SOURCES[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"]})) -let walletPrivateKey = process.env.SUI_DEVNET; // <= Update this with the right private key +let walletPrivateKey = process.env.SUI_TESTNET_BASE_64; // <= Update this when changing network async function main() { if (walletPrivateKey === undefined) { - throw new Error("SUI_DEVNET unset in environment"); + throw new Error("SUI_TESTNET unset in environment"); } const wallet = new RawSigner( @@ -36,8 +36,8 @@ async function main() { const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] // Note: Set these before calling init_pyth - const upgradeCap = "0x4d14b6d73323af805fa531bad542c44696d671858303ffc1bfbf70212e20b042" - const deployerCap = "0xa49273072591dce457a77fc71f47c7ec9244cbdbe870938e10bc0d7209bb54d1" + const upgradeCap = "0xca0db6d95d5c8498cd5de0b6767e24b6fed45af463abca66982e476e3bb4bba4" + const deployerCap = "0xc28b1f1efc64db5647c931cb643f5cd4e3bdac38e0b64cd6f0fb13dfae94e98c" init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap) } diff --git a/target_chains/sui/scripts/init_wormhole.ts b/target_chains/sui/scripts/init_wormhole.ts new file mode 100644 index 0000000000..6ba9a4515a --- /dev/null +++ b/target_chains/sui/scripts/init_wormhole.ts @@ -0,0 +1,105 @@ +/// Initialize Wormhole on Sui testnet +import { + fromB64, + getPublishedObjectChanges, + normalizeSuiObjectId, + RawSigner, + TransactionBlock, + SUI_CLOCK_OBJECT_ID, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, + } from "@mysten/sui.js"; + import { execSync } from "child_process"; + import fs from "fs"; + import { resolve } from "path"; + +import dotenv from "dotenv" + +import {REGISTRY, NETWORK} from "./registry" + +dotenv.config({"path":"~/.env"}) + +let network = NETWORK.TESTNET +const registry = REGISTRY[network] +const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const walletPrivateKey = process.env.SUI_TESTNET; + +async function main(){ + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + Buffer.from(walletPrivateKey, "hex") + ), + provider + ); + await init_wormhole(wallet, registry["WORMHOLE_PACKAGE_ID"]); +} + +main() + + async function init_wormhole( + signer: RawSigner, + WORMHOLE_PACKAGE_ID: string + ) { + try { + // Publish contracts + const tx = new TransactionBlock(); + + // important + tx.setGasBudget(2500000000); + + // public fun complete( + // deployer: DeployerCap, + // upgrade_cap: UpgradeCap, + // governance_chain: u16, + // governance_contract: vector, + // guardian_set_index: u32, + // initial_guardians: vector>, + // guardian_set_seconds_to_live: u32, + // message_fee: u64, + let DEPLOYER_CAP = "0x19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba"; + let UPGRADE_CAP = "0x746cbe8c14f9ef163fc4e18c1edc6fc61041e118f7d6e751bcc4162b722636d4" + let GOVERNANCE_CHAIN = 1; + let GOVERNANCE_CONTRACT = "04"; + let GUARDIAN_SET_INDEX = 0; + let INITIAL_GUARDIANS = ["13947bd48b18e53fdaeee77f3473391ac727c638"] + let GUARDIAN_SECONDS_TO_LIVE = "100000000" + let MESSAGE_FEE = 0 + + tx.moveCall({ + target: `${WORMHOLE_PACKAGE_ID}::setup::complete`, + arguments: [ + tx.object(DEPLOYER_CAP), + tx.object(UPGRADE_CAP), + tx.pure(GOVERNANCE_CHAIN), + tx.pure(GOVERNANCE_CONTRACT), + tx.pure(GUARDIAN_SET_INDEX), + tx.pure(INITIAL_GUARDIANS.map(x=>[...Buffer.from(x, "hex")])), + tx.pure(GUARDIAN_SECONDS_TO_LIVE), + tx.pure(MESSAGE_FEE) + ], + }); + + let res = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(res) + + // Return publish transaction info + return res; + } catch (e) { + throw e; + } finally { + } + }; diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index d5efa7f621..b4e07dca20 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -14,10 +14,10 @@ export const REGISTRY = "RPC_URL": "http://0.0.0.0:9000" }, TESTNET: { - "PYTH_PACKAGE_ID": "0x0", + "PYTH_PACKAGE_ID": "0xc17dcfa2b406995f5ea5237565418ebe6106467430a5a8ba198e451ca86f35e2", "PYTH_STATE_ID": "0x0", - "WORMHOLE_PACKAGE_ID": "0x0", - "WORMHOLE_STATE_ID": "0x0", + "WORMHOLE_PACKAGE_ID": "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", + "WORMHOLE_STATE_ID": "0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a", "RPC_URL": "https://fullnode.testnet.sui.io:443" }, MAINNET: { @@ -38,15 +38,15 @@ export const INITIAL_DATA_SOURCES = { DATA_SOURCE_CHAINS: [1, 26] }, TESTNET: { - GOVERNANCE_ADDRESS: "0x63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", + GOVERNANCE_ADDRESS: "63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", GOVERNANCE_CHAIN: 1, - DATA_SOURCE_ADDRESSES: ["0xf346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", "0xa27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6"], + DATA_SOURCE_ADDRESSES: ["f346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", "a27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6"], DATA_SOURCE_CHAINS: [1, 26] }, MAINNET: { - GOVERNANCE_ADDRESS: "0x5635979a221c34931e32620b9293a463065555ea71fe97cd6237ade875b12e9e", + GOVERNANCE_ADDRESS: "5635979a221c34931e32620b9293a463065555ea71fe97cd6237ade875b12e9e", GOVERNANCE_CHAIN: 1, - DATA_SOURCE_ADDRESSES: ["0x6bb14509a612f01fbbc4cffeebd4bbfb492a86df717ebe92eb6df432a3f00a25", "0xf8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0"], + DATA_SOURCE_ADDRESSES: ["6bb14509a612f01fbbc4cffeebd4bbfb492a86df717ebe92eb6df432a3f00a25", "f8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0"], DATA_SOURCE_CHAINS: [1, 26] } } From 891383750f2744c1911668a67e000c23c592ec63 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 04:36:11 +0000 Subject: [PATCH 065/140] update README --- target_chains/sui/README.md | 10 ++++++---- target_chains/sui/scripts/init_pyth.ts | 4 ++-- target_chains/sui/scripts/registry.ts | 4 ++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 59f4315505..98694cb69d 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -50,12 +50,12 @@ Fetch the price of the updated Price Info Object. ## 3. Contracts Registry ### Pyth on Testnet -- WORMHOLE_ID: TBA -- PYTH_STATE_ID: TBA +- PYTH_PACKAGE_ID: [0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73](https://explorer.sui.io/object/0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73), +- PYTH_STATE_ID: [0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8](https://explorer.sui.io/object/0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8), ### Wormhole on Testnet -- WORMHOLE_ID: `0x3542d705ec6a7e05045288ec99a6c4b4e3ded999b6feab720fab535b08fa51f8` -- WORMHOLE_STATE_ID: `0x69ae41bdef4770895eb4e7aaefee5e4673acc08f6917b4856cf55549c4573ca8` +- WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7), +- WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a), ### Pyth on Mainnet - PYTH_ID: TBA @@ -65,3 +65,5 @@ Fetch the price of the updated Price Info Object. - WORMHOLE_ID: TBA - WORMHOLE_STATE_ID: TBA + + diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/init_pyth.ts index c277db8907..882793c693 100644 --- a/target_chains/sui/scripts/init_pyth.ts +++ b/target_chains/sui/scripts/init_pyth.ts @@ -36,8 +36,8 @@ async function main() { const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] // Note: Set these before calling init_pyth - const upgradeCap = "0xca0db6d95d5c8498cd5de0b6767e24b6fed45af463abca66982e476e3bb4bba4" - const deployerCap = "0xc28b1f1efc64db5647c931cb643f5cd4e3bdac38e0b64cd6f0fb13dfae94e98c" + const upgradeCap = "0xf253b931426f2aba0b0150b86323a41061b6e6e34e7f88f07a80c01d8903d442" + const deployerCap = "0x26a3696ca84a81f0545c66093b63245cc32f2907c823d89d7eb1146ae12f27ca" init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap) } diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index b4e07dca20..8379139e6d 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -14,8 +14,8 @@ export const REGISTRY = "RPC_URL": "http://0.0.0.0:9000" }, TESTNET: { - "PYTH_PACKAGE_ID": "0xc17dcfa2b406995f5ea5237565418ebe6106467430a5a8ba198e451ca86f35e2", - "PYTH_STATE_ID": "0x0", + "PYTH_PACKAGE_ID": "0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73", + "PYTH_STATE_ID": "0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8", "WORMHOLE_PACKAGE_ID": "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", "WORMHOLE_STATE_ID": "0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a", "RPC_URL": "https://fullnode.testnet.sui.io:443" From d594c967b16ca5a46834abb6a878d5251fb9a4e6 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 05:01:48 +0000 Subject: [PATCH 066/140] update readme --- target_chains/sui/README.md | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 98694cb69d..14c983caa1 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -49,21 +49,18 @@ Fetch the price of the updated Price Info Object. ## 3. Contracts Registry -### Pyth on Testnet +## Pyth on Testnet - PYTH_PACKAGE_ID: [0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73](https://explorer.sui.io/object/0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73), - PYTH_STATE_ID: [0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8](https://explorer.sui.io/object/0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8), -### Wormhole on Testnet +## Wormhole on Testnet - WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7), - WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a), -### Pyth on Mainnet +## Pyth on Mainnet - PYTH_ID: TBA - PYTH_STATE_ID: TBA -### Wormhole on Mainnet +## Wormhole on Mainnet - WORMHOLE_ID: TBA - WORMHOLE_STATE_ID: TBA - - - From 661d4ea78f7d800f2ee3e8fb6df6125721f0635a Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 05:05:11 +0000 Subject: [PATCH 067/140] rename TS scripts, edit readme --- target_chains/sui/README.md | 28 +++++++++++-------- ...rice_feed.ts => pyth_create_price_feed.ts} | 0 .../sui/scripts/{deploy.ts => pyth_deploy.ts} | 0 ...et_price_feed_vaas.ts => pyth_get_vaas.ts} | 0 .../{init_pyth.ts => pyth_init_state.ts} | 0 ...ice_feed.ts => pyth_update_price_feeds.ts} | 0 ...{deploy_wormhole.ts => wormhole_deploy.ts} | 0 .../{init_wormhole.ts => wormhole_init.ts} | 0 8 files changed, 16 insertions(+), 12 deletions(-) rename target_chains/sui/scripts/{create_price_feed.ts => pyth_create_price_feed.ts} (100%) rename target_chains/sui/scripts/{deploy.ts => pyth_deploy.ts} (100%) rename target_chains/sui/scripts/{get_price_feed_vaas.ts => pyth_get_vaas.ts} (100%) rename target_chains/sui/scripts/{init_pyth.ts => pyth_init_state.ts} (100%) rename target_chains/sui/scripts/{update_and_consume_price_feed.ts => pyth_update_price_feeds.ts} (100%) rename target_chains/sui/scripts/{deploy_wormhole.ts => wormhole_deploy.ts} (100%) rename target_chains/sui/scripts/{init_wormhole.ts => wormhole_init.ts} (100%) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 14c983caa1..e63eda0dfd 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -3,20 +3,20 @@ ## 1. Background Pyth price feeds on Sui are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability and serve as wrappers around the `PriceInfo` object, which in turn wraps around the `PriceFeed`, the arrival time of the latest price update, and the attestation time of the latest update. -`PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that act on price feeds, e.g. +`PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that act on price feeds, e.g. - `update_price_feeds` - `update_price_feed_from_single_vaa` - `update_price_feeds_if_fresh` ## 2. How to Update and Consume Price Feeds -To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). +To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Assume the ID is `PRICE_INFO_OBJECT_ID`. Then, chain together the following sequence of function calls: ### 1. `wormhole::parse_and_verify` -Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot potato object. +Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot potato object. ```Rust public fun parse_and_verify( wormhole_state: &State, @@ -24,7 +24,7 @@ Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot the_clock: &Clock ): VAA ``` -### 2.`pyth:update_price_feeds` +### 2.`pyth:update_price_feeds` Vectorize the `VAA` from the previous step and pass it to `update_price_feeds`. ```Rust public fun update_price_feeds( @@ -36,26 +36,30 @@ Vectorize the `VAA` from the previous step and pass it to `update_price_feeds`. ) ``` -### 3. `pyth::get_price` +### 3. `pyth::get_price` Finally, get the price of the updated price feed in `PriceInfoObject`. ```Rust public fun get_price( - state: &PythState, - price_info_object: &PriceInfoObject, + state: &PythState, + price_info_object: &PriceInfoObject, clock: &Clock ): Price ``` Fetch the price of the updated Price Info Object. -## 3. Contracts Registry + +## 3. Examples +See the `./scripts` folder for examples of programmable transactions for creating price feeds, updating price feeds, and deploying contracts. + +## 4. Contracts Registry ## Pyth on Testnet -- PYTH_PACKAGE_ID: [0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73](https://explorer.sui.io/object/0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73), -- PYTH_STATE_ID: [0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8](https://explorer.sui.io/object/0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8), +- PYTH_PACKAGE_ID: [0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73](https://explorer.sui.io/object/0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73) +- PYTH_STATE_ID: [0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8](https://explorer.sui.io/object/0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8) ## Wormhole on Testnet -- WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7), -- WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a), +- WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7) +- WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a) ## Pyth on Mainnet - PYTH_ID: TBA diff --git a/target_chains/sui/scripts/create_price_feed.ts b/target_chains/sui/scripts/pyth_create_price_feed.ts similarity index 100% rename from target_chains/sui/scripts/create_price_feed.ts rename to target_chains/sui/scripts/pyth_create_price_feed.ts diff --git a/target_chains/sui/scripts/deploy.ts b/target_chains/sui/scripts/pyth_deploy.ts similarity index 100% rename from target_chains/sui/scripts/deploy.ts rename to target_chains/sui/scripts/pyth_deploy.ts diff --git a/target_chains/sui/scripts/get_price_feed_vaas.ts b/target_chains/sui/scripts/pyth_get_vaas.ts similarity index 100% rename from target_chains/sui/scripts/get_price_feed_vaas.ts rename to target_chains/sui/scripts/pyth_get_vaas.ts diff --git a/target_chains/sui/scripts/init_pyth.ts b/target_chains/sui/scripts/pyth_init_state.ts similarity index 100% rename from target_chains/sui/scripts/init_pyth.ts rename to target_chains/sui/scripts/pyth_init_state.ts diff --git a/target_chains/sui/scripts/update_and_consume_price_feed.ts b/target_chains/sui/scripts/pyth_update_price_feeds.ts similarity index 100% rename from target_chains/sui/scripts/update_and_consume_price_feed.ts rename to target_chains/sui/scripts/pyth_update_price_feeds.ts diff --git a/target_chains/sui/scripts/deploy_wormhole.ts b/target_chains/sui/scripts/wormhole_deploy.ts similarity index 100% rename from target_chains/sui/scripts/deploy_wormhole.ts rename to target_chains/sui/scripts/wormhole_deploy.ts diff --git a/target_chains/sui/scripts/init_wormhole.ts b/target_chains/sui/scripts/wormhole_init.ts similarity index 100% rename from target_chains/sui/scripts/init_wormhole.ts rename to target_chains/sui/scripts/wormhole_init.ts From e8b409bb1171774e20c42d98d884cf0f2a5cbbc7 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 05:43:28 +0000 Subject: [PATCH 068/140] add rev for wormhole dependency, edit README --- target_chains/sui/README.md | 6 ++++++ target_chains/sui/contracts/Makefile | 2 +- target_chains/sui/contracts/Move.local.toml | 15 +++++++++++++++ target_chains/sui/contracts/Move.lock | 2 +- target_chains/sui/contracts/Move.toml | 11 ++++++++--- 5 files changed, 31 insertions(+), 5 deletions(-) create mode 100644 target_chains/sui/contracts/Move.local.toml diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index e63eda0dfd..418635eaa6 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -51,6 +51,12 @@ Fetch the price of the updated Price Info Object. ## 3. Examples See the `./scripts` folder for examples of programmable transactions for creating price feeds, updating price feeds, and deploying contracts. +To build and test the contracts, run the following +``` +$ make test +$ make build +``` + ## 4. Contracts Registry ## Pyth on Testnet diff --git a/target_chains/sui/contracts/Makefile b/target_chains/sui/contracts/Makefile index 82b8c54edc..5e3e7fc5ad 100644 --- a/target_chains/sui/contracts/Makefile +++ b/target_chains/sui/contracts/Makefile @@ -6,4 +6,4 @@ test: .PHONY: build build: - sui move build \ No newline at end of file + sui move build -d \ No newline at end of file diff --git a/target_chains/sui/contracts/Move.local.toml b/target_chains/sui/contracts/Move.local.toml new file mode 100644 index 0000000000..2e4b796cd8 --- /dev/null +++ b/target_chains/sui/contracts/Move.local.toml @@ -0,0 +1,15 @@ +[package] +name = "Pyth" +version = "0.0.1" + +[dependencies.Sui] +git = "https://github.com/MystenLabs/sui.git" +subdir = "crates/sui-framework/packages/sui-framework" +rev = "09b2081498366df936abae26eea4b2d5cafb2788" + +[dependencies.Wormhole] +local = "../../../../wormhole/sui/wormhole" + +[addresses] +pyth = "0x0" +wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" \ No newline at end of file diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index de1bf93efd..0aad7c17f4 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { local = "../../../../wormhole/sui/wormhole" } +source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "2c4b52dd04e6cbe07f3ad648e7a0b8cfb63bad5a", subdir = "sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 2e4b796cd8..08d74bf8ff 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,8 +8,13 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] -local = "../../../../wormhole/sui/wormhole" +git = "https://github.com/wormhole-foundation/wormhole.git" +subdir = "sui/wormhole" +rev = "2c4b52dd04e6cbe07f3ad648e7a0b8cfb63bad5a" [addresses] -pyth = "0x0" -wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" \ No newline at end of file +pyth = "_" + +[dev-addresses] +pyth = "0x100" +wormhole = "0x200" \ No newline at end of file From 2d2a61e9b62ef6f9c4fec2fc635dd72cc6aea08c Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 14:28:43 +0000 Subject: [PATCH 069/140] edit create_price_feed script --- target_chains/sui/scripts/pyth_create_price_feed.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/target_chains/sui/scripts/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth_create_price_feed.ts index 2ee4419c11..600de23d70 100644 --- a/target_chains/sui/scripts/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth_create_price_feed.ts @@ -17,14 +17,14 @@ dotenv.config({"path":"~/.env"}) import {REGISTRY, NETWORK} from "./registry" -let network = NETWORK.DEVNET +let network = NETWORK.TESTNET const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_DEVNET; +const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; async function main() { if (walletPrivateKey === undefined) { - throw new Error("SUI_DEVNET unset in environment"); + throw new Error("SUI_TESTNET unset in environment"); } const wallet = new RawSigner( Ed25519Keypair.fromSecretKey( From d712840219b1d38bfa5342ce33a8b1846f4051fc Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 18:21:50 +0000 Subject: [PATCH 070/140] - add price_info::get function for getting PriceInfoObject ID from PriceIdentifier - add test for price_info::get --- .../sui/contracts/sources/price_info.move | 43 +++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index af139540f3..b5f02d4f63 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -10,6 +10,7 @@ module pyth::price_info { const KEY: vector = b"price_info"; const E_PRICE_INFO_REGISTRY_ALREADY_EXISTS: u64 = 0; const E_PRICE_IDENTIFIER_ALREADY_REGISTERED: u64 = 1; + const E_PRICE_IDENTIFIER_NOT_REGISTERED: u64 = 2; friend pyth::pyth; friend pyth::state; @@ -54,6 +55,19 @@ module pyth::price_info { ) } + public fun get(parent_id: &UID, price_identifier: PriceIdentifier): vector { + assert!( + contains(parent_id, price_identifier), + E_PRICE_IDENTIFIER_NOT_REGISTERED + ); + object::id_to_bytes( + table::borrow( + dynamic_object_field::borrow(parent_id, KEY), + price_identifier + ) + ) + } + public fun contains(parent_id: &UID, price_identifier: PriceIdentifier): bool { let ref = dynamic_object_field::borrow(parent_id, KEY); table::contains(ref, price_identifier) @@ -81,6 +95,35 @@ module pyth::price_info { } } + #[test] + public fun test_get_price_info_object_id_from_price_identifier(){ + use sui::object::{Self}; + use sui::test_scenario::{Self, ctx}; + use pyth::price_identifier::{Self}; + let scenario = test_scenario::begin(@pyth); + let uid = object::new(ctx(&mut scenario)); + + // Create a new price info object registry. + new_price_info_registry(&mut uid, ctx(&mut scenario)); + + // Register a price info object in the registry. + let price_identifier = price_identifier::from_byte_vec(x"ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace"); + + // Create a new ID. + let id = object::id_from_bytes(x"19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba"); + + add(&mut uid, price_identifier, id); + + let result = get(&uid, price_identifier); + + // Assert that ID matches original. + assert!(result==x"19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba", 0); + + // Clean up. + object::delete(uid); + test_scenario::end(scenario); + } + #[test_only] public fun destroy(price_info: PriceInfoObject){ let PriceInfoObject { From 0ce3119895fbf5b4d1fb8d3e791696a95cd563e9 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 19:25:27 +0000 Subject: [PATCH 071/140] contract updates --- target_chains/sui/contracts/Move.lock | 2 +- target_chains/sui/contracts/Move.toml | 4 ++-- target_chains/sui/contracts/sources/pyth.move | 3 ++- target_chains/sui/contracts/sources/version_control.move | 6 +++--- 4 files changed, 8 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index 0aad7c17f4..f3fd239382 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "2c4b52dd04e6cbe07f3ad648e7a0b8cfb63bad5a", subdir = "sui/wormhole" } +source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "760db3c81072a4290ca8fbca6dddd47f335f2028", subdir = "sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 08d74bf8ff..62f3e8aa6b 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -10,11 +10,11 @@ rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] git = "https://github.com/wormhole-foundation/wormhole.git" subdir = "sui/wormhole" -rev = "2c4b52dd04e6cbe07f3ad648e7a0b8cfb63bad5a" +rev = "760db3c81072a4290ca8fbca6dddd47f335f2028" [addresses] pyth = "_" [dev-addresses] pyth = "0x100" -wormhole = "0x200" \ No newline at end of file +wormhole = "0x200" diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index cd421983c4..34ec870970 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -486,12 +486,13 @@ module pyth::pyth_tests{ ]; let guardian_set_seconds_to_live = 5678; let message_fee = 350; - + let guardian_set_index = 0; wormhole_setup::complete( deployer_cap, upgrade_cap, governance_chain, governance_contract, + guardian_set_index, initial_guardians, guardian_set_seconds_to_live, message_fee, diff --git a/target_chains/sui/contracts/sources/version_control.move b/target_chains/sui/contracts/sources/version_control.move index 2401231c9c..88a1f67d8e 100644 --- a/target_chains/sui/contracts/sources/version_control.move +++ b/target_chains/sui/contracts/sources/version_control.move @@ -22,8 +22,8 @@ module pyth::version_control { V__0_1_1 {} } - public(friend) fun previous_version(): V__0_1_0 { - V__0_1_0 {} + public(friend) fun previous_version(): V__DUMMY { + V__DUMMY {} } //////////////////////////////////////////////////////////////////////////// @@ -77,7 +77,7 @@ module pyth::version_control { } #[test_only] - public fun previous_version_test_only(): V__0_1_0 { + public fun previous_version_test_only(): V__DUMMY { previous_version() } } From 6ad0055d1b2ad49b4adb7889011ee72b0f549769 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 2 May 2023 19:35:02 +0000 Subject: [PATCH 072/140] script edits --- .../sui/scripts/pyth_create_price_feed.ts | 23 +- .../sui/scripts/pyth_update_price_feeds.ts | 112 +- target_chains/sui/scripts/rust/Cargo.lock | 12268 ++++++++++++++++ target_chains/sui/scripts/rust/Cargo.toml | 28 + target_chains/sui/scripts/rust/src/main.rs | 153 + 5 files changed, 12582 insertions(+), 2 deletions(-) create mode 100644 target_chains/sui/scripts/rust/Cargo.lock create mode 100644 target_chains/sui/scripts/rust/Cargo.toml create mode 100644 target_chains/sui/scripts/rust/src/main.rs diff --git a/target_chains/sui/scripts/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth_create_price_feed.ts index 600de23d70..3669f3a8cf 100644 --- a/target_chains/sui/scripts/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth_create_price_feed.ts @@ -11,6 +11,7 @@ import { Ed25519Keypair, testnetConnection, Connection, + TypeTagSerializer } from "@mysten/sui.js"; dotenv.config({"path":"~/.env"}) @@ -68,11 +69,31 @@ async function create_price_feeds( ], }); + // console.log("parsed thing: ", TypeTagSerializer.tagToString( + // { vector: + // { + // address: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7', + // module: 'vaa', + // name: 'VAA' + // } + // } + // ) + // ) + tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, arguments: [ tx.object(PYTH_STATE), - tx.makeMoveVec({ objects: [verified_vaa] }), // has type vector + //tx.makeMoveVec({ type: TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr('0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA')), objects: [verified_vaa] }), // has type vector + //@ts-ignore + tx.makeMoveVec({ type: TypeTagSerializer.tagToString( + { vector: { struct : { + address: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7', + module: 'vaa', + name: 'VAA', + typeParams: [] + }}} + ), objects: [verified_vaa] }), // has type vector, tx.object(SUI_CLOCK_OBJECT_ID) ], }); diff --git a/target_chains/sui/scripts/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth_update_price_feeds.ts index 64ab1a6cc2..a21b3aa699 100644 --- a/target_chains/sui/scripts/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth_update_price_feeds.ts @@ -3,7 +3,117 @@ /// the updated price. /// /// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet +import dotenv from "dotenv" -/// TODO +import { + RawSigner, + SUI_CLOCK_OBJECT_ID, + TransactionBlock, + fromB64, + normalizeSuiObjectId, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, + TypeTag +} from "@mysten/sui.js"; +dotenv.config({"path":"~/.env"}) +import {REGISTRY, NETWORK} from "./registry" + +let network = NETWORK.TESTNET +const registry = REGISTRY[network] +const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; + +async function main() { + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + network == "MAINNET" ? + Buffer.from(walletPrivateKey, "hex") + : + Buffer.from(walletPrivateKey, "base64").subarray(1) + ), + provider + ); + console.log(wallet.getAddress()) + + // update a single price feed + let price_feed_id = "0x61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3"; // ATOM/USD + update_price_feeds(wallet, registry, price_feed_id) +} + +main(); + +async function update_price_feeds( + signer: RawSigner, + registry: any, + price_feed_id: string +) { + const tx = new TransactionBlock(); + + let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] + let PYTH_STATE = registry["PYTH_STATE_ID"] + let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"] + let WORM_STATE = registry["WORMHOLE_STATE_ID"] + console.log("PYTH_PACKAGE: ", PYTH_PACKAGE) + console.log("PYTH_STATE: ", PYTH_STATE) + console.log("WORM_PACKAGE: ", WORM_PACKAGE) + console.log("WORM_STATE: ", WORM_STATE) + console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) + + let [price_info_object_id] = tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::`, + arguments: [ + tx.object(PYTH_STATE), + tx.makeMoveVec({ type: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA', objects: [verified_vaa] }), // has type vector + tx.object(SUI_CLOCK_OBJECT_ID) + ], + }); + + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(vaa_bytes, "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, + arguments: [ + tx.object(PYTH_STATE), + tx.makeMoveVec({ type: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA', objects: [verified_vaa] }), // has type vector + tx.object(SUI_CLOCK_OBJECT_ID) + ], + }); + + // tx.moveCall({ + // target: `${PYTH_PACKAGE}::state::get_fee_recipient`, + // arguments: [ + // tx.pure(PYTH_STATE), + // //tx.makeMoveVec({ objects: [verified_vaa] }), // has type vector + // //tx.object(SUI_CLOCK_OBJECT_ID) + // ], + // }); + + tx.setGasBudget(1_000_000_000n); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result) + return result +} diff --git a/target_chains/sui/scripts/rust/Cargo.lock b/target_chains/sui/scripts/rust/Cargo.lock new file mode 100644 index 0000000000..250287a7a9 --- /dev/null +++ b/target_chains/sui/scripts/rust/Cargo.lock @@ -0,0 +1,12268 @@ +# This file is automatically @generated by Cargo. +# It is not intended for manual editing. +version = 3 + +[[package]] +name = "Inflector" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" + +[[package]] +name = "addr2line" +version = "0.19.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" +dependencies = [ + "gimli", +] + +[[package]] +name = "adler" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" + +[[package]] +name = "aead" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" +dependencies = [ + "crypto-common", + "generic-array", +] + +[[package]] +name = "aes" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" +dependencies = [ + "cfg-if", + "cipher", + "cpufeatures", +] + +[[package]] +name = "aes-gcm" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" +dependencies = [ + "aead", + "aes", + "cipher", + "ctr", + "ghash", + "subtle", +] + +[[package]] +name = "ahash" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +dependencies = [ + "getrandom 0.2.9", + "once_cell", + "version_check", +] + +[[package]] +name = "ahash" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" +dependencies = [ + "cfg-if", + "getrandom 0.2.9", + "once_cell", + "version_check", +] + +[[package]] +name = "aho-corasick" +version = "0.7.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" +dependencies = [ + "memchr", +] + +[[package]] +name = "aho-corasick" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" +dependencies = [ + "memchr", +] + +[[package]] +name = "aliasable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" + +[[package]] +name = "alloc-no-stdlib" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" + +[[package]] +name = "alloc-stdlib" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" +dependencies = [ + "alloc-no-stdlib", +] + +[[package]] +name = "android_system_properties" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" +dependencies = [ + "libc", +] + +[[package]] +name = "anemo" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" +dependencies = [ + "anyhow", + "async-trait", + "bincode", + "bytes", + "ed25519", + "futures", + "hex", + "http", + "matchit 0.5.0", + "pin-project-lite", + "pkcs8 0.9.0", + "quinn", + "quinn-proto", + "rand 0.8.5", + "rcgen", + "ring", + "rustls", + "serde 1.0.160", + "serde_json", + "tap", + "tokio", + "tokio-util 0.7.8", + "tower", + "tracing", + "webpki", + "x509-parser", +] + +[[package]] +name = "anemo-build" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" +dependencies = [ + "prettyplease", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "anemo-cli" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" +dependencies = [ + "anemo", + "anemo-tower", + "bytes", + "clap 4.2.5", + "dashmap", + "rand 0.8.5", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "anemo-tower" +version = "0.0.0" +source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" +dependencies = [ + "anemo", + "bytes", + "dashmap", + "futures", + "governor", + "nonzero_ext", + "pin-project-lite", + "tokio", + "tower", + "tracing", + "uuid", +] + +[[package]] +name = "anes" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" + +[[package]] +name = "ansi_term" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" +dependencies = [ + "winapi", +] + +[[package]] +name = "anstream" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" +dependencies = [ + "anstyle", + "anstyle-parse", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is-terminal", + "utf8parse", +] + +[[package]] +name = "anstyle" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" + +[[package]] +name = "anstyle-parse" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" +dependencies = [ + "utf8parse", +] + +[[package]] +name = "anstyle-query" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "anstyle-wincon" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" +dependencies = [ + "anstyle", + "windows-sys 0.48.0", +] + +[[package]] +name = "anyhow" +version = "1.0.71" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" +dependencies = [ + "backtrace", +] + +[[package]] +name = "arbitrary" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" +dependencies = [ + "derive_arbitrary", +] + +[[package]] +name = "arc-swap" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "ark-bls12-381" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-bn254" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-crypto-primitives" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-r1cs-std", + "ark-relations", + "ark-serialize", + "ark-snark", + "ark-std", + "blake2", + "derivative", + "digest 0.10.6", + "rayon", + "sha2 0.10.6", + "tracing", +] + +[[package]] +name = "ark-ec" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" +dependencies = [ + "ark-ff", + "ark-poly", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "itertools", + "num-traits 0.2.15", + "rayon", + "zeroize", +] + +[[package]] +name = "ark-ff" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" +dependencies = [ + "ark-ff-asm", + "ark-ff-macros", + "ark-serialize", + "ark-std", + "derivative", + "digest 0.10.6", + "itertools", + "num-bigint", + "num-traits 0.2.15", + "paste", + "rayon", + "rustc_version", + "zeroize", +] + +[[package]] +name = "ark-ff-asm" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" +dependencies = [ + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "ark-ff-macros" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" +dependencies = [ + "num-bigint", + "num-traits 0.2.15", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "ark-groth16" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" +dependencies = [ + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-poly", + "ark-relations", + "ark-serialize", + "ark-std", + "rayon", +] + +[[package]] +name = "ark-poly" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" +dependencies = [ + "ark-ff", + "ark-serialize", + "ark-std", + "derivative", + "hashbrown 0.13.2", + "rayon", +] + +[[package]] +name = "ark-r1cs-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "de1d1472e5cb020cb3405ce2567c91c8d43f21b674aef37b0202f5c3304761db" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-relations", + "ark-std", + "derivative", + "num-bigint", + "num-integer", + "num-traits 0.2.15", + "tracing", +] + +[[package]] +name = "ark-relations" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" +dependencies = [ + "ark-ff", + "ark-std", + "tracing", + "tracing-subscriber 0.2.25", +] + +[[package]] +name = "ark-secp256r1" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" +dependencies = [ + "ark-ec", + "ark-ff", + "ark-std", +] + +[[package]] +name = "ark-serialize" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" +dependencies = [ + "ark-serialize-derive", + "ark-std", + "digest 0.10.6", + "num-bigint", +] + +[[package]] +name = "ark-serialize-derive" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "ark-snark" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" +dependencies = [ + "ark-ff", + "ark-relations", + "ark-serialize", + "ark-std", +] + +[[package]] +name = "ark-std" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" +dependencies = [ + "num-traits 0.2.15", + "rand 0.8.5", + "rayon", +] + +[[package]] +name = "arrayref" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" + +[[package]] +name = "arrayvec" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" + +[[package]] +name = "arrayvec" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" + +[[package]] +name = "asn1-rs" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" +dependencies = [ + "asn1-rs-derive", + "asn1-rs-impl", + "displaydoc", + "nom 7.1.3", + "num-traits 0.2.15", + "rusticata-macros", + "thiserror", + "time 0.3.20", +] + +[[package]] +name = "asn1-rs-derive" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "asn1-rs-impl" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "assert_cmd" +version = "2.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151" +dependencies = [ + "anstyle", + "bstr", + "doc-comment", + "predicates 3.0.3", + "predicates-core", + "predicates-tree", + "wait-timeout", +] + +[[package]] +name = "async-compression" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" +dependencies = [ + "brotli", + "flate2", + "futures-core", + "memchr", + "pin-project-lite", + "tokio", +] + +[[package]] +name = "async-lock" +version = "2.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" +dependencies = [ + "event-listener", +] + +[[package]] +name = "async-recursion" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "async-stream" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" +dependencies = [ + "async-stream-impl", + "futures-core", + "pin-project-lite", +] + +[[package]] +name = "async-stream-impl" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "async-task" +version = "4.3.0" +source = "git+https://github.com/mystenmark/async-task?rev=4e45b26e11126b191701b9b2ce5e2346b8d7682f#4e45b26e11126b191701b9b2ce5e2346b8d7682f" + +[[package]] +name = "async-trait" +version = "0.1.68" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "async_once" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" + +[[package]] +name = "atomicwrites" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb8f2cd6962fa53c0e2a9d3f97eaa7dbd1e3cbbeeb4745403515b42ae07b3ff6" +dependencies = [ + "tempfile", + "winapi", +] + +[[package]] +name = "atty" +version = "0.2.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" +dependencies = [ + "hermit-abi 0.1.19", + "libc", + "winapi", +] + +[[package]] +name = "auto_ops" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" + +[[package]] +name = "autocfg" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" + +[[package]] +name = "autotools" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77" +dependencies = [ + "cc", +] + +[[package]] +name = "aws-config" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c3d1e2a1f1ab3ac6c4b884e37413eaa03eb9d901e4fc68ee8f5c1d49721680e" +dependencies = [ + "aws-credential-types", + "aws-http", + "aws-sdk-sso", + "aws-sdk-sts", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-json", + "aws-smithy-types", + "aws-types", + "bytes", + "hex", + "http", + "hyper", + "ring", + "time 0.3.20", + "tokio", + "tower", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-credential-types" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb0696a0523a39a19087747e4dafda0362dc867531e3d72a3f195564c84e5e08" +dependencies = [ + "aws-smithy-async", + "aws-smithy-types", + "tokio", + "tracing", + "zeroize", +] + +[[package]] +name = "aws-endpoint" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80a4f935ab6a1919fbfd6102a80c4fccd9ff5f47f94ba154074afe1051903261" +dependencies = [ + "aws-smithy-http", + "aws-smithy-types", + "aws-types", + "http", + "regex", + "tracing", +] + +[[package]] +name = "aws-http" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82976ca4e426ee9ca3ffcf919d9b2c8d14d0cd80d43cc02173737a8f07f28d4d" +dependencies = [ + "aws-credential-types", + "aws-smithy-http", + "aws-smithy-types", + "aws-types", + "bytes", + "http", + "http-body", + "lazy_static 1.4.0", + "percent-encoding", + "pin-project-lite", + "tracing", +] + +[[package]] +name = "aws-sdk-sso" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca0119bacf0c42f587506769390983223ba834e605f049babe514b2bd646dbb2" +dependencies = [ + "aws-credential-types", + "aws-endpoint", + "aws-http", + "aws-sig-auth", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-json", + "aws-smithy-types", + "aws-types", + "bytes", + "http", + "regex", + "tokio-stream", + "tower", +] + +[[package]] +name = "aws-sdk-sts" +version = "0.24.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "270b6a33969ebfcb193512fbd5e8ee5306888ad6c6d5d775cdbfb2d50d94de26" +dependencies = [ + "aws-credential-types", + "aws-endpoint", + "aws-http", + "aws-sig-auth", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-json", + "aws-smithy-query", + "aws-smithy-types", + "aws-smithy-xml", + "aws-types", + "bytes", + "http", + "regex", + "tower", + "tracing", +] + +[[package]] +name = "aws-sig-auth" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "660a02a98ab1af83bd8d714afbab2d502ba9b18c49e7e4cddd6bf8837ff778cb" +dependencies = [ + "aws-credential-types", + "aws-sigv4", + "aws-smithy-http", + "aws-types", + "http", + "tracing", +] + +[[package]] +name = "aws-sigv4" +version = "0.54.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86529e7b64d902efea8fff52c1b2529368d04f90305cf632729e3713f6b57dc0" +dependencies = [ + "aws-smithy-http", + "form_urlencoded", + "hex", + "hmac", + "http", + "once_cell", + "percent-encoding", + "regex", + "sha2 0.10.6", + "time 0.3.20", + "tracing", +] + +[[package]] +name = "aws-smithy-async" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "63c712a28a4f2f2139759235c08bf98aca99d4fdf1b13c78c5f95613df0a5db9" +dependencies = [ + "futures-util", + "pin-project-lite", + "tokio", + "tokio-stream", +] + +[[package]] +name = "aws-smithy-client" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "104ca17f56cde00a10207169697dfe9c6810db339d52fb352707e64875b30a44" +dependencies = [ + "aws-smithy-async", + "aws-smithy-http", + "aws-smithy-http-tower", + "aws-smithy-types", + "bytes", + "fastrand", + "http", + "http-body", + "hyper", + "hyper-rustls", + "lazy_static 1.4.0", + "pin-project-lite", + "tokio", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-http" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "873f316f1833add0d3aa54ed1b0cd252ddd88c792a0cf839886400099971e844" +dependencies = [ + "aws-smithy-types", + "bytes", + "bytes-utils", + "futures-core", + "http", + "http-body", + "hyper", + "once_cell", + "percent-encoding", + "pin-project-lite", + "pin-utils", + "tracing", +] + +[[package]] +name = "aws-smithy-http-tower" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f38231d3f5dac9ac7976f44e12803add1385119ffca9e5f050d8e980733d164" +dependencies = [ + "aws-smithy-http", + "aws-smithy-types", + "bytes", + "http", + "http-body", + "pin-project-lite", + "tower", + "tracing", +] + +[[package]] +name = "aws-smithy-json" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd83ff2b79e9f729746fcc8ad798676b68fe6ea72986571569a5306a277a182" +dependencies = [ + "aws-smithy-types", +] + +[[package]] +name = "aws-smithy-query" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2f0445dafe9d2cd50b44339ae3c3ed46549aad8ac696c52ad660b3e7ae8682b" +dependencies = [ + "aws-smithy-types", + "urlencoding", +] + +[[package]] +name = "aws-smithy-types" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8161232eda10290f5136610a1eb9de56aceaccd70c963a26a260af20ac24794f" +dependencies = [ + "base64-simd", + "itoa", + "num-integer", + "ryu", + "time 0.3.20", +] + +[[package]] +name = "aws-smithy-xml" +version = "0.54.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "343ffe9a9bb3f542675f4df0e0d5933513d6ad038ca3907ad1767ba690a99684" +dependencies = [ + "xmlparser", +] + +[[package]] +name = "aws-types" +version = "0.54.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8f15b34253b68cde08e39b0627cc6101bcca64351229484b4743392c035d057" +dependencies = [ + "aws-credential-types", + "aws-smithy-async", + "aws-smithy-client", + "aws-smithy-http", + "aws-smithy-types", + "http", + "rustc_version", + "tracing", +] + +[[package]] +name = "axum" +version = "0.6.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" +dependencies = [ + "async-trait", + "axum-core", + "bitflags", + "bytes", + "futures-util", + "headers", + "http", + "http-body", + "hyper", + "itoa", + "matchit 0.7.0", + "memchr", + "mime", + "percent-encoding", + "pin-project-lite", + "rustversion", + "serde 1.0.160", + "serde_json", + "serde_path_to_error", + "serde_urlencoded", + "sync_wrapper", + "tokio", + "tower", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-core" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" +dependencies = [ + "async-trait", + "bytes", + "futures-util", + "http", + "http-body", + "mime", + "rustversion", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-extra" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a320103719de37b7b4da4c8eb629d4573f6bcfd3dfe80d3208806895ccf81d" +dependencies = [ + "axum", + "bytes", + "futures-util", + "http", + "mime", + "pin-project-lite", + "tokio", + "tower", + "tower-http 0.3.5", + "tower-layer", + "tower-service", +] + +[[package]] +name = "axum-server" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bace45b270e36e3c27a190c65883de6dfc9f1d18c829907c127464815dc67b24" +dependencies = [ + "arc-swap", + "bytes", + "futures-util", + "http", + "http-body", + "hyper", + "pin-project-lite", + "rustls", + "rustls-pemfile", + "tokio", + "tokio-rustls", + "tower-service", +] + +[[package]] +name = "backoff" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" +dependencies = [ + "futures-core", + "getrandom 0.2.9", + "instant", + "pin-project-lite", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "backtrace" +version = "0.3.67" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" +dependencies = [ + "addr2line", + "cc", + "cfg-if", + "libc", + "miniz_oxide 0.6.2", + "object", + "rustc-demangle", +] + +[[package]] +name = "base-x" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" + +[[package]] +name = "base16ct" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" + +[[package]] +name = "base16ct" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" + +[[package]] +name = "base64" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" + +[[package]] +name = "base64" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" + +[[package]] +name = "base64-simd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" +dependencies = [ + "outref", + "vsimd", +] + +[[package]] +name = "base64ct" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" + +[[package]] +name = "bcs" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bd3ffe8b19a604421a5d461d4a70346223e535903fbc3067138bddbebddcf77" +dependencies = [ + "serde 1.0.160", + "thiserror", +] + +[[package]] +name = "beef" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "better_any" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" +dependencies = [ + "better_typeid_derive", +] + +[[package]] +name = "better_typeid_derive" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "bimap" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" + +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "bindgen" +version = "0.64.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" +dependencies = [ + "bitflags", + "cexpr", + "clang-sys", + "lazy_static 1.4.0", + "lazycell", + "peeking_take_while", + "proc-macro2 1.0.56", + "quote 1.0.26", + "regex", + "rustc-hash", + "shlex", + "syn 1.0.109", +] + +[[package]] +name = "bip32" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" +dependencies = [ + "bs58", + "hmac", + "k256", + "once_cell", + "pbkdf2", + "rand_core 0.6.4", + "ripemd", + "sha2 0.10.6", + "subtle", + "zeroize", +] + +[[package]] +name = "bit-set" +version = "0.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" +dependencies = [ + "bit-vec", +] + +[[package]] +name = "bit-vec" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" + +[[package]] +name = "bitcoin-private" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" + +[[package]] +name = "bitcoin_hashes" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" +dependencies = [ + "bitcoin-private", +] + +[[package]] +name = "bitflags" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" + +[[package]] +name = "bitmaps" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" +dependencies = [ + "typenum", +] + +[[package]] +name = "bitvec" +version = "0.20.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" +dependencies = [ + "funty", + "radium", + "tap", + "wyz", +] + +[[package]] +name = "blake2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "blake3" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" +dependencies = [ + "arrayref", + "arrayvec 0.7.2", + "cc", + "cfg-if", + "constant_time_eq", + "digest 0.10.6", +] + +[[package]] +name = "block-buffer" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" +dependencies = [ + "block-padding 0.2.1", + "generic-array", +] + +[[package]] +name = "block-buffer" +version = "0.10.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" +dependencies = [ + "generic-array", +] + +[[package]] +name = "block-padding" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" + +[[package]] +name = "block-padding" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" +dependencies = [ + "generic-array", +] + +[[package]] +name = "blst" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a30d0edd9dd1c60ddb42b80341c7852f6f985279a5c1a83659dcb65899dec99" +dependencies = [ + "cc", + "glob", + "threadpool", + "which", + "zeroize", +] + +[[package]] +name = "brotli" +version = "3.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", + "brotli-decompressor", +] + +[[package]] +name = "brotli-decompressor" +version = "2.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" +dependencies = [ + "alloc-no-stdlib", + "alloc-stdlib", +] + +[[package]] +name = "bs58" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +dependencies = [ + "sha2 0.9.9", +] + +[[package]] +name = "bstr" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" +dependencies = [ + "memchr", + "once_cell", + "regex-automata", + "serde 1.0.160", +] + +[[package]] +name = "bulletproofs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40e698f1df446cc6246afd823afbe2d121134d089c9102c1dd26d1264991ba32" +dependencies = [ + "byteorder", + "clear_on_drop", + "curve25519-dalek-ng", + "digest 0.9.0", + "merlin", + "rand 0.8.5", + "rand_core 0.6.4", + "serde 1.0.160", + "serde_derive", + "sha3 0.9.1", + "subtle-ng", + "thiserror", +] + +[[package]] +name = "bumpalo" +version = "3.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" + +[[package]] +name = "byte-slice-cast" +version = "1.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" + +[[package]] +name = "bytecode-interpreter-crypto" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "curve25519-dalek-fiat", + "ed25519-dalek-fiat", + "sha2 0.9.9", + "sha3 0.9.1", +] + +[[package]] +name = "bytemuck" +version = "1.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" + +[[package]] +name = "byteorder" +version = "1.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" + +[[package]] +name = "bytes" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "bytes-utils" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9" +dependencies = [ + "bytes", + "either", +] + +[[package]] +name = "bzip2-sys" +version = "0.1.11+1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" +dependencies = [ + "cc", + "libc", + "pkg-config", +] + +[[package]] +name = "cached" +version = "0.43.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" +dependencies = [ + "async-trait", + "async_once", + "cached_proc_macro", + "cached_proc_macro_types", + "futures", + "hashbrown 0.13.2", + "instant", + "lazy_static 1.4.0", + "once_cell", + "thiserror", + "tokio", +] + +[[package]] +name = "cached_proc_macro" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" +dependencies = [ + "cached_proc_macro_types", + "darling 0.14.4", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "cached_proc_macro_types" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" + +[[package]] +name = "camino" +version = "1.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "cargo-platform" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "cargo_metadata" +version = "0.15.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" +dependencies = [ + "camino", + "cargo-platform", + "semver 1.0.17", + "serde 1.0.160", + "serde_json", + "thiserror", +] + +[[package]] +name = "cassowary" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" + +[[package]] +name = "cast" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" + +[[package]] +name = "cbc" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" +dependencies = [ + "cipher", +] + +[[package]] +name = "cc" +version = "1.0.79" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" +dependencies = [ + "jobserver", +] + +[[package]] +name = "cexpr" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "cfg-expr" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a327683d7499ecc47369531a679fe38acdd300e09bf8c852d08b1e10558622bd" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-expr" +version = "0.15.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9" +dependencies = [ + "smallvec", + "target-lexicon", +] + +[[package]] +name = "cfg-if" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" + +[[package]] +name = "chrono" +version = "0.4.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" +dependencies = [ + "iana-time-zone", + "js-sys", + "num-integer", + "num-traits 0.2.15", + "serde 1.0.160", + "time 0.1.45", + "wasm-bindgen", + "winapi", +] + +[[package]] +name = "chrono-tz" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29c39203181991a7dd4343b8005bd804e7a9a37afb8ac070e43771e8c820bbde" +dependencies = [ + "chrono", + "chrono-tz-build", + "phf", +] + +[[package]] +name = "chrono-tz-build" +version = "0.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f509c3a87b33437b05e2458750a0700e5bdd6956176773e6c7d6dd15a283a0c" +dependencies = [ + "parse-zoneinfo", + "phf", + "phf_codegen", +] + +[[package]] +name = "ciborium" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" +dependencies = [ + "ciborium-io", + "ciborium-ll", + "serde 1.0.160", +] + +[[package]] +name = "ciborium-io" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" + +[[package]] +name = "ciborium-ll" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" +dependencies = [ + "ciborium-io", + "half", +] + +[[package]] +name = "cipher" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" +dependencies = [ + "crypto-common", + "inout", +] + +[[package]] +name = "clang-sys" +version = "1.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" +dependencies = [ + "glob", + "libc", + "libloading", +] + +[[package]] +name = "clap" +version = "2.34.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" +dependencies = [ + "ansi_term", + "atty", + "bitflags", + "strsim 0.8.0", + "textwrap 0.11.0", + "unicode-width", + "vec_map", +] + +[[package]] +name = "clap" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" +dependencies = [ + "atty", + "bitflags", + "clap_derive 3.2.25", + "clap_lex 0.2.4", + "indexmap", + "once_cell", + "strsim 0.10.0", + "termcolor", + "textwrap 0.16.0", +] + +[[package]] +name = "clap" +version = "4.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a1f23fa97e1d1641371b51f35535cb26959b8e27ab50d167a8b996b5bada819" +dependencies = [ + "clap_builder", + "clap_derive 4.2.0", + "once_cell", +] + +[[package]] +name = "clap_builder" +version = "4.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fdc5d93c358224b4d6867ef1356d740de2303e9892edc06c5340daeccd96bab" +dependencies = [ + "anstream", + "anstyle", + "bitflags", + "clap_lex 0.4.1", + "strsim 0.10.0", +] + +[[package]] +name = "clap_derive" +version = "3.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" +dependencies = [ + "heck 0.4.1", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "clap_derive" +version = "4.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "clap_lex" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" +dependencies = [ + "os_str_bytes", +] + +[[package]] +name = "clap_lex" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" + +[[package]] +name = "clear_on_drop" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38508a63f4979f0048febc9966fadbd48e5dab31fd0ec6a3f151bbf4a74f7423" +dependencies = [ + "cc", +] + +[[package]] +name = "clipboard-win" +version = "4.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" +dependencies = [ + "error-code", + "str-buf", + "winapi", +] + +[[package]] +name = "codespan" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" +dependencies = [ + "codespan-reporting", + "serde 1.0.160", +] + +[[package]] +name = "codespan-reporting" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" +dependencies = [ + "serde 1.0.160", + "termcolor", + "unicode-width", +] + +[[package]] +name = "collectable" +version = "0.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a" + +[[package]] +name = "colorchoice" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" + +[[package]] +name = "colored" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" +dependencies = [ + "atty", + "lazy_static 1.4.0", + "winapi", +] + +[[package]] +name = "colored-diff" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "410208eb08c3f3ad44b95b51c4fc0d5993cbcc9dd39cfadb4214b9115a97dcb5" +dependencies = [ + "ansi_term", + "dissimilar", + "itertools", +] + +[[package]] +name = "combine" +version = "4.6.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" +dependencies = [ + "bytes", + "memchr", +] + +[[package]] +name = "comfy-table" +version = "6.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d" +dependencies = [ + "crossterm 0.25.0", + "strum", + "strum_macros", + "unicode-width", +] + +[[package]] +name = "config" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" +dependencies = [ + "lazy_static 1.4.0", + "nom 5.1.3", + "rust-ini", + "serde 1.0.160", + "serde-hjson", + "serde_json", + "toml", + "yaml-rust", +] + +[[package]] +name = "console" +version = "0.15.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" +dependencies = [ + "encode_unicode 0.3.6", + "lazy_static 1.4.0", + "libc", + "unicode-width", + "windows-sys 0.42.0", +] + +[[package]] +name = "console-api" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57ff02e8ad8e06ab9731d5dc72dc23bef9200778eae1a89d555d8c42e5d4a86" +dependencies = [ + "prost", + "prost-types", + "tonic", + "tracing-core", +] + +[[package]] +name = "console-subscriber" +version = "0.1.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22a3a81dfaf6b66bce5d159eddae701e3a002f194d378cbf7be5f053c281d9be" +dependencies = [ + "console-api", + "crossbeam-channel", + "crossbeam-utils", + "futures", + "hdrhistogram", + "humantime", + "prost-types", + "serde 1.0.160", + "serde_json", + "thread_local", + "tokio", + "tokio-stream", + "tonic", + "tracing", + "tracing-core", + "tracing-subscriber 0.3.17", +] + +[[package]] +name = "const-oid" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" + +[[package]] +name = "const-str" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b62c6d3ea43cbe0bc5a081f276fd477e4291d168aacc9f9d98073325333c0d4" + +[[package]] +name = "constant_time_eq" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" + +[[package]] +name = "convert_case" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" + +[[package]] +name = "convert_case" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "core-foundation" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "core-foundation-sys" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" + +[[package]] +name = "core2" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" +dependencies = [ + "memchr", +] + +[[package]] +name = "cpp_demangle" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c76f98bdfc7f66172e6c7065f981ebb576ffc903fe4c0561d9f0c2509226dc6" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "cpufeatures" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" +dependencies = [ + "libc", +] + +[[package]] +name = "crc32fast" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "criterion" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" +dependencies = [ + "anes", + "atty", + "cast", + "ciborium", + "clap 3.2.25", + "criterion-plot", + "futures", + "itertools", + "lazy_static 1.4.0", + "num-traits 0.2.15", + "oorandom", + "plotters", + "rayon", + "regex", + "serde 1.0.160", + "serde_derive", + "serde_json", + "tinytemplate", + "tokio", + "walkdir", +] + +[[package]] +name = "criterion-plot" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" +dependencies = [ + "cast", + "itertools", +] + +[[package]] +name = "crossbeam-channel" +version = "0.5.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" +dependencies = [ + "cfg-if", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-deque" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" +dependencies = [ + "cfg-if", + "crossbeam-epoch", + "crossbeam-utils", +] + +[[package]] +name = "crossbeam-epoch" +version = "0.9.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" +dependencies = [ + "autocfg", + "cfg-if", + "crossbeam-utils", + "memoffset 0.8.0", + "scopeguard", +] + +[[package]] +name = "crossbeam-utils" +version = "0.8.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "crossterm" +version = "0.21.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "486d44227f71a1ef39554c0dc47e44b9f4139927c75043312690c3f476d1d788" +dependencies = [ + "bitflags", + "crossterm_winapi 0.8.0", + "libc", + "mio 0.7.14", + "parking_lot 0.11.2", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm" +version = "0.22.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c85525306c4291d1b73ce93c8acf9c339f9b213aef6c1d85c3830cbf1c16325c" +dependencies = [ + "bitflags", + "crossterm_winapi 0.9.0", + "libc", + "mio 0.7.14", + "parking_lot 0.11.2", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" +dependencies = [ + "bitflags", + "crossterm_winapi 0.9.0", + "libc", + "mio 0.8.6", + "parking_lot 0.12.1", + "signal-hook", + "signal-hook-mio", + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" +dependencies = [ + "winapi", +] + +[[package]] +name = "crossterm_winapi" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c" +dependencies = [ + "winapi", +] + +[[package]] +name = "crunchy" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" + +[[package]] +name = "crypto-bigint" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-bigint" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "crypto-common" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" +dependencies = [ + "generic-array", + "rand_core 0.6.4", + "typenum", +] + +[[package]] +name = "csv" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" +dependencies = [ + "csv-core", + "itoa", + "ryu", + "serde 1.0.160", +] + +[[package]] +name = "csv-core" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" +dependencies = [ + "memchr", +] + +[[package]] +name = "ctor" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" +dependencies = [ + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "ctr" +version = "0.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" +dependencies = [ + "cipher", +] + +[[package]] +name = "curve25519-dalek-fiat" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44339b9ecede7f72a0d3b012bf9bb5a616dc8bfde23ce544e42da075c87198f0" +dependencies = [ + "byteorder", + "digest 0.9.0", + "fiat-crypto", + "rand_core 0.6.4", + "subtle", + "zeroize", +] + +[[package]] +name = "curve25519-dalek-ng" +version = "4.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" +dependencies = [ + "byteorder", + "digest 0.9.0", + "rand_core 0.6.4", + "serde 1.0.160", + "subtle-ng", + "zeroize", +] + +[[package]] +name = "cxx" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" +dependencies = [ + "cc", + "cxxbridge-flags", + "cxxbridge-macro", + "link-cplusplus", +] + +[[package]] +name = "cxx-build" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" +dependencies = [ + "cc", + "codespan-reporting", + "once_cell", + "proc-macro2 1.0.56", + "quote 1.0.26", + "scratch", + "syn 2.0.15", +] + +[[package]] +name = "cxxbridge-flags" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" + +[[package]] +name = "cxxbridge-macro" +version = "1.0.94" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "darling" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" +dependencies = [ + "darling_core 0.14.4", + "darling_macro 0.14.4", +] + +[[package]] +name = "darling" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7c99d16b88c92aef47e58dadd53e87b4bd234c29934947a6cec8b466300f99b" +dependencies = [ + "darling_core 0.20.0", + "darling_macro 0.20.0", +] + +[[package]] +name = "darling_core" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.56", + "quote 1.0.26", + "strsim 0.10.0", + "syn 1.0.109", +] + +[[package]] +name = "darling_core" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2ea05d2fcb27b53f7a98faddaf5f2914760330ab7703adfc9df13332b42189f9" +dependencies = [ + "fnv", + "ident_case", + "proc-macro2 1.0.56", + "quote 1.0.26", + "strsim 0.10.0", + "syn 2.0.15", +] + +[[package]] +name = "darling_macro" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" +dependencies = [ + "darling_core 0.14.4", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "darling_macro" +version = "0.20.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bfb82b62b1b8a2a9808fb4caf844ede819a76cfc23b2827d7f94eefb49551eb" +dependencies = [ + "darling_core 0.20.0", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "dashmap" +version = "5.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" +dependencies = [ + "cfg-if", + "hashbrown 0.12.3", + "lock_api", + "once_cell", + "parking_lot_core 0.9.7", +] + +[[package]] +name = "data-encoding" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" + +[[package]] +name = "data-encoding-macro" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" +dependencies = [ + "data-encoding", + "data-encoding-macro-internal", +] + +[[package]] +name = "data-encoding-macro-internal" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" +dependencies = [ + "data-encoding", + "syn 1.0.109", +] + +[[package]] +name = "datatest-stable" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4eaf86e44e9f0a21f6e42d8e7f83c9ee049f081745eeed1c6f47a613c76e5977" +dependencies = [ + "libtest-mimic", + "regex", + "walkdir", +] + +[[package]] +name = "deadpool" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" +dependencies = [ + "async-trait", + "deadpool-runtime", + "num_cpus", + "retain_mut", + "tokio", +] + +[[package]] +name = "deadpool-runtime" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1" + +[[package]] +name = "debug-ignore" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffe7ed1d93f4553003e20b629abe9085e1e81b1429520f897f8f8860bc6dfc21" + +[[package]] +name = "debugid" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" +dependencies = [ + "uuid", +] + +[[package]] +name = "der" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" +dependencies = [ + "const-oid", + "pem-rfc7468 0.6.0", + "zeroize", +] + +[[package]] +name = "der" +version = "0.7.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219" +dependencies = [ + "const-oid", + "pem-rfc7468 0.7.0", + "zeroize", +] + +[[package]] +name = "der-parser" +version = "8.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" +dependencies = [ + "asn1-rs", + "displaydoc", + "nom 7.1.3", + "num-bigint", + "num-traits 0.2.15", + "rusticata-macros", +] + +[[package]] +name = "derivative" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "derive-syn-parse" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "derive_arbitrary" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" +dependencies = [ + "derive_builder_macro", +] + +[[package]] +name = "derive_builder_core" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "derive_builder_macro" +version = "0.12.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" +dependencies = [ + "derive_builder_core", + "syn 1.0.109", +] + +[[package]] +name = "derive_more" +version = "0.99.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" +dependencies = [ + "convert_case 0.4.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustc_version", + "syn 1.0.109", +] + +[[package]] +name = "determinator" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c644b91adb5bcc66d3533607b6d3ee5c1c2d858d2d95e41dd6aae673e29e0509" +dependencies = [ + "camino", + "globset", + "guppy", + "guppy-workspace-hack", + "once_cell", + "petgraph 0.6.3", + "rayon", + "serde 1.0.160", + "toml", +] + +[[package]] +name = "deunicode" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690" + +[[package]] +name = "diesel" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72eb77396836a4505da85bae0712fa324b74acfe1876d7c2f7e694ef3d0ee373" +dependencies = [ + "bitflags", + "byteorder", + "chrono", + "diesel_derives", + "itoa", + "pq-sys", + "r2d2", + "serde_json", +] + +[[package]] +name = "diesel-async" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5897424d8409385a0cc83d64a44527d15bedb5e3797b65f99daf46374eb6df8e" +dependencies = [ + "async-trait", + "deadpool", + "diesel", + "futures", + "scoped-futures", + "tokio", + "tokio-postgres", +] + +[[package]] +name = "diesel-derive-enum" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b10c03b954333d05bfd5be1d8a74eae2c9ca77b86e0f1c3a1ea29c49da1d6c2" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "diesel_derives" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ad74fdcf086be3d4fdd142f67937678fe60ed431c3b2f08599e7687269410c4" +dependencies = [ + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "diesel_migrations" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e9ae22beef5e9d6fab9225ddb073c1c6c1a7a6ded5019d5da11d1e5c5adc34e2" +dependencies = [ + "diesel", + "migrations_internals", + "migrations_macros", +] + +[[package]] +name = "diff" +version = "0.1.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" + +[[package]] +name = "difference" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" + +[[package]] +name = "difflib" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" + +[[package]] +name = "diffus" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c0ff24a73b51d9009c40897faf87d31b77345c90ffbf4dc3a1d2957032c5653" +dependencies = [ + "itertools", +] + +[[package]] +name = "diffy" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" +dependencies = [ + "nu-ansi-term", +] + +[[package]] +name = "digest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" +dependencies = [ + "generic-array", +] + +[[package]] +name = "digest" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" +dependencies = [ + "block-buffer 0.10.4", + "const-oid", + "crypto-common", + "subtle", +] + +[[package]] +name = "directories" +version = "4.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "4.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" +dependencies = [ + "dirs-sys 0.3.7", +] + +[[package]] +name = "dirs" +version = "5.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" +dependencies = [ + "dirs-sys 0.4.1", +] + +[[package]] +name = "dirs-next" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" +dependencies = [ + "cfg-if", + "dirs-sys-next", +] + +[[package]] +name = "dirs-sys" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "dirs-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" +dependencies = [ + "libc", + "option-ext", + "redox_users", + "windows-sys 0.48.0", +] + +[[package]] +name = "dirs-sys-next" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" +dependencies = [ + "libc", + "redox_users", + "winapi", +] + +[[package]] +name = "displaydoc" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "dissimilar" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "210ec60ae7d710bed8683e333e9d2855a8a56a3e9892b38bad3bb0d4d29b0d5e" + +[[package]] +name = "doc-comment" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" + +[[package]] +name = "downcast" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" + +[[package]] +name = "downcast-rs" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" + +[[package]] +name = "duration-str" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f94be4825ff6a563f1bfbdb786ae10c687333c7524fade954e2271170e7f7e6d" +dependencies = [ + "chrono", + "nom 7.1.3", + "rust_decimal", + "serde 1.0.160", + "thiserror", + "time 0.3.20", +] + +[[package]] +name = "dyn-clone" +version = "1.0.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" + +[[package]] +name = "ecdsa" +version = "0.14.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" +dependencies = [ + "der 0.6.1", + "elliptic-curve 0.12.3", + "rfc6979 0.3.1", + "signature 1.6.4", +] + +[[package]] +name = "ecdsa" +version = "0.16.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a48e5d537b8a30c0b023116d981b16334be1485af7ca68db3a2b7024cbc957fd" +dependencies = [ + "der 0.7.5", + "digest 0.10.6", + "elliptic-curve 0.13.4", + "rfc6979 0.4.0", + "signature 2.1.0", +] + +[[package]] +name = "ed25519" +version = "1.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" +dependencies = [ + "pkcs8 0.9.0", + "serde 1.0.160", + "signature 1.6.4", + "zeroize", +] + +[[package]] +name = "ed25519-consensus" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" +dependencies = [ + "curve25519-dalek-ng", + "hex", + "rand_core 0.6.4", + "serde 1.0.160", + "sha2 0.9.9", + "thiserror", + "zeroize", +] + +[[package]] +name = "ed25519-dalek-fiat" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97c6ac152eba578c1c53d2cefe8ad02e239e3d6f971b0f1ef3cb54cd66037fa0" +dependencies = [ + "curve25519-dalek-fiat", + "ed25519", + "rand 0.8.5", + "serde 1.0.160", + "serde_bytes", + "sha2 0.9.9", + "zeroize", +] + +[[package]] +name = "either" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" + +[[package]] +name = "elliptic-curve" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" +dependencies = [ + "base16ct 0.1.1", + "crypto-bigint 0.4.9", + "der 0.6.1", + "digest 0.10.6", + "ff 0.12.1", + "generic-array", + "group 0.12.1", + "rand_core 0.6.4", + "sec1 0.3.0", + "subtle", + "zeroize", +] + +[[package]] +name = "elliptic-curve" +version = "0.13.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7" +dependencies = [ + "base16ct 0.2.0", + "crypto-bigint 0.5.2", + "digest 0.10.6", + "ff 0.13.0", + "generic-array", + "group 0.13.0", + "pem-rfc7468 0.7.0", + "pkcs8 0.10.2", + "rand_core 0.6.4", + "sec1 0.7.2", + "subtle", + "zeroize", +] + +[[package]] +name = "encode_unicode" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" + +[[package]] +name = "encode_unicode" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" + +[[package]] +name = "encoding_rs" +version = "0.8.32" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "endian-type" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" + +[[package]] +name = "enum_dispatch" +version = "0.3.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2" +dependencies = [ + "once_cell", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "env_logger" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" +dependencies = [ + "atty", + "humantime", + "log", + "regex", + "termcolor", +] + +[[package]] +name = "erasable" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "errno" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" +dependencies = [ + "errno-dragonfly", + "libc", + "winapi", +] + +[[package]] +name = "errno" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" +dependencies = [ + "errno-dragonfly", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "errno-dragonfly" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "error-code" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" +dependencies = [ + "libc", + "str-buf", +] + +[[package]] +name = "ethnum" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0198b9d0078e0f30dedc7acbb21c974e838fc8fae3ee170128658a98cb2c1c04" + +[[package]] +name = "event-listener" +version = "2.5.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" + +[[package]] +name = "expect-test" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3" +dependencies = [ + "dissimilar", + "once_cell", +] + +[[package]] +name = "eyre" +version = "0.6.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" +dependencies = [ + "indenter", + "once_cell", +] + +[[package]] +name = "fail" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" +dependencies = [ + "lazy_static 1.4.0", + "log", + "rand 0.7.3", +] + +[[package]] +name = "fallible-iterator" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" + +[[package]] +name = "fastcrypto" +version = "0.1.4" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469#27ee552d5c1feb02b6b64b4f77be3c84e82a0469" +dependencies = [ + "aes", + "aes-gcm", + "ark-ec", + "ark-ff", + "ark-secp256r1", + "ark-serialize", + "auto_ops", + "base64ct", + "bincode", + "blake2", + "blake3", + "blst", + "bs58", + "bulletproofs", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more", + "digest 0.10.6", + "ecdsa 0.16.6", + "ed25519-consensus", + "elliptic-curve 0.13.4", + "eyre", + "fastcrypto-derive 0.1.2 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "generic-array", + "hex", + "hkdf", + "merlin", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars", + "secp256k1", + "serde 1.0.160", + "serde_bytes", + "serde_with", + "sha2 0.10.6", + "sha3 0.10.7", + "signature 2.1.0", + "static_assertions", + "thiserror", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto" +version = "0.1.4" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1#84fd7c7428c5f59185aecc56a2e0a006e8e07de1" +dependencies = [ + "aes", + "aes-gcm", + "auto_ops", + "base64ct", + "bincode", + "blake2", + "blake3", + "blst", + "bs58", + "bulletproofs", + "cbc", + "ctr", + "curve25519-dalek-ng", + "derive_more", + "digest 0.10.6", + "ecdsa 0.16.6", + "ed25519-consensus", + "elliptic-curve 0.13.4", + "eyre", + "fastcrypto-derive 0.1.2 (git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1)", + "generic-array", + "hex", + "hkdf", + "merlin", + "once_cell", + "p256", + "rand 0.8.5", + "readonly", + "rfc6979 0.4.0", + "rsa", + "schemars", + "secp256k1", + "serde 1.0.160", + "serde_bytes", + "serde_with", + "sha2 0.10.6", + "sha3 0.10.7", + "signature 2.1.0", + "static_assertions", + "thiserror", + "tokio", + "typenum", + "zeroize", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.2" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469#27ee552d5c1feb02b6b64b4f77be3c84e82a0469" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-derive" +version = "0.1.2" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1#84fd7c7428c5f59185aecc56a2e0a006e8e07de1" +dependencies = [ + "convert_case 0.6.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "fastcrypto-zkp" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469#27ee552d5c1feb02b6b64b4f77be3c84e82a0469" +dependencies = [ + "ark-bls12-381", + "ark-bn254", + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-groth16", + "ark-relations", + "ark-serialize", + "blst", + "byte-slice-cast", + "derive_more", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", +] + +[[package]] +name = "fastrand" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" +dependencies = [ + "instant", +] + +[[package]] +name = "fd-lock" +version = "3.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642" +dependencies = [ + "cfg-if", + "rustix 0.37.18", + "windows-sys 0.48.0", +] + +[[package]] +name = "fdlimit" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" +dependencies = [ + "libc", +] + +[[package]] +name = "ff" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "ff" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" +dependencies = [ + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "fiat-crypto" +version = "0.1.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" + +[[package]] +name = "findshlibs" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64" +dependencies = [ + "cc", + "lazy_static 1.4.0", + "libc", + "winapi", +] + +[[package]] +name = "fixed-hash" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" +dependencies = [ + "byteorder", + "rand 0.8.5", + "rustc-hex", + "static_assertions", +] + +[[package]] +name = "fixedbitset" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" + +[[package]] +name = "fixedbitset" +version = "0.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" + +[[package]] +name = "flate2" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" +dependencies = [ + "crc32fast", + "miniz_oxide 0.7.1", +] + +[[package]] +name = "float-cmp" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" +dependencies = [ + "num-traits 0.2.15", +] + +[[package]] +name = "fnv" +version = "1.0.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" + +[[package]] +name = "form_urlencoded" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" +dependencies = [ + "percent-encoding", +] + +[[package]] +name = "fragile" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" + +[[package]] +name = "fs_extra" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" + +[[package]] +name = "funty" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" + +[[package]] +name = "futures" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" +dependencies = [ + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-sink", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-channel" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" +dependencies = [ + "futures-core", + "futures-sink", +] + +[[package]] +name = "futures-core" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" + +[[package]] +name = "futures-executor" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" +dependencies = [ + "futures-core", + "futures-task", + "futures-util", +] + +[[package]] +name = "futures-io" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" + +[[package]] +name = "futures-lite" +version = "1.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" +dependencies = [ + "fastrand", + "futures-core", + "futures-io", + "memchr", + "parking", + "pin-project-lite", + "waker-fn", +] + +[[package]] +name = "futures-macro" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "futures-sink" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" + +[[package]] +name = "futures-task" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" + +[[package]] +name = "futures-timer" +version = "3.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" +dependencies = [ + "gloo-timers", + "send_wrapper", +] + +[[package]] +name = "futures-util" +version = "0.3.28" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" +dependencies = [ + "futures-channel", + "futures-core", + "futures-io", + "futures-macro", + "futures-sink", + "futures-task", + "memchr", + "pin-project-lite", + "pin-utils", + "slab", +] + +[[package]] +name = "generic-array" +version = "0.14.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" +dependencies = [ + "serde 1.0.160", + "typenum", + "version_check", + "zeroize", +] + +[[package]] +name = "getrandom" +version = "0.1.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.9.0+wasi-snapshot-preview1", +] + +[[package]] +name = "getrandom" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" +dependencies = [ + "cfg-if", + "libc", + "wasi 0.11.0+wasi-snapshot-preview1", +] + +[[package]] +name = "ghash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" +dependencies = [ + "opaque-debug", + "polyval", +] + +[[package]] +name = "gimli" +version = "0.27.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" + +[[package]] +name = "git-version" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" +dependencies = [ + "git-version-macro", + "proc-macro-hack", +] + +[[package]] +name = "git-version-macro" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" +dependencies = [ + "proc-macro-hack", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "glob" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" + +[[package]] +name = "globset" +version = "0.4.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" +dependencies = [ + "aho-corasick 0.7.20", + "bstr", + "fnv", + "log", + "regex", +] + +[[package]] +name = "globwalk" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" +dependencies = [ + "bitflags", + "ignore", + "walkdir", +] + +[[package]] +name = "gloo-net" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" +dependencies = [ + "futures-channel", + "futures-core", + "futures-sink", + "gloo-utils", + "js-sys", + "pin-project", + "serde 1.0.160", + "serde_json", + "thiserror", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "gloo-timers" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" +dependencies = [ + "futures-channel", + "futures-core", + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "gloo-utils" +version = "0.1.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8e8fc851e9c7b9852508bc6e3f690f452f474417e8545ec9857b7f7377036b5" +dependencies = [ + "js-sys", + "serde 1.0.160", + "serde_json", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "governor" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c390a940a5d157878dd057c78680a33ce3415bcd05b4799509ea44210914b4d5" +dependencies = [ + "cfg-if", + "dashmap", + "futures", + "futures-timer", + "no-std-compat", + "nonzero_ext", + "parking_lot 0.12.1", + "quanta", + "rand 0.8.5", + "smallvec", +] + +[[package]] +name = "group" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" +dependencies = [ + "ff 0.12.1", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "group" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" +dependencies = [ + "ff 0.13.0", + "rand_core 0.6.4", + "subtle", +] + +[[package]] +name = "guppy" +version = "0.15.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f822a2716041492e071691606474f5a7e4fa7c2acbfd7da7b29884fb448291c7" +dependencies = [ + "camino", + "cargo_metadata", + "cfg-if", + "debug-ignore", + "fixedbitset 0.4.2", + "guppy-summaries", + "guppy-workspace-hack", + "indexmap", + "itertools", + "nested", + "once_cell", + "pathdiff", + "petgraph 0.6.3", + "rayon", + "semver 1.0.17", + "serde 1.0.160", + "serde_json", + "smallvec", + "static_assertions", + "target-spec", + "toml", +] + +[[package]] +name = "guppy-summaries" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bd039b8f587513b48754811cfa37c2ba079df537b490b602fa641ce18f6e72a" +dependencies = [ + "camino", + "cfg-if", + "diffus", + "guppy-workspace-hack", + "semver 1.0.17", + "serde 1.0.160", + "toml", +] + +[[package]] +name = "guppy-workspace-hack" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92620684d99f750bae383ecb3be3748142d6095760afd5cbcf2261e9a279d780" + +[[package]] +name = "h2" +version = "0.3.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" +dependencies = [ + "bytes", + "fnv", + "futures-core", + "futures-sink", + "futures-util", + "http", + "indexmap", + "slab", + "tokio", + "tokio-util 0.7.8", + "tracing", +] + +[[package]] +name = "hakari" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2af0223111b69beda15417ad6a960bffb093c916f0eaa559036c7036efa2d199" +dependencies = [ + "atomicwrites", + "bimap", + "camino", + "cfg-if", + "debug-ignore", + "diffy", + "guppy", + "guppy-workspace-hack", + "include_dir", + "indenter", + "itertools", + "owo-colors", + "pathdiff", + "rayon", + "serde 1.0.160", + "tabular", + "target-spec", + "toml", + "toml_edit 0.17.1", + "twox-hash", +] + +[[package]] +name = "half" +version = "1.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" + +[[package]] +name = "hashbrown" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" +dependencies = [ + "ahash 0.7.6", +] + +[[package]] +name = "hashbrown" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" +dependencies = [ + "ahash 0.8.3", +] + +[[package]] +name = "hdrhistogram" +version = "7.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8" +dependencies = [ + "base64 0.13.1", + "byteorder", + "crossbeam-channel", + "flate2", + "nom 7.1.3", + "num-traits 0.2.15", +] + +[[package]] +name = "headers" +version = "0.3.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" +dependencies = [ + "base64 0.13.1", + "bitflags", + "bytes", + "headers-core", + "http", + "httpdate", + "mime", + "sha1", +] + +[[package]] +name = "headers-core" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" +dependencies = [ + "http", +] + +[[package]] +name = "heck" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "heck" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" + +[[package]] +name = "hermit-abi" +version = "0.1.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" +dependencies = [ + "libc", +] + +[[package]] +name = "hermit-abi" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" + +[[package]] +name = "hex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" + +[[package]] +name = "hex-literal" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" + +[[package]] +name = "hkdf" +version = "0.12.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" +dependencies = [ + "hmac", +] + +[[package]] +name = "hmac" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "hmac-sha512" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" + +[[package]] +name = "home" +version = "0.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" +dependencies = [ + "windows-sys 0.48.0", +] + +[[package]] +name = "http" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" +dependencies = [ + "bytes", + "fnv", + "itoa", +] + +[[package]] +name = "http-body" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" +dependencies = [ + "bytes", + "http", + "pin-project-lite", +] + +[[package]] +name = "http-range-header" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" + +[[package]] +name = "httparse" +version = "1.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" + +[[package]] +name = "httpdate" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" + +[[package]] +name = "humansize" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026" + +[[package]] +name = "humantime" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" + +[[package]] +name = "hyper" +version = "0.14.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" +dependencies = [ + "bytes", + "futures-channel", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "httparse", + "httpdate", + "itoa", + "pin-project-lite", + "socket2 0.4.9", + "tokio", + "tower-service", + "tracing", + "want", +] + +[[package]] +name = "hyper-rustls" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" +dependencies = [ + "http", + "hyper", + "log", + "rustls", + "rustls-native-certs", + "tokio", + "tokio-rustls", + "webpki-roots", +] + +[[package]] +name = "hyper-timeout" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" +dependencies = [ + "hyper", + "pin-project-lite", + "tokio", + "tokio-io-timeout", +] + +[[package]] +name = "iana-time-zone" +version = "0.1.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" +dependencies = [ + "android_system_properties", + "core-foundation-sys", + "iana-time-zone-haiku", + "js-sys", + "wasm-bindgen", + "windows", +] + +[[package]] +name = "iana-time-zone-haiku" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" +dependencies = [ + "cxx", + "cxx-build", +] + +[[package]] +name = "ident_case" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" + +[[package]] +name = "idna" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "if_chain" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" + +[[package]] +name = "ignore" +version = "0.4.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" +dependencies = [ + "globset", + "lazy_static 1.4.0", + "log", + "memchr", + "regex", + "same-file", + "thread_local", + "walkdir", + "winapi-util", +] + +[[package]] +name = "im" +version = "15.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" +dependencies = [ + "bitmaps", + "rand_core 0.6.4", + "rand_xoshiro", + "sized-chunks", + "typenum", + "version_check", +] + +[[package]] +name = "impl-codec" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" +dependencies = [ + "parity-scale-codec", +] + +[[package]] +name = "impl-serde" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "impl-trait-for-tuples" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "include_dir" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" +dependencies = [ + "glob", + "include_dir_macros", +] + +[[package]] +name = "include_dir_macros" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", +] + +[[package]] +name = "indenter" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" + +[[package]] +name = "indexmap" +version = "1.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" +dependencies = [ + "autocfg", + "hashbrown 0.12.3", + "serde 1.0.160", +] + +[[package]] +name = "indicatif" +version = "0.17.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729" +dependencies = [ + "console", + "number_prefix", + "portable-atomic", + "unicode-width", +] + +[[package]] +name = "inferno" +version = "0.11.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2fb7c1b80a1dfa604bb4a649a5c5aeef3d913f7c520cb42b40e534e8a61bcdfc" +dependencies = [ + "ahash 0.8.3", + "indexmap", + "is-terminal", + "itoa", + "log", + "num-format", + "once_cell", + "quick-xml 0.26.0", + "rgb", + "str_stack", +] + +[[package]] +name = "inout" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" +dependencies = [ + "block-padding 0.3.3", + "generic-array", +] + +[[package]] +name = "inquire" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4bf420bd01f298a3ed8f57af9babedb296b4edfc1dbd8b159cee883aa90edaa" +dependencies = [ + "bitflags", + "crossterm 0.25.0", + "dyn-clone", + "lazy_static 1.4.0", + "newline-converter", + "thiserror", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "insta" +version = "1.29.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9a28d25139df397cbca21408bb742cf6837e04cdbebf1b07b760caf971d6a972" +dependencies = [ + "console", + "lazy_static 1.4.0", + "linked-hash-map", + "pest", + "pest_derive", + "serde 1.0.160", + "similar", + "yaml-rust", +] + +[[package]] +name = "instant" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" +dependencies = [ + "cfg-if", +] + +[[package]] +name = "internment" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ab388864246d58a276e60e7569a833d9cc4cd75c66e5ca77c177dad38e59996" +dependencies = [ + "ahash 0.7.6", + "dashmap", + "hashbrown 0.12.3", + "once_cell", + "parking_lot 0.12.1", +] + +[[package]] +name = "io-lifetimes" +version = "1.0.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" +dependencies = [ + "hermit-abi 0.3.1", + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "ipnet" +version = "2.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" + +[[package]] +name = "iri-string" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f0f7638c1e223529f1bfdc48c8b133b9e0b434094d1d28473161ee48b235f78" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "is-terminal" +version = "0.4.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" +dependencies = [ + "hermit-abi 0.3.1", + "io-lifetimes", + "rustix 0.37.18", + "windows-sys 0.48.0", +] + +[[package]] +name = "itertools" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +dependencies = [ + "either", +] + +[[package]] +name = "itoa" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" + +[[package]] +name = "jemalloc-ctl" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1891c671f3db85d8ea8525dd43ab147f9977041911d24a03e5a36187a7bfde9" +dependencies = [ + "jemalloc-sys", + "libc", + "paste", +] + +[[package]] +name = "jemalloc-sys" +version = "0.5.3+5.3.0-patched" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9bd5d616ea7ed58b571b2e209a65759664d7fb021a0819d7a790afc67e47ca1" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "jobserver" +version = "0.1.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" +dependencies = [ + "libc", +] + +[[package]] +name = "js-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" +dependencies = [ + "wasm-bindgen", +] + +[[package]] +name = "jsonrpsee" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-wasm-client", + "jsonrpsee-ws-client", + "tracing", +] + +[[package]] +name = "jsonrpsee-client-transport" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb" +dependencies = [ + "anyhow", + "futures-channel", + "futures-timer", + "futures-util", + "gloo-net", + "http", + "jsonrpsee-core", + "jsonrpsee-types", + "pin-project", + "rustls-native-certs", + "soketto", + "thiserror", + "tokio", + "tokio-rustls", + "tokio-util 0.7.8", + "tracing", + "webpki-roots", +] + +[[package]] +name = "jsonrpsee-core" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" +dependencies = [ + "anyhow", + "arrayvec 0.7.2", + "async-lock", + "async-trait", + "beef", + "futures-channel", + "futures-timer", + "futures-util", + "globset", + "hyper", + "jsonrpsee-types", + "parking_lot 0.12.1", + "rand 0.8.5", + "rustc-hash", + "serde 1.0.160", + "serde_json", + "soketto", + "thiserror", + "tokio", + "tracing", + "wasm-bindgen-futures", +] + +[[package]] +name = "jsonrpsee-http-client" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad" +dependencies = [ + "async-trait", + "hyper", + "hyper-rustls", + "jsonrpsee-core", + "jsonrpsee-types", + "rustc-hash", + "serde 1.0.160", + "serde_json", + "thiserror", + "tokio", + "tracing", +] + +[[package]] +name = "jsonrpsee-proc-macros" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa6da1e4199c10d7b1d0a6e5e8bd8e55f351163b6f4b3cbb044672a69bd4c1c" +dependencies = [ + "heck 0.4.1", + "proc-macro-crate", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "jsonrpsee-server" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc" +dependencies = [ + "futures-channel", + "futures-util", + "http", + "hyper", + "jsonrpsee-core", + "jsonrpsee-types", + "serde 1.0.160", + "serde_json", + "soketto", + "tokio", + "tokio-stream", + "tokio-util 0.7.8", + "tower", + "tracing", +] + +[[package]] +name = "jsonrpsee-types" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c" +dependencies = [ + "anyhow", + "beef", + "serde 1.0.160", + "serde_json", + "thiserror", + "tracing", +] + +[[package]] +name = "jsonrpsee-wasm-client" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a77310456f43c6c89bcba1f6b2fc2a28300da7c341f320f5128f8c83cc63232d" +dependencies = [ + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "jsonrpsee-ws-client" +version = "0.16.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9" +dependencies = [ + "http", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-types", +] + +[[package]] +name = "k256" +version = "0.11.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" +dependencies = [ + "cfg-if", + "ecdsa 0.14.8", + "elliptic-curve 0.12.3", + "sha2 0.10.6", + "sha3 0.10.7", +] + +[[package]] +name = "keccak" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" +dependencies = [ + "cpufeatures", +] + +[[package]] +name = "lazy_static" +version = "0.2.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" + +[[package]] +name = "lazy_static" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +dependencies = [ + "spin", +] + +[[package]] +name = "lazycell" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" + +[[package]] +name = "leb128" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" + +[[package]] +name = "lexical-core" +version = "0.7.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" +dependencies = [ + "arrayvec 0.5.2", + "bitflags", + "cfg-if", + "ryu", + "static_assertions", +] + +[[package]] +name = "libc" +version = "0.2.142" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" + +[[package]] +name = "libloading" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" +dependencies = [ + "cfg-if", + "winapi", +] + +[[package]] +name = "libm" +version = "0.2.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" + +[[package]] +name = "librocksdb-sys" +version = "0.10.0+7.9.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fe4d5874f5ff2bc616e55e8c6086d478fcda13faf9495768a4aa1c22042d30b" +dependencies = [ + "bindgen", + "bzip2-sys", + "cc", + "glob", + "libc", + "libz-sys", + "lz4-sys", + "zstd-sys", +] + +[[package]] +name = "libtest-mimic" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79529479c298f5af41375b0c1a77ef670d450b4c9cd7949d2b43af08121b20ec" +dependencies = [ + "clap 3.2.25", + "termcolor", + "threadpool", +] + +[[package]] +name = "libz-sys" +version = "1.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" +dependencies = [ + "cc", + "pkg-config", + "vcpkg", +] + +[[package]] +name = "link-cplusplus" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" +dependencies = [ + "cc", +] + +[[package]] +name = "linked-hash-map" +version = "0.5.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" + +[[package]] +name = "linux-raw-sys" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" + +[[package]] +name = "linux-raw-sys" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b64f40e5e03e0d54f03845c8197d0291253cdbedfb1cb46b13c2c117554a9f4c" + +[[package]] +name = "lock_api" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +dependencies = [ + "autocfg", + "scopeguard", +] + +[[package]] +name = "log" +version = "0.4.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" +dependencies = [ + "cfg-if", + "serde 1.0.160", +] + +[[package]] +name = "lru" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03f1160296536f10c833a82dca22267d5486734230d47bf00bf435885814ba1e" +dependencies = [ + "hashbrown 0.13.2", +] + +[[package]] +name = "lz4-sys" +version = "1.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" +dependencies = [ + "cc", + "libc", +] + +[[package]] +name = "mach" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" +dependencies = [ + "libc", +] + +[[package]] +name = "match_opt" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" + +[[package]] +name = "matchers" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" +dependencies = [ + "regex-automata", +] + +[[package]] +name = "matchit" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" + +[[package]] +name = "matchit" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" + +[[package]] +name = "md-5" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "memchr" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" + +[[package]] +name = "memmap2" +version = "0.5.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" +dependencies = [ + "libc", +] + +[[package]] +name = "memoffset" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" +dependencies = [ + "autocfg", +] + +[[package]] +name = "memoffset" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" +dependencies = [ + "autocfg", +] + +[[package]] +name = "merlin" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" +dependencies = [ + "byteorder", + "keccak", + "rand_core 0.6.4", + "zeroize", +] + +[[package]] +name = "migrations_internals" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c493c09323068c01e54c685f7da41a9ccf9219735c3766fbfd6099806ea08fbc" +dependencies = [ + "serde 1.0.160", + "toml", +] + +[[package]] +name = "migrations_macros" +version = "2.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8a8ff27a350511de30cdabb77147501c36ef02e0451d957abea2f30caffb2b58" +dependencies = [ + "migrations_internals", + "proc-macro2 1.0.56", + "quote 1.0.26", +] + +[[package]] +name = "mime" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" + +[[package]] +name = "mime_guess" +version = "2.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" +dependencies = [ + "mime", + "unicase", +] + +[[package]] +name = "minimal-lexical" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" + +[[package]] +name = "miniz_oxide" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" +dependencies = [ + "adler", +] + +[[package]] +name = "miniz_oxide" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" +dependencies = [ + "adler", +] + +[[package]] +name = "mio" +version = "0.7.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" +dependencies = [ + "libc", + "log", + "miow", + "ntapi 0.3.7", + "winapi", +] + +[[package]] +name = "mio" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" +dependencies = [ + "libc", + "log", + "wasi 0.11.0+wasi-snapshot-preview1", + "windows-sys 0.45.0", +] + +[[package]] +name = "miow" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" +dependencies = [ + "winapi", +] + +[[package]] +name = "mockall" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" +dependencies = [ + "cfg-if", + "downcast", + "fragile", + "lazy_static 1.4.0", + "mockall_derive", + "predicates 2.1.5", + "predicates-tree", +] + +[[package]] +name = "mockall_derive" +version = "0.11.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" +dependencies = [ + "cfg-if", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "monkey" +version = "0.1.0" +dependencies = [ + "anyhow", + "bcs", + "dirs 5.0.1", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1)", + "futures", + "hex", + "shared-crypto", + "sui-config", + "sui-core", + "sui-framework", + "sui-json", + "sui-json-rpc", + "sui-json-rpc-types", + "sui-keys", + "sui-sdk", + "sui-transaction-builder", + "sui-types", + "tokio", +] + +[[package]] +name = "more-asserts" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" + +[[package]] +name = "move-abigen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "heck 0.3.3", + "log", + "move-binary-format", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-model", + "serde 1.0.160", +] + +[[package]] +name = "move-binary-format" +version = "0.0.3" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "move-core-types", + "once_cell", + "ref-cast", + "serde 1.0.160", + "variant_count", +] + +[[package]] +name = "move-borrow-graph" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" + +[[package]] +name = "move-bytecode-source-map" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", + "serde 1.0.160", +] + +[[package]] +name = "move-bytecode-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "petgraph 0.5.1", + "serde-reflection", +] + +[[package]] +name = "move-bytecode-verifier" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "fail", + "move-binary-format", + "move-borrow-graph", + "move-core-types", + "petgraph 0.5.1", +] + +[[package]] +name = "move-bytecode-viewer" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "clap 3.2.25", + "crossterm 0.21.0", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-disassembler", + "move-ir-types", + "regex", + "tui", +] + +[[package]] +name = "move-cli" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "clap 3.2.25", + "codespan-reporting", + "colored", + "difference", + "itertools", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-viewer", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-disassembler", + "move-docgen", + "move-errmapgen", + "move-ir-types", + "move-package", + "move-prover", + "move-resource-viewer", + "move-stdlib", + "move-symbol-pool", + "move-unit-test", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "read-write-set", + "read-write-set-dynamic", + "reqwest", + "serde 1.0.160", + "serde_json", + "serde_yaml", + "tempfile", + "toml_edit 0.14.4", + "walkdir", +] + +[[package]] +name = "move-command-line-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "difference", + "dirs-next", + "hex", + "move-core-types", + "num-bigint", + "once_cell", + "serde 1.0.160", + "sha2 0.9.9", + "walkdir", +] + +[[package]] +name = "move-compiler" +version = "0.0.1" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "clap 3.2.25", + "codespan-reporting", + "difference", + "hex", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-symbol-pool", + "num-bigint", + "once_cell", + "petgraph 0.5.1", + "regex", + "sha3 0.9.1", + "tempfile", + "walkdir", +] + +[[package]] +name = "move-core-types" +version = "0.0.4" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "arbitrary", + "bcs", + "ethnum", + "hex", + "num", + "once_cell", + "primitive-types", + "proptest", + "proptest-derive", + "rand 0.8.5", + "ref-cast", + "serde 1.0.160", + "serde_bytes", + "uint", +] + +[[package]] +name = "move-coverage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "clap 3.2.25", + "codespan", + "colored", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "once_cell", + "petgraph 0.5.1", + "serde 1.0.160", +] + +[[package]] +name = "move-disassembler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "clap 3.2.25", + "colored", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-ir-types", +] + +[[package]] +name = "move-docgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "itertools", + "log", + "move-compiler", + "move-model", + "num", + "once_cell", + "regex", + "serde 1.0.160", +] + +[[package]] +name = "move-errmapgen" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "log", + "move-command-line-common", + "move-core-types", + "move-model", + "serde 1.0.160", +] + +[[package]] +name = "move-ir-compiler" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "clap 3.2.25", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode", + "move-ir-types", + "move-symbol-pool", + "serde_json", +] + +[[package]] +name = "move-ir-to-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "codespan-reporting", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-command-line-common", + "move-core-types", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-symbol-pool", + "ouroboros 0.9.5", + "thiserror", +] + +[[package]] +name = "move-ir-to-bytecode-syntax" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-ir-types", + "move-symbol-pool", +] + +[[package]] +name = "move-ir-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "hex", + "move-command-line-common", + "move-core-types", + "move-symbol-pool", + "once_cell", + "serde 1.0.160", +] + +[[package]] +name = "move-model" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "codespan", + "codespan-reporting", + "internment", + "itertools", + "log", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-types", + "move-symbol-pool", + "num", + "once_cell", + "regex", + "serde 1.0.160", +] + +[[package]] +name = "move-package" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "clap 3.2.25", + "colored", + "dirs-next", + "itertools", + "move-abigen", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-model", + "move-symbol-pool", + "named-lock", + "once_cell", + "petgraph 0.5.1", + "ptree", + "regex", + "reqwest", + "serde 1.0.160", + "serde_yaml", + "sha2 0.9.9", + "tempfile", + "toml", + "walkdir", + "whoami", +] + +[[package]] +name = "move-prover" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "async-trait", + "atty", + "clap 3.2.25", + "codespan", + "codespan-reporting", + "futures", + "hex", + "itertools", + "log", + "move-abigen", + "move-binary-format", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-docgen", + "move-errmapgen", + "move-ir-types", + "move-model", + "move-prover-boogie-backend", + "move-stackless-bytecode", + "num", + "once_cell", + "pretty", + "rand 0.8.5", + "serde 1.0.160", + "serde_json", + "simplelog", + "tokio", + "toml", +] + +[[package]] +name = "move-prover-boogie-backend" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "async-trait", + "codespan", + "codespan-reporting", + "futures", + "itertools", + "log", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-model", + "move-stackless-bytecode", + "num", + "once_cell", + "pretty", + "rand 0.8.5", + "regex", + "serde 1.0.160", + "serde_json", + "tera", + "tokio", +] + +[[package]] +name = "move-read-write-set-types" +version = "0.0.3" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "serde 1.0.160", +] + +[[package]] +name = "move-resource-viewer" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "hex", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "once_cell", + "serde 1.0.160", +] + +[[package]] +name = "move-stackless-bytecode" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "codespan", + "codespan-reporting", + "ethnum", + "im", + "itertools", + "log", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-verifier", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-to-bytecode", + "move-model", + "move-read-write-set-types", + "num", + "once_cell", + "paste", + "petgraph 0.5.1", + "serde 1.0.160", +] + +[[package]] +name = "move-stackless-bytecode-interpreter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bytecode-interpreter-crypto", + "clap 3.2.25", + "codespan-reporting", + "itertools", + "move-binary-format", + "move-core-types", + "move-model", + "move-stackless-bytecode", + "num", + "serde 1.0.160", +] + +[[package]] +name = "move-stdlib" +version = "0.1.1" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "hex", + "log", + "move-binary-format", + "move-command-line-common", + "move-core-types", + "move-docgen", + "move-errmapgen", + "move-prover", + "move-vm-runtime", + "move-vm-types", + "sha2 0.9.9", + "sha3 0.9.1", + "smallvec", + "walkdir", +] + +[[package]] +name = "move-symbol-pool" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "once_cell", + "serde 1.0.160", +] + +[[package]] +name = "move-table-extension" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "better_any", + "move-binary-format", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "once_cell", + "sha3 0.9.1", + "smallvec", +] + +[[package]] +name = "move-transactional-test-runner" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "clap 3.2.25", + "colored", + "move-binary-format", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-cli", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-disassembler", + "move-ir-compiler", + "move-ir-types", + "move-resource-viewer", + "move-stackless-bytecode-interpreter", + "move-stdlib", + "move-symbol-pool", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rayon", + "regex", + "tempfile", +] + +[[package]] +name = "move-unit-test" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "better_any", + "clap 3.2.25", + "codespan-reporting", + "colored", + "itertools", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-ir-types", + "move-model", + "move-resource-viewer", + "move-stackless-bytecode-interpreter", + "move-stdlib", + "move-symbol-pool", + "move-table-extension", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "rayon", + "regex", +] + +[[package]] +name = "move-vm-runtime" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "better_any", + "fail", + "move-binary-format", + "move-bytecode-verifier", + "move-core-types", + "move-vm-types", + "once_cell", + "parking_lot 0.11.2", + "sha3 0.9.1", + "smallvec", + "tracing", +] + +[[package]] +name = "move-vm-test-utils" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-types", + "once_cell", + "serde 1.0.160", +] + +[[package]] +name = "move-vm-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "bcs", + "move-binary-format", + "move-core-types", + "once_cell", + "serde 1.0.160", + "smallvec", +] + +[[package]] +name = "msim" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=e9011f96b84615b63cd8b5835e606a2fc218a1bd#e9011f96b84615b63cd8b5835e606a2fc218a1bd" +dependencies = [ + "ahash 0.7.6", + "async-task", + "bincode", + "bytes", + "cc", + "downcast-rs", + "env_logger", + "erasable", + "futures", + "lazy_static 1.4.0", + "libc", + "msim-macros", + "naive-timer", + "pin-project-lite", + "rand 0.8.5", + "real_tokio", + "serde 1.0.160", + "socket2 0.4.9", + "tap", + "tokio-util 0.7.7", + "toml", + "tracing", + "tracing-subscriber 0.3.17", +] + +[[package]] +name = "msim-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=e9011f96b84615b63cd8b5835e606a2fc218a1bd#e9011f96b84615b63cd8b5835e606a2fc218a1bd" +dependencies = [ + "darling 0.14.4", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "multiaddr" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" +dependencies = [ + "arrayref", + "byteorder", + "data-encoding", + "log", + "multibase", + "multihash", + "percent-encoding", + "serde 1.0.160", + "static_assertions", + "unsigned-varint", + "url", +] + +[[package]] +name = "multibase" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" +dependencies = [ + "base-x", + "data-encoding", + "data-encoding-macro", +] + +[[package]] +name = "multihash" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" +dependencies = [ + "core2", + "multihash-derive", + "unsigned-varint", +] + +[[package]] +name = "multihash-derive" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" +dependencies = [ + "proc-macro-crate", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "synstructure", +] + +[[package]] +name = "multimap" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" + +[[package]] +name = "mysten-common" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "futures", + "parking_lot 0.12.1", + "tokio", + "workspace-hack", +] + +[[package]] +name = "mysten-metrics" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "dashmap", + "futures", + "once_cell", + "parking_lot 0.12.1", + "prometheus", + "prometheus-closure-metric", + "scopeguard", + "tap", + "tokio", + "tracing", + "uuid", + "workspace-hack", +] + +[[package]] +name = "mysten-network" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "bcs", + "bytes", + "eyre", + "futures", + "http", + "multiaddr", + "serde 1.0.160", + "snap", + "tokio", + "tokio-stream", + "tonic", + "tonic-health", + "tower", + "tower-http 0.3.5", + "tracing", + "workspace-hack", +] + +[[package]] +name = "mysten-util-mem" +version = "0.11.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "cfg-if", + "ed25519-consensus", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "hashbrown 0.12.3", + "impl-trait-for-tuples", + "indexmap", + "mysten-util-mem-derive", + "once_cell", + "parking_lot 0.12.1", + "roaring", + "smallvec", + "workspace-hack", +] + +[[package]] +name = "mysten-util-mem-derive" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "proc-macro2 1.0.56", + "syn 1.0.109", + "synstructure", + "workspace-hack", +] + +[[package]] +name = "naive-timer" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed" + +[[package]] +name = "named-lock" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" +dependencies = [ + "libc", + "once_cell", + "parking_lot 0.12.1", + "thiserror", + "widestring", + "winapi", +] + +[[package]] +name = "narwhal-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "match_opt", + "mysten-network", + "mysten-util-mem", + "narwhal-crypto", + "rand 0.8.5", + "serde 1.0.160", + "serde_json", + "thiserror", + "tracing", + "workspace-hack", +] + +[[package]] +name = "narwhal-consensus" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "arc-swap", + "bcs", + "cfg-if", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "match_opt", + "mysten-metrics", + "narwhal-config", + "narwhal-crypto", + "narwhal-dag", + "narwhal-storage", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "telemetry-subscribers", + "thiserror", + "tokio", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "narwhal-crypto" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "bcs", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "serde 1.0.160", + "shared-crypto", + "workspace-hack", +] + +[[package]] +name = "narwhal-dag" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "arc-swap", + "dashmap", + "either", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "itertools", + "narwhal-crypto", + "once_cell", + "rayon", + "thiserror", + "workspace-hack", +] + +[[package]] +name = "narwhal-executor" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anyhow", + "async-trait", + "bcs", + "bincode", + "bytes", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "itertools", + "mockall", + "mysten-metrics", + "narwhal-config", + "narwhal-consensus", + "narwhal-crypto", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "serde 1.0.160", + "thiserror", + "tokio", + "tonic", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "narwhal-network" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "async-trait", + "axum", + "axum-server", + "backoff", + "bytes", + "dashmap", + "futures", + "mysten-common", + "mysten-metrics", + "narwhal-crypto", + "narwhal-types", + "parking_lot 0.12.1", + "prometheus", + "quinn-proto", + "rand 0.8.5", + "sui-macros", + "tokio", + "tower", + "tracing", + "workspace-hack", +] + +[[package]] +name = "narwhal-node" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "arc-swap", + "async-trait", + "axum", + "bytes", + "cfg-if", + "clap 2.34.0", + "eyre", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-consensus", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-primary", + "narwhal-storage", + "narwhal-types", + "narwhal-worker", + "prometheus", + "rand 0.8.5", + "reqwest", + "sui-keys", + "sui-types", + "telemetry-subscribers", + "thiserror", + "tokio", + "tokio-stream", + "tracing", + "tracing-subscriber 0.3.17", + "url", + "workspace-hack", +] + +[[package]] +name = "narwhal-primary" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "backoff", + "base64 0.13.1", + "bcs", + "bincode", + "bytes", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "governor", + "itertools", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-consensus", + "narwhal-crypto", + "narwhal-network", + "narwhal-storage", + "narwhal-types", + "once_cell", + "parking_lot 0.12.1", + "prometheus", + "rand 0.8.5", + "sui-macros", + "tap", + "thiserror", + "tokio", + "tonic", + "tower", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "narwhal-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "dashmap", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "lru", + "mysten-common", + "narwhal-config", + "narwhal-crypto", + "narwhal-types", + "parking_lot 0.12.1", + "prometheus", + "sui-macros", + "tap", + "tempfile", + "tokio", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "narwhal-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anemo-build", + "async-trait", + "base64 0.13.1", + "bcs", + "bytes", + "derive_builder", + "enum_dispatch", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "indexmap", + "mockall", + "mysten-common", + "mysten-network", + "mysten-util-mem", + "narwhal-config", + "narwhal-crypto", + "narwhal-dag", + "once_cell", + "prometheus", + "proptest", + "proptest-derive", + "prost", + "prost-build", + "protobuf-src", + "rand 0.8.5", + "roaring", + "rustversion", + "serde 1.0.160", + "serde_with", + "thiserror", + "tokio", + "tonic", + "tonic-build", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "narwhal-worker" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anemo-tower", + "anyhow", + "arc-swap", + "async-trait", + "byteorder", + "bytes", + "eyre", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "governor", + "itertools", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-network", + "narwhal-types", + "prometheus", + "rand 0.8.5", + "tap", + "thiserror", + "tokio", + "tonic", + "tower", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "nested" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b420f638f07fe83056b55ea190bb815f609ec5a35e7017884a10f78839c9e" + +[[package]] +name = "newline-converter" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f71d09d5c87634207f894c6b31b6a2b2c64ea3bdcf71bd5599fdbbe1600c00f" +dependencies = [ + "unicode-segmentation", +] + +[[package]] +name = "nexlint" +version = "0.1.0" +source = "git+https://github.com/nextest-rs/nexlint.git?rev=94da5c787636dad779c340affa65219134d127f5#94da5c787636dad779c340affa65219134d127f5" +dependencies = [ + "camino", + "debug-ignore", + "determinator", + "guppy", + "hakari", + "hex", + "once_cell", + "serde 1.0.160", +] + +[[package]] +name = "nexlint-lints" +version = "0.1.0" +source = "git+https://github.com/nextest-rs/nexlint.git?rev=94da5c787636dad779c340affa65219134d127f5#94da5c787636dad779c340affa65219134d127f5" +dependencies = [ + "anyhow", + "camino", + "colored-diff", + "globset", + "guppy", + "nexlint", + "regex", + "serde 1.0.160", + "toml", +] + +[[package]] +name = "nibble_vec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" +dependencies = [ + "smallvec", +] + +[[package]] +name = "nix" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" +dependencies = [ + "bitflags", + "cc", + "cfg-if", + "libc", + "memoffset 0.6.5", +] + +[[package]] +name = "nix" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" +dependencies = [ + "bitflags", + "cfg-if", + "libc", +] + +[[package]] +name = "nix" +version = "0.26.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" +dependencies = [ + "bitflags", + "cfg-if", + "libc", + "static_assertions", +] + +[[package]] +name = "no-std-compat" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" + +[[package]] +name = "nom" +version = "5.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" +dependencies = [ + "lexical-core", + "memchr", + "version_check", +] + +[[package]] +name = "nom" +version = "7.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" +dependencies = [ + "memchr", + "minimal-lexical", +] + +[[package]] +name = "nom8" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" +dependencies = [ + "memchr", +] + +[[package]] +name = "nonzero_ext" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" + +[[package]] +name = "normalize-line-endings" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" + +[[package]] +name = "ntapi" +version = "0.3.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" +dependencies = [ + "winapi", +] + +[[package]] +name = "ntapi" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" +dependencies = [ + "winapi", +] + +[[package]] +name = "ntest" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da8ec6d2b73d45307e926f5af46809768581044384637af6b3f3fe7c3c88f512" +dependencies = [ + "ntest_test_cases", + "ntest_timeout", +] + +[[package]] +name = "ntest_test_cases" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be7d33be719c6f4d09e64e27c1ef4e73485dc4cc1f4d22201f89860a7fe22e22" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "ntest_timeout" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "066b468120587a402f0b47d8f80035c921f6a46f8209efd0632a89a16f5188a4" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "nu-ansi-term" +version = "0.46.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" +dependencies = [ + "overload", + "winapi", +] + +[[package]] +name = "num" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" +dependencies = [ + "num-bigint", + "num-complex", + "num-integer", + "num-iter", + "num-rational", + "num-traits 0.2.15", +] + +[[package]] +name = "num-bigint" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" +dependencies = [ + "autocfg", + "num-integer", + "num-traits 0.2.15", +] + +[[package]] +name = "num-bigint-dig" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905" +dependencies = [ + "byteorder", + "lazy_static 1.4.0", + "libm", + "num-integer", + "num-iter", + "num-traits 0.2.15", + "rand 0.8.5", + "smallvec", + "zeroize", +] + +[[package]] +name = "num-complex" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" +dependencies = [ + "num-traits 0.2.15", +] + +[[package]] +name = "num-format" +version = "0.4.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" +dependencies = [ + "arrayvec 0.7.2", + "itoa", +] + +[[package]] +name = "num-integer" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" +dependencies = [ + "autocfg", + "num-traits 0.2.15", +] + +[[package]] +name = "num-iter" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" +dependencies = [ + "autocfg", + "num-integer", + "num-traits 0.2.15", +] + +[[package]] +name = "num-rational" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" +dependencies = [ + "autocfg", + "num-bigint", + "num-integer", + "num-traits 0.2.15", +] + +[[package]] +name = "num-traits" +version = "0.1.43" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" +dependencies = [ + "num-traits 0.2.15", +] + +[[package]] +name = "num-traits" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +dependencies = [ + "autocfg", + "libm", +] + +[[package]] +name = "num_cpus" +version = "1.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" +dependencies = [ + "hermit-abi 0.2.6", + "libc", +] + +[[package]] +name = "number_prefix" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" + +[[package]] +name = "object" +version = "0.30.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" +dependencies = [ + "memchr", +] + +[[package]] +name = "object_store" +version = "0.5.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f344e51ec9584d2f51199c0c29c6f73dddd04ade986497875bf8fa2f178caf0" +dependencies = [ + "async-trait", + "aws-config", + "aws-credential-types", + "aws-types", + "base64 0.21.0", + "bytes", + "chrono", + "futures", + "itertools", + "parking_lot 0.12.1", + "percent-encoding", + "quick-xml 0.27.1", + "rand 0.8.5", + "reqwest", + "ring", + "rustls-pemfile", + "serde 1.0.160", + "serde_json", + "snafu", + "tokio", + "tracing", + "url", + "walkdir", +] + +[[package]] +name = "oid-registry" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" +dependencies = [ + "asn1-rs", +] + +[[package]] +name = "once_cell" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" + +[[package]] +name = "oorandom" +version = "11.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" + +[[package]] +name = "opaque-debug" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" + +[[package]] +name = "openssl-probe" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" + +[[package]] +name = "option-ext" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" + +[[package]] +name = "ordered-float" +version = "2.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" +dependencies = [ + "num-traits 0.2.15", +] + +[[package]] +name = "os_str_bytes" +version = "6.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" + +[[package]] +name = "ouroboros" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fbeff60e3e37407a80ead3e9458145b456e978c4068cddbfea6afb48572962ca" +dependencies = [ + "ouroboros_macro 0.9.5", + "stable_deref_trait", +] + +[[package]] +name = "ouroboros" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" +dependencies = [ + "aliasable", + "ouroboros_macro 0.15.6", +] + +[[package]] +name = "ouroboros_macro" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "03f2cb802b5bdfdf52f1ffa0b54ce105e4d346e91990dd571f86c91321ad49e2" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "ouroboros_macro" +version = "0.15.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" +dependencies = [ + "Inflector", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "output_vt100" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" +dependencies = [ + "winapi", +] + +[[package]] +name = "outref" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" + +[[package]] +name = "overload" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" + +[[package]] +name = "owo-colors" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" + +[[package]] +name = "p256" +version = "0.13.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" +dependencies = [ + "ecdsa 0.16.6", + "elliptic-curve 0.13.4", + "primeorder", + "sha2 0.10.6", +] + +[[package]] +name = "parity-scale-codec" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" +dependencies = [ + "arrayvec 0.7.2", + "bitvec", + "byte-slice-cast", + "impl-trait-for-tuples", + "parity-scale-codec-derive", + "serde 1.0.160", +] + +[[package]] +name = "parity-scale-codec-derive" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" +dependencies = [ + "proc-macro-crate", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "parking" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" + +[[package]] +name = "parking_lot" +version = "0.11.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +dependencies = [ + "instant", + "lock_api", + "parking_lot_core 0.8.6", +] + +[[package]] +name = "parking_lot" +version = "0.12.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" +dependencies = [ + "lock_api", + "parking_lot_core 0.9.7", +] + +[[package]] +name = "parking_lot_core" +version = "0.8.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" +dependencies = [ + "cfg-if", + "instant", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "winapi", +] + +[[package]] +name = "parking_lot_core" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" +dependencies = [ + "cfg-if", + "libc", + "redox_syscall 0.2.16", + "smallvec", + "windows-sys 0.45.0", +] + +[[package]] +name = "parse-zoneinfo" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" +dependencies = [ + "regex", +] + +[[package]] +name = "paste" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" + +[[package]] +name = "pathdiff" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" +dependencies = [ + "camino", +] + +[[package]] +name = "pbkdf2" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "peeking_take_while" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" + +[[package]] +name = "pem" +version = "1.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" +dependencies = [ + "base64 0.13.1", +] + +[[package]] +name = "pem-rfc7468" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" +dependencies = [ + "base64ct", +] + +[[package]] +name = "pem-rfc7468" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" +dependencies = [ + "base64ct", +] + +[[package]] +name = "percent-encoding" +version = "2.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" + +[[package]] +name = "pest" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" +dependencies = [ + "thiserror", + "ucd-trie", +] + +[[package]] +name = "pest_derive" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" +dependencies = [ + "pest", + "pest_generator", +] + +[[package]] +name = "pest_generator" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" +dependencies = [ + "pest", + "pest_meta", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "pest_meta" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" +dependencies = [ + "once_cell", + "pest", + "sha2 0.10.6", +] + +[[package]] +name = "petgraph" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" +dependencies = [ + "fixedbitset 0.2.0", + "indexmap", +] + +[[package]] +name = "petgraph" +version = "0.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" +dependencies = [ + "fixedbitset 0.4.2", + "indexmap", +] + +[[package]] +name = "phf" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" +dependencies = [ + "phf_shared", +] + +[[package]] +name = "phf_codegen" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770" +dependencies = [ + "phf_generator", + "phf_shared", +] + +[[package]] +name = "phf_generator" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" +dependencies = [ + "phf_shared", + "rand 0.8.5", +] + +[[package]] +name = "phf_shared" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" +dependencies = [ + "siphasher", + "uncased", +] + +[[package]] +name = "pin-project" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" +dependencies = [ + "pin-project-internal", +] + +[[package]] +name = "pin-project-internal" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "pin-project-lite" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" + +[[package]] +name = "pin-utils" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" + +[[package]] +name = "pkcs1" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" +dependencies = [ + "der 0.6.1", + "pkcs8 0.9.0", + "spki 0.6.0", + "zeroize", +] + +[[package]] +name = "pkcs8" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" +dependencies = [ + "der 0.6.1", + "spki 0.6.0", +] + +[[package]] +name = "pkcs8" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" +dependencies = [ + "der 0.7.5", + "spki 0.7.1", +] + +[[package]] +name = "pkg-config" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" + +[[package]] +name = "plotters" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" +dependencies = [ + "num-traits 0.2.15", + "plotters-backend", + "plotters-svg", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "plotters-backend" +version = "0.3.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" + +[[package]] +name = "plotters-svg" +version = "0.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" +dependencies = [ + "plotters-backend", +] + +[[package]] +name = "polyval" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" +dependencies = [ + "cfg-if", + "cpufeatures", + "opaque-debug", + "universal-hash", +] + +[[package]] +name = "portable-atomic" +version = "0.3.19" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26f6a7b87c2e435a3241addceeeff740ff8b7e76b74c13bf9acb17fa454ea00b" + +[[package]] +name = "postgres-protocol" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78b7fa9f396f51dffd61546fd8573ee20592287996568e6175ceb0f8699ad75d" +dependencies = [ + "base64 0.21.0", + "byteorder", + "bytes", + "fallible-iterator", + "hmac", + "md-5", + "memchr", + "rand 0.8.5", + "sha2 0.10.6", + "stringprep", +] + +[[package]] +name = "postgres-types" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f028f05971fe20f512bcc679e2c10227e57809a3af86a7606304435bc8896cd6" +dependencies = [ + "bytes", + "fallible-iterator", + "postgres-protocol", +] + +[[package]] +name = "pprof" +version = "0.11.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "196ded5d4be535690899a4631cc9f18cdc41b7ebf24a79400f46f48e49a11059" +dependencies = [ + "backtrace", + "cfg-if", + "criterion", + "findshlibs", + "inferno", + "libc", + "log", + "nix 0.26.2", + "once_cell", + "parking_lot 0.12.1", + "smallvec", + "symbolic-demangle", + "tempfile", + "thiserror", +] + +[[package]] +name = "ppv-lite86" +version = "0.2.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" + +[[package]] +name = "pq-sys" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" +dependencies = [ + "vcpkg", +] + +[[package]] +name = "predicates" +version = "2.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" +dependencies = [ + "difflib", + "float-cmp", + "itertools", + "normalize-line-endings", + "predicates-core", + "regex", +] + +[[package]] +name = "predicates" +version = "3.0.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" +dependencies = [ + "anstyle", + "difflib", + "itertools", + "predicates-core", +] + +[[package]] +name = "predicates-core" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" + +[[package]] +name = "predicates-tree" +version = "1.0.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" +dependencies = [ + "predicates-core", + "termtree", +] + +[[package]] +name = "pretty" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ad9940b913ee56ddd94aec2d3cd179dd47068236f42a1a6415ccf9d880ce2a61" +dependencies = [ + "arrayvec 0.5.2", + "typed-arena", +] + +[[package]] +name = "pretty_assertions" +version = "1.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" +dependencies = [ + "ctor", + "diff", + "output_vt100", + "yansi", +] + +[[package]] +name = "prettyplease" +version = "0.1.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" +dependencies = [ + "proc-macro2 1.0.56", + "syn 1.0.109", +] + +[[package]] +name = "prettytable-rs" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" +dependencies = [ + "csv", + "encode_unicode 1.0.0", + "is-terminal", + "lazy_static 1.4.0", + "term", + "unicode-width", +] + +[[package]] +name = "primeorder" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf8d3875361e28f7753baefef104386e7aa47642c93023356d97fdef4003bfb5" +dependencies = [ + "elliptic-curve 0.13.4", +] + +[[package]] +name = "primitive-types" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" +dependencies = [ + "fixed-hash", + "impl-codec", + "impl-serde", + "uint", +] + +[[package]] +name = "proc-macro-crate" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" +dependencies = [ + "thiserror", + "toml", +] + +[[package]] +name = "proc-macro-error" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" +dependencies = [ + "proc-macro-error-attr", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "version_check", +] + +[[package]] +name = "proc-macro-error-attr" +version = "1.0.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "version_check", +] + +[[package]] +name = "proc-macro-hack" +version = "0.5.20+deprecated" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" + +[[package]] +name = "proc-macro2" +version = "0.4.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" +dependencies = [ + "unicode-xid 0.1.0", +] + +[[package]] +name = "proc-macro2" +version = "1.0.56" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" +dependencies = [ + "unicode-ident", +] + +[[package]] +name = "prometheus" +version = "0.13.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" +dependencies = [ + "cfg-if", + "fnv", + "lazy_static 1.4.0", + "memchr", + "parking_lot 0.12.1", + "protobuf", + "thiserror", +] + +[[package]] +name = "prometheus-closure-metric" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "prometheus", + "protobuf", + "workspace-hack", +] + +[[package]] +name = "proptest" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29f1b898011ce9595050a68e60f90bad083ff2987a695a42357134c8381fba70" +dependencies = [ + "bit-set", + "bitflags", + "byteorder", + "lazy_static 1.4.0", + "num-traits 0.2.15", + "quick-error 2.0.1", + "rand 0.8.5", + "rand_chacha 0.3.1", + "rand_xorshift", + "regex-syntax 0.6.29", + "rusty-fork", + "tempfile", + "unarray", +] + +[[package]] +name = "proptest-derive" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "syn 0.15.44", +] + +[[package]] +name = "prost" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" +dependencies = [ + "bytes", + "prost-derive", +] + +[[package]] +name = "prost-build" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" +dependencies = [ + "bytes", + "heck 0.4.1", + "itertools", + "lazy_static 1.4.0", + "log", + "multimap", + "petgraph 0.6.3", + "prettyplease", + "prost", + "prost-types", + "regex", + "syn 1.0.109", + "tempfile", + "which", +] + +[[package]] +name = "prost-derive" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" +dependencies = [ + "anyhow", + "itertools", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "prost-types" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" +dependencies = [ + "prost", +] + +[[package]] +name = "protobuf" +version = "2.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" +dependencies = [ + "bytes", +] + +[[package]] +name = "protobuf-src" +version = "1.1.0+21.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" +dependencies = [ + "autotools", +] + +[[package]] +name = "ptree" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a0de80796b316aec75344095a6d2ef68ec9b8f573b9e7adc821149ba3598e270" +dependencies = [ + "ansi_term", + "atty", + "config", + "directories", + "petgraph 0.6.3", + "serde 1.0.160", + "serde-value", + "tint", +] + +[[package]] +name = "quanta" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" +dependencies = [ + "crossbeam-utils", + "libc", + "mach", + "once_cell", + "raw-cpuid", + "wasi 0.10.0+wasi-snapshot-preview1", + "web-sys", + "winapi", +] + +[[package]] +name = "quick-error" +version = "1.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" + +[[package]] +name = "quick-error" +version = "2.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" + +[[package]] +name = "quick-xml" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd" +dependencies = [ + "memchr", +] + +[[package]] +name = "quick-xml" +version = "0.27.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41" +dependencies = [ + "memchr", + "serde 1.0.160", +] + +[[package]] +name = "quinn" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "445cbfe2382fa023c4f2f3c7e1c95c03dcc1df2bf23cebcb2b13e1402c4394d1" +dependencies = [ + "bytes", + "futures-io", + "pin-project-lite", + "quinn-proto", + "quinn-udp", + "rustc-hash", + "rustls", + "thiserror", + "tokio", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-proto" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" +dependencies = [ + "bytes", + "rand 0.8.5", + "ring", + "rustc-hash", + "rustls", + "slab", + "thiserror", + "tinyvec", + "tracing", + "webpki", +] + +[[package]] +name = "quinn-udp" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" +dependencies = [ + "libc", + "quinn-proto", + "socket2 0.4.9", + "tracing", + "windows-sys 0.42.0", +] + +[[package]] +name = "quote" +version = "0.6.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" +dependencies = [ + "proc-macro2 0.4.30", +] + +[[package]] +name = "quote" +version = "1.0.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" +dependencies = [ + "proc-macro2 1.0.56", +] + +[[package]] +name = "r2d2" +version = "0.8.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" +dependencies = [ + "log", + "parking_lot 0.12.1", + "scheduled-thread-pool", +] + +[[package]] +name = "radium" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" + +[[package]] +name = "radix_trie" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" +dependencies = [ + "endian-type", + "nibble_vec", +] + +[[package]] +name = "rand" +version = "0.7.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" +dependencies = [ + "getrandom 0.1.16", + "libc", + "rand_chacha 0.2.2", + "rand_core 0.5.1", + "rand_hc", +] + +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_chacha" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" +dependencies = [ + "ppv-lite86", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", +] + +[[package]] +name = "rand_core" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" +dependencies = [ + "getrandom 0.1.16", +] + +[[package]] +name = "rand_core" +version = "0.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" +dependencies = [ + "getrandom 0.2.9", +] + +[[package]] +name = "rand_hc" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +dependencies = [ + "rand_core 0.5.1", +] + +[[package]] +name = "rand_xorshift" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "rand_xoshiro" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" +dependencies = [ + "rand_core 0.6.4", +] + +[[package]] +name = "raw-cpuid" +version = "10.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" +dependencies = [ + "bitflags", +] + +[[package]] +name = "rayon" +version = "1.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" +dependencies = [ + "either", + "rayon-core", +] + +[[package]] +name = "rayon-core" +version = "1.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" +dependencies = [ + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-utils", + "num_cpus", +] + +[[package]] +name = "rcgen" +version = "0.9.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" +dependencies = [ + "pem", + "ring", + "time 0.3.20", + "yasna", +] + +[[package]] +name = "read-write-set" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-model", + "move-read-write-set-types", + "move-stackless-bytecode", + "read-write-set-dynamic", +] + +[[package]] +name = "read-write-set-dynamic" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-read-write-set-types", +] + +[[package]] +name = "readonly" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eb656d27c22b5c47154452686cae5e096f12e124daacb36a0bfcb32dbebb39e3" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "real_tokio" +version = "1.27.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca#18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca" +dependencies = [ + "autocfg", + "bytes", + "libc", + "mio 0.8.6", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.4.9", + "tokio-macros 2.0.0", + "windows-sys 0.45.0", +] + +[[package]] +name = "redox_syscall" +version = "0.2.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_syscall" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" +dependencies = [ + "bitflags", +] + +[[package]] +name = "redox_users" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" +dependencies = [ + "getrandom 0.2.9", + "redox_syscall 0.2.16", + "thiserror", +] + +[[package]] +name = "ref-cast" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" +dependencies = [ + "ref-cast-impl", +] + +[[package]] +name = "ref-cast-impl" +version = "1.0.16" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "regex" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" +dependencies = [ + "aho-corasick 1.0.1", + "memchr", + "regex-syntax 0.7.1", +] + +[[package]] +name = "regex-automata" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" +dependencies = [ + "regex-syntax 0.6.29", +] + +[[package]] +name = "regex-syntax" +version = "0.6.29" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" + +[[package]] +name = "regex-syntax" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" + +[[package]] +name = "reqwest" +version = "0.11.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" +dependencies = [ + "base64 0.21.0", + "bytes", + "encoding_rs", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-rustls", + "ipnet", + "js-sys", + "log", + "mime", + "once_cell", + "percent-encoding", + "pin-project-lite", + "rustls", + "rustls-pemfile", + "serde 1.0.160", + "serde_json", + "serde_urlencoded", + "tokio", + "tokio-rustls", + "tokio-util 0.7.8", + "tower-service", + "url", + "wasm-bindgen", + "wasm-bindgen-futures", + "wasm-streams", + "web-sys", + "webpki-roots", + "winreg", +] + +[[package]] +name = "retain_mut" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086" + +[[package]] +name = "rfc6979" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" +dependencies = [ + "crypto-bigint 0.4.9", + "hmac", + "zeroize", +] + +[[package]] +name = "rfc6979" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" +dependencies = [ + "hmac", + "subtle", +] + +[[package]] +name = "rgb" +version = "0.8.36" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59" +dependencies = [ + "bytemuck", +] + +[[package]] +name = "ring" +version = "0.16.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" +dependencies = [ + "cc", + "libc", + "once_cell", + "spin", + "untrusted", + "web-sys", + "winapi", +] + +[[package]] +name = "ripemd" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" +dependencies = [ + "digest 0.10.6", +] + +[[package]] +name = "roaring" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ef0fb5e826a8bde011ecae6a8539dd333884335c57ff0f003fbe27c25bbe8f71" +dependencies = [ + "bytemuck", + "byteorder", + "retain_mut", +] + +[[package]] +name = "rocksdb" +version = "0.20.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "015439787fce1e75d55f279078d33ff14b4af5d93d995e8838ee4631301c8a99" +dependencies = [ + "libc", + "librocksdb-sys", +] + +[[package]] +name = "ron" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" +dependencies = [ + "base64 0.13.1", + "bitflags", + "serde 1.0.160", +] + +[[package]] +name = "rsa" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" +dependencies = [ + "byteorder", + "digest 0.10.6", + "num-bigint-dig", + "num-integer", + "num-iter", + "num-traits 0.2.15", + "pkcs1", + "pkcs8 0.9.0", + "rand_core 0.6.4", + "sha2 0.10.6", + "signature 2.1.0", + "subtle", + "zeroize", +] + +[[package]] +name = "rstest" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b07f2d176c472198ec1e6551dc7da28f1c089652f66a7b722676c2238ebc0edf" +dependencies = [ + "futures", + "futures-timer", + "rstest_macros", + "rustc_version", +] + +[[package]] +name = "rstest_macros" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7229b505ae0706e64f37ffc54a9c163e11022a6636d58fe1f3f52018257ff9f7" +dependencies = [ + "cfg-if", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustc_version", + "syn 1.0.109", + "unicode-ident", +] + +[[package]] +name = "rust-ini" +version = "0.13.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" + +[[package]] +name = "rust_decimal" +version = "1.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26bd36b60561ee1fb5ec2817f198b6fd09fa571c897a5e86d1487cfc2b096dfc" +dependencies = [ + "arrayvec 0.7.2", + "num-traits 0.2.15", +] + +[[package]] +name = "rustc-demangle" +version = "0.1.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" + +[[package]] +name = "rustc-hash" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" + +[[package]] +name = "rustc-hex" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" + +[[package]] +name = "rustc_version" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +dependencies = [ + "semver 1.0.17", +] + +[[package]] +name = "rusticata-macros" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" +dependencies = [ + "nom 7.1.3", +] + +[[package]] +name = "rustix" +version = "0.36.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" +dependencies = [ + "bitflags", + "errno 0.3.1", + "io-lifetimes", + "libc", + "linux-raw-sys 0.1.4", + "windows-sys 0.45.0", +] + +[[package]] +name = "rustix" +version = "0.37.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8bbfc1d1c7c40c01715f47d71444744a81669ca84e8b63e25a55e169b1f86433" +dependencies = [ + "bitflags", + "errno 0.3.1", + "io-lifetimes", + "libc", + "linux-raw-sys 0.3.6", + "windows-sys 0.48.0", +] + +[[package]] +name = "rustls" +version = "0.20.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" +dependencies = [ + "log", + "ring", + "sct", + "webpki", +] + +[[package]] +name = "rustls-native-certs" +version = "0.6.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" +dependencies = [ + "openssl-probe", + "rustls-pemfile", + "schannel", + "security-framework", +] + +[[package]] +name = "rustls-pemfile" +version = "1.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" +dependencies = [ + "base64 0.21.0", +] + +[[package]] +name = "rustversion" +version = "1.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" + +[[package]] +name = "rusty-fork" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" +dependencies = [ + "fnv", + "quick-error 1.2.3", + "tempfile", + "wait-timeout", +] + +[[package]] +name = "rustyline" +version = "9.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" +dependencies = [ + "bitflags", + "cfg-if", + "clipboard-win", + "dirs-next", + "fd-lock", + "libc", + "log", + "memchr", + "nix 0.23.2", + "radix_trie", + "scopeguard", + "smallvec", + "unicode-segmentation", + "unicode-width", + "utf8parse", + "winapi", +] + +[[package]] +name = "rustyline-derive" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "107c3d5d7f370ac09efa62a78375f94d94b8a33c61d8c278b96683fb4dbf2d8d" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "ryu" +version = "1.0.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" + +[[package]] +name = "same-file" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "schannel" +version = "0.1.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" +dependencies = [ + "windows-sys 0.42.0", +] + +[[package]] +name = "scheduled-thread-pool" +version = "0.2.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" +dependencies = [ + "parking_lot 0.12.1", +] + +[[package]] +name = "schemars" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" +dependencies = [ + "dyn-clone", + "either", + "schemars_derive", + "serde 1.0.160", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "serde_derive_internals", + "syn 1.0.109", +] + +[[package]] +name = "scoped-futures" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" +dependencies = [ + "cfg-if", + "pin-utils", +] + +[[package]] +name = "scopeguard" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" + +[[package]] +name = "scratch" +version = "1.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" + +[[package]] +name = "sct" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "sec1" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" +dependencies = [ + "base16ct 0.1.1", + "der 0.6.1", + "generic-array", + "subtle", + "zeroize", +] + +[[package]] +name = "sec1" +version = "0.7.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" +dependencies = [ + "base16ct 0.2.0", + "der 0.7.5", + "generic-array", + "pkcs8 0.10.2", + "subtle", + "zeroize", +] + +[[package]] +name = "secp256k1" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" +dependencies = [ + "bitcoin_hashes", + "rand 0.8.5", + "secp256k1-sys", +] + +[[package]] +name = "secp256k1-sys" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" +dependencies = [ + "cc", +] + +[[package]] +name = "security-framework" +version = "2.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" +dependencies = [ + "bitflags", + "core-foundation", + "core-foundation-sys", + "libc", + "security-framework-sys", +] + +[[package]] +name = "security-framework-sys" +version = "2.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" +dependencies = [ + "core-foundation-sys", + "libc", +] + +[[package]] +name = "semver" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" +dependencies = [ + "semver-parser", +] + +[[package]] +name = "semver" +version = "1.0.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "semver-parser" +version = "0.10.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" +dependencies = [ + "pest", +] + +[[package]] +name = "send_wrapper" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" + +[[package]] +name = "serde" +version = "0.8.23" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" + +[[package]] +name = "serde" +version = "1.0.160" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" +dependencies = [ + "serde_derive", +] + +[[package]] +name = "serde-hjson" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" +dependencies = [ + "lazy_static 1.4.0", + "num-traits 0.1.43", + "regex", + "serde 0.8.23", +] + +[[package]] +name = "serde-name" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" +dependencies = [ + "serde 1.0.160", + "thiserror", +] + +[[package]] +name = "serde-reflection" +version = "0.3.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f05a5f801ac62a51a49d378fdb3884480041b99aced450b28990673e8ff99895" +dependencies = [ + "once_cell", + "serde 1.0.160", + "thiserror", +] + +[[package]] +name = "serde-value" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" +dependencies = [ + "ordered-float", + "serde 1.0.160", +] + +[[package]] +name = "serde_bytes" +version = "0.11.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "serde_derive" +version = "1.0.160" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "serde_derive_internals" +version = "0.26.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "serde_json" +version = "1.0.96" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" +dependencies = [ + "indexmap", + "itoa", + "ryu", + "serde 1.0.160", +] + +[[package]] +name = "serde_path_to_error" +version = "0.1.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "serde_repr" +version = "0.1.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "serde_test" +version = "1.0.160" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3c95a500e3923258f7fc3a16bf29934e403aef5ca1096e184d85e3b1926675e8" +dependencies = [ + "serde 1.0.160", +] + +[[package]] +name = "serde_urlencoded" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" +dependencies = [ + "form_urlencoded", + "itoa", + "ryu", + "serde 1.0.160", +] + +[[package]] +name = "serde_with" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" +dependencies = [ + "base64 0.13.1", + "chrono", + "hex", + "indexmap", + "serde 1.0.160", + "serde_json", + "serde_with_macros", + "time 0.3.20", +] + +[[package]] +name = "serde_with_macros" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" +dependencies = [ + "darling 0.20.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "serde_yaml" +version = "0.8.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" +dependencies = [ + "indexmap", + "ryu", + "serde 1.0.160", + "yaml-rust", +] + +[[package]] +name = "sha-1" +version = "0.9.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha-1" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + +[[package]] +name = "sha1" +version = "0.10.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + +[[package]] +name = "sha2" +version = "0.9.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" +dependencies = [ + "block-buffer 0.9.0", + "cfg-if", + "cpufeatures", + "digest 0.9.0", + "opaque-debug", +] + +[[package]] +name = "sha2" +version = "0.10.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.6", +] + +[[package]] +name = "sha3" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +dependencies = [ + "block-buffer 0.9.0", + "digest 0.9.0", + "keccak", + "opaque-debug", +] + +[[package]] +name = "sha3" +version = "0.10.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c" +dependencies = [ + "digest 0.10.6", + "keccak", +] + +[[package]] +name = "sharded-slab" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" +dependencies = [ + "lazy_static 1.4.0", +] + +[[package]] +name = "shared-crypto" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "bcs", + "eyre", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "serde 1.0.160", + "serde_repr", + "workspace-hack", +] + +[[package]] +name = "shell-words" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" + +[[package]] +name = "shellexpand" +version = "3.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" +dependencies = [ + "dirs 5.0.1", +] + +[[package]] +name = "shlex" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" + +[[package]] +name = "signal-hook" +version = "0.3.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" +dependencies = [ + "libc", + "signal-hook-registry", +] + +[[package]] +name = "signal-hook-mio" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" +dependencies = [ + "libc", + "mio 0.7.14", + "mio 0.8.6", + "signal-hook", +] + +[[package]] +name = "signal-hook-registry" +version = "1.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" +dependencies = [ + "libc", +] + +[[package]] +name = "signature" +version = "1.6.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" +dependencies = [ + "digest 0.10.6", + "rand_core 0.6.4", +] + +[[package]] +name = "signature" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" +dependencies = [ + "digest 0.10.6", + "rand_core 0.6.4", +] + +[[package]] +name = "similar" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" + +[[package]] +name = "simplelog" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" +dependencies = [ + "chrono", + "log", + "termcolor", +] + +[[package]] +name = "siphasher" +version = "0.3.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" + +[[package]] +name = "sized-chunks" +version = "0.6.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" +dependencies = [ + "bitmaps", + "typenum", +] + +[[package]] +name = "slab" +version = "0.4.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" +dependencies = [ + "autocfg", +] + +[[package]] +name = "slip10_ed25519" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" +dependencies = [ + "hmac-sha512", +] + +[[package]] +name = "slug" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" +dependencies = [ + "deunicode", +] + +[[package]] +name = "smallvec" +version = "1.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" + +[[package]] +name = "snafu" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cb0656e7e3ffb70f6c39b3c2a86332bb74aa3c679da781642590f3c1118c5045" +dependencies = [ + "doc-comment", + "snafu-derive", +] + +[[package]] +name = "snafu-derive" +version = "0.7.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "475b3bbe5245c26f2d8a6f62d67c1f30eb9fffeccee721c45d162c3ebbdf81b2" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "snap" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" + +[[package]] +name = "socket2" +version = "0.4.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "socket2" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6d283f86695ae989d1e18440a943880967156325ba025f05049946bff47bcc2b" +dependencies = [ + "libc", + "windows-sys 0.48.0", +] + +[[package]] +name = "soketto" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" +dependencies = [ + "base64 0.13.1", + "bytes", + "futures", + "http", + "httparse", + "log", + "rand 0.8.5", + "sha-1 0.9.8", +] + +[[package]] +name = "spin" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" + +[[package]] +name = "spki" +version = "0.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" +dependencies = [ + "base64ct", + "der 0.6.1", +] + +[[package]] +name = "spki" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "37a5be806ab6f127c3da44b7378837ebf01dadca8510a0e572460216b228bd0e" +dependencies = [ + "base64ct", + "der 0.7.5", +] + +[[package]] +name = "stable_deref_trait" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" + +[[package]] +name = "static_assertions" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" + +[[package]] +name = "str-buf" +version = "1.0.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" + +[[package]] +name = "str_stack" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" + +[[package]] +name = "stringprep" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" +dependencies = [ + "unicode-bidi", + "unicode-normalization", +] + +[[package]] +name = "strip-ansi-escapes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8" +dependencies = [ + "vte", +] + +[[package]] +name = "strsim" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" + +[[package]] +name = "strsim" +version = "0.10.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" + +[[package]] +name = "structopt" +version = "0.3.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" +dependencies = [ + "clap 2.34.0", + "lazy_static 1.4.0", + "structopt-derive", +] + +[[package]] +name = "structopt-derive" +version = "0.4.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" +dependencies = [ + "heck 0.3.3", + "proc-macro-error", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "strum" +version = "0.24.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" +dependencies = [ + "strum_macros", +] + +[[package]] +name = "strum_macros" +version = "0.24.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" +dependencies = [ + "heck 0.4.1", + "proc-macro2 1.0.56", + "quote 1.0.26", + "rustversion", + "syn 1.0.109", +] + +[[package]] +name = "subprocess" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" +dependencies = [ + "libc", + "winapi", +] + +[[package]] +name = "subtle" +version = "2.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" + +[[package]] +name = "subtle-ng" +version = "2.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" + +[[package]] +name = "sui-adapter" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "leb128", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-core-types", + "move-vm-runtime", + "move-vm-types", + "once_cell", + "serde 1.0.160", + "sui-macros", + "sui-move-natives", + "sui-protocol-config", + "sui-types", + "sui-verifier", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-config" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "camino", + "csv", + "dirs 4.0.0", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "move-binary-format", + "move-core-types", + "narwhal-config", + "once_cell", + "prometheus", + "rand 0.8.5", + "serde 1.0.160", + "serde_with", + "serde_yaml", + "shared-crypto", + "sui-adapter", + "sui-framework", + "sui-keys", + "sui-move-natives", + "sui-protocol-config", + "sui-simulator", + "sui-storage", + "sui-types", + "tempfile", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-core" +version = "1.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "arc-swap", + "async-trait", + "bcs", + "bytes", + "chrono", + "dashmap", + "either", + "enum_dispatch", + "eyre", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "itertools", + "lru", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-core-types", + "move-package", + "move-symbol-pool", + "move-vm-runtime", + "mysten-common", + "mysten-metrics", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "narwhal-executor", + "narwhal-network", + "narwhal-node", + "narwhal-types", + "narwhal-worker", + "num_cpus", + "object_store", + "once_cell", + "parking_lot 0.12.1", + "prometheus", + "rand 0.8.5", + "rocksdb", + "scopeguard", + "serde 1.0.160", + "serde_json", + "serde_with", + "shared-crypto", + "signature 1.6.4", + "sui-adapter", + "sui-config", + "sui-framework", + "sui-json-rpc-types", + "sui-macros", + "sui-move-build", + "sui-move-natives", + "sui-network", + "sui-protocol-config", + "sui-simulator", + "sui-storage", + "sui-types", + "tap", + "telemetry-subscribers", + "tempfile", + "thiserror", + "tokio", + "tokio-retry", + "tokio-stream", + "tracing", + "typed-store", + "typed-store-derive", + "url", + "workspace-hack", +] + +[[package]] +name = "sui-cost-tables" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "move-binary-format", + "move-core-types", + "move-vm-test-utils", + "move-vm-types", + "once_cell", + "serde 1.0.160", + "workspace-hack", +] + +[[package]] +name = "sui-framework" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "move-binary-format", + "move-core-types", + "move-package", + "once_cell", + "serde 1.0.160", + "sui-move-build", + "sui-types", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-json" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "once_cell", + "schemars", + "serde 1.0.160", + "serde_json", + "sui-framework", + "sui-protocol-config", + "sui-types", + "workspace-hack", +] + +[[package]] +name = "sui-json-rpc" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "cached", + "eyre", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "hyper", + "itertools", + "jsonrpsee", + "jsonrpsee-proc-macros", + "linked-hash-map", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "move-package", + "mysten-metrics", + "num_cpus", + "once_cell", + "prometheus", + "serde 1.0.160", + "shared-crypto", + "signature 1.6.4", + "sui-core", + "sui-json", + "sui-json-rpc-types", + "sui-open-rpc", + "sui-open-rpc-macros", + "sui-protocol-config", + "sui-storage", + "sui-transaction-builder", + "sui-types", + "tap", + "thiserror", + "tokio", + "tower", + "tower-http 0.3.5", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "sui-json-rpc-types" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bcs", + "colored", + "enum_dispatch", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "itertools", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "schemars", + "serde 1.0.160", + "serde_json", + "serde_with", + "sui-json", + "sui-protocol-config", + "sui-types", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-keys" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "bip32", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "rand 0.8.5", + "serde 1.0.160", + "serde_json", + "shared-crypto", + "signature 1.6.4", + "slip10_ed25519", + "sui-types", + "tiny-bip39", + "workspace-hack", +] + +[[package]] +name = "sui-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "futures", + "once_cell", + "sui-proc-macros", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-move-build" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-compiler", + "move-core-types", + "move-package", + "move-symbol-pool", + "serde-reflection", + "sui-adapter", + "sui-protocol-config", + "sui-types", + "sui-verifier", + "tempfile", + "workspace-hack", +] + +[[package]] +name = "sui-move-natives" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "bcs", + "better_any", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "fastcrypto-zkp", + "linked-hash-map", + "move-binary-format", + "move-core-types", + "move-stdlib", + "move-vm-runtime", + "move-vm-types", + "smallvec", + "sui-protocol-config", + "sui-types", + "workspace-hack", +] + +[[package]] +name = "sui-network" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anemo-build", + "anemo-tower", + "anyhow", + "dashmap", + "futures", + "governor", + "mysten-metrics", + "mysten-network", + "prometheus", + "rand 0.8.5", + "serde 1.0.160", + "shared-crypto", + "sui-config", + "sui-types", + "tap", + "tokio", + "tonic", + "tonic-build", + "tower", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-open-rpc" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "bcs", + "schemars", + "serde 1.0.160", + "serde_json", + "versions", + "workspace-hack", +] + +[[package]] +name = "sui-open-rpc-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "derive-syn-parse", + "itertools", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "unescape", + "workspace-hack", +] + +[[package]] +name = "sui-proc-macros" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "msim-macros", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", + "workspace-hack", +] + +[[package]] +name = "sui-protocol-config" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "serde 1.0.160", + "serde_with", + "sui-protocol-config-macros", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-protocol-config-macros" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "workspace-hack", +] + +[[package]] +name = "sui-sdk" +version = "1.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "clap 3.2.25", + "colored", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "futures", + "futures-core", + "jsonrpsee", + "move-core-types", + "serde 1.0.160", + "serde_json", + "serde_with", + "shared-crypto", + "sui-config", + "sui-json", + "sui-json-rpc", + "sui-json-rpc-types", + "sui-keys", + "sui-transaction-builder", + "sui-types", + "thiserror", + "tokio", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-simulator" +version = "0.7.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anemo-tower", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "lru", + "move-package", + "msim", + "narwhal-network", + "sui-adapter", + "sui-framework", + "sui-move-build", + "sui-types", + "telemetry-subscribers", + "tempfile", + "tower", + "tracing", + "workspace-hack", +] + +[[package]] +name = "sui-storage" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "async-trait", + "backoff", + "bcs", + "bytes", + "eyre", + "futures", + "itertools", + "lru", + "move-binary-format", + "move-bytecode-utils", + "move-core-types", + "mysten-metrics", + "object_store", + "parking_lot 0.12.1", + "prometheus", + "rocksdb", + "serde 1.0.160", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-simulator", + "sui-types", + "tap", + "tempfile", + "tokio", + "tracing", + "typed-store", + "typed-store-derive", + "workspace-hack", +] + +[[package]] +name = "sui-transaction-builder" +version = "0.0.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anyhow", + "async-trait", + "bcs", + "futures", + "move-binary-format", + "move-core-types", + "sui-json", + "sui-json-rpc-types", + "sui-protocol-config", + "sui-types", + "workspace-hack", +] + +[[package]] +name = "sui-types" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "anemo", + "anyhow", + "bcs", + "bincode", + "byteorder", + "derivative", + "derive_more", + "enum_dispatch", + "eyre", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "indexmap", + "itertools", + "move-binary-format", + "move-bytecode-utils", + "move-command-line-common", + "move-core-types", + "move-disassembler", + "move-ir-types", + "mysten-network", + "narwhal-config", + "narwhal-crypto", + "once_cell", + "prometheus", + "proptest", + "proptest-derive", + "rand 0.8.5", + "roaring", + "schemars", + "serde 1.0.160", + "serde-name", + "serde_json", + "serde_with", + "shared-crypto", + "signature 1.6.4", + "static_assertions", + "strum", + "strum_macros", + "sui-cost-tables", + "sui-macros", + "sui-protocol-config", + "tap", + "thiserror", + "tonic", + "tracing", + "typed-store", + "workspace-hack", +] + +[[package]] +name = "sui-verifier" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "move-binary-format", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-core-types", + "sui-protocol-config", + "sui-types", + "workspace-hack", +] + +[[package]] +name = "symbolic-common" +version = "10.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b55cdc318ede251d0957f07afe5fed912119b8c1bc5a7804151826db999e737" +dependencies = [ + "debugid", + "memmap2", + "stable_deref_trait", + "uuid", +] + +[[package]] +name = "symbolic-demangle" +version = "10.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "79be897be8a483a81fff6a3a4e195b4ac838ef73ca42d348b3f722da9902e489" +dependencies = [ + "cpp_demangle", + "rustc-demangle", + "symbolic-common", +] + +[[package]] +name = "syn" +version = "0.15.44" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" +dependencies = [ + "proc-macro2 0.4.30", + "quote 0.6.13", + "unicode-xid 0.1.0", +] + +[[package]] +name = "syn" +version = "1.0.109" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "unicode-ident", +] + +[[package]] +name = "syn" +version = "2.0.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "unicode-ident", +] + +[[package]] +name = "sync_wrapper" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" + +[[package]] +name = "synstructure" +version = "0.12.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "unicode-xid 0.2.4", +] + +[[package]] +name = "sysinfo" +version = "0.27.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" +dependencies = [ + "cfg-if", + "core-foundation-sys", + "libc", + "ntapi 0.4.1", + "once_cell", + "rayon", + "winapi", +] + +[[package]] +name = "tabular" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d9a2882c514780a1973df90de9d68adcd8871bacc9a6331c3f28e6d2ff91a3d1" +dependencies = [ + "strip-ansi-escapes", + "unicode-width", +] + +[[package]] +name = "tap" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" + +[[package]] +name = "target-lexicon" +version = "0.12.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" + +[[package]] +name = "target-spec" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0bf4306559bd50cb358e7af5692694d6f6fad95cf2c0bea2571dd419f5298e12" +dependencies = [ + "cfg-expr 0.15.1", + "guppy-workspace-hack", + "serde 1.0.160", + "target-lexicon", +] + +[[package]] +name = "telemetry-subscribers" +version = "0.2.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "crossterm 0.25.0", + "once_cell", + "prometheus", + "tracing", + "tracing-appender", + "tracing-subscriber 0.3.17", + "workspace-hack", +] + +[[package]] +name = "tempfile" +version = "3.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" +dependencies = [ + "cfg-if", + "fastrand", + "redox_syscall 0.3.5", + "rustix 0.37.18", + "windows-sys 0.45.0", +] + +[[package]] +name = "tera" +version = "1.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3df578c295f9ec044ff1c829daf31bb7581d5b3c2a7a3d87419afe1f2531438c" +dependencies = [ + "chrono", + "chrono-tz", + "globwalk", + "humansize", + "lazy_static 1.4.0", + "percent-encoding", + "pest", + "pest_derive", + "rand 0.8.5", + "regex", + "serde 1.0.160", + "serde_json", + "slug", + "unic-segment", +] + +[[package]] +name = "term" +version = "0.7.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" +dependencies = [ + "dirs-next", + "rustversion", + "winapi", +] + +[[package]] +name = "termcolor" +version = "1.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +dependencies = [ + "winapi-util", +] + +[[package]] +name = "termtree" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" + +[[package]] +name = "test-fuzz" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd4a3a7f00909d5a1d1f83b86b65d91e4c94f80b0c2d0ae37e2ef44da7b7a0a0" +dependencies = [ + "serde 1.0.160", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", +] + +[[package]] +name = "test-fuzz-internal" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a9186daca5c58cb307d09731e0ba06b13fd6c036c90672b9bfc31cecf76cf689" +dependencies = [ + "cargo_metadata", + "proc-macro2 1.0.56", + "quote 1.0.26", + "serde 1.0.160", + "strum_macros", +] + +[[package]] +name = "test-fuzz-macro" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57d187b450bfb5b7939f82f9747dc1ebb15a7a9c4a93cd304a41aece7149608b" +dependencies = [ + "darling 0.14.4", + "if_chain", + "lazy_static 1.4.0", + "proc-macro2 1.0.56", + "quote 1.0.26", + "subprocess", + "syn 1.0.109", + "test-fuzz-internal", + "toolchain_find", + "unzip-n", +] + +[[package]] +name = "test-fuzz-runtime" +version = "3.0.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a0d69068569b9b7311095823fe0e49eedfd05ad4277eb64fc334cf1a5bc5116" +dependencies = [ + "bincode", + "hex", + "num-traits 0.2.15", + "serde 1.0.160", + "sha-1 0.10.1", + "test-fuzz-internal", +] + +[[package]] +name = "textwrap" +version = "0.11.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" +dependencies = [ + "unicode-width", +] + +[[package]] +name = "textwrap" +version = "0.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" + +[[package]] +name = "thiserror" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" +dependencies = [ + "thiserror-impl", +] + +[[package]] +name = "thiserror-impl" +version = "1.0.40" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "thread_local" +version = "1.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" +dependencies = [ + "cfg-if", + "once_cell", +] + +[[package]] +name = "threadpool" +version = "1.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" +dependencies = [ + "num_cpus", +] + +[[package]] +name = "time" +version = "0.1.45" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" +dependencies = [ + "libc", + "wasi 0.10.0+wasi-snapshot-preview1", + "winapi", +] + +[[package]] +name = "time" +version = "0.3.20" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" +dependencies = [ + "itoa", + "serde 1.0.160", + "time-core", + "time-macros", +] + +[[package]] +name = "time-core" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" + +[[package]] +name = "time-macros" +version = "0.2.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" +dependencies = [ + "time-core", +] + +[[package]] +name = "tint" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7af24570664a3074673dbbf69a65bdae0ae0b72f2949b1adfbacb736ee4d6896" +dependencies = [ + "lazy_static 0.2.11", +] + +[[package]] +name = "tiny-bip39" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" +dependencies = [ + "anyhow", + "hmac", + "once_cell", + "pbkdf2", + "rand 0.8.5", + "rustc-hash", + "sha2 0.10.6", + "thiserror", + "unicode-normalization", + "wasm-bindgen", + "zeroize", +] + +[[package]] +name = "tinytemplate" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" +dependencies = [ + "serde 1.0.160", + "serde_json", +] + +[[package]] +name = "tinyvec" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" +dependencies = [ + "tinyvec_macros", +] + +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + +[[package]] +name = "tokio" +version = "1.28.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" +dependencies = [ + "autocfg", + "bytes", + "libc", + "mio 0.8.6", + "num_cpus", + "parking_lot 0.12.1", + "pin-project-lite", + "signal-hook-registry", + "socket2 0.4.9", + "tokio-macros 2.1.0", + "tracing", + "windows-sys 0.48.0", +] + +[[package]] +name = "tokio-io-timeout" +version = "1.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" +dependencies = [ + "pin-project-lite", + "tokio", +] + +[[package]] +name = "tokio-macros" +version = "2.0.0" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca#18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "tokio-macros" +version = "2.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "tokio-postgres" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6e89f6234aa8fd43779746012fcf53603cdb91fdd8399aa0de868c2d56b6dde1" +dependencies = [ + "async-trait", + "byteorder", + "bytes", + "fallible-iterator", + "futures-channel", + "futures-util", + "log", + "parking_lot 0.12.1", + "percent-encoding", + "phf", + "pin-project-lite", + "postgres-protocol", + "postgres-types", + "socket2 0.5.2", + "tokio", + "tokio-util 0.7.8", +] + +[[package]] +name = "tokio-postgres-rustls" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "606f2b73660439474394432239c82249c0d45eb5f23d91f401be1e33590444a7" +dependencies = [ + "futures", + "ring", + "rustls", + "tokio", + "tokio-postgres", + "tokio-rustls", +] + +[[package]] +name = "tokio-retry" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" +dependencies = [ + "pin-project", + "rand 0.8.5", + "tokio", +] + +[[package]] +name = "tokio-rustls" +version = "0.23.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" +dependencies = [ + "rustls", + "tokio", + "webpki", +] + +[[package]] +name = "tokio-stream" +version = "0.1.14" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" +dependencies = [ + "futures-core", + "pin-project-lite", + "tokio", + "tokio-util 0.7.8", +] + +[[package]] +name = "tokio-util" +version = "0.7.7" +source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca#18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "futures-util", + "hashbrown 0.12.3", + "pin-project-lite", + "real_tokio", + "slab", + "tracing", +] + +[[package]] +name = "tokio-util" +version = "0.7.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" +dependencies = [ + "bytes", + "futures-core", + "futures-io", + "futures-sink", + "pin-project-lite", + "tokio", + "tracing", +] + +[[package]] +name = "toml" +version = "0.5.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" +dependencies = [ + "indexmap", + "serde 1.0.160", +] + +[[package]] +name = "toml_datetime" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" + +[[package]] +name = "toml_edit" +version = "0.14.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" +dependencies = [ + "combine", + "indexmap", + "itertools", + "serde 1.0.160", +] + +[[package]] +name = "toml_edit" +version = "0.15.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1541ba70885967e662f69d31ab3aeca7b1aaecfcd58679590b893e9239c3646" +dependencies = [ + "combine", + "indexmap", + "itertools", + "toml_datetime", +] + +[[package]] +name = "toml_edit" +version = "0.17.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a34cc558345efd7e88b9eda9626df2138b80bb46a7606f695e751c892bc7dac6" +dependencies = [ + "indexmap", + "itertools", + "nom8", + "toml_datetime", +] + +[[package]] +name = "tonic" +version = "0.8.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" +dependencies = [ + "async-stream", + "async-trait", + "axum", + "base64 0.13.1", + "bytes", + "futures-core", + "futures-util", + "h2", + "http", + "http-body", + "hyper", + "hyper-timeout", + "percent-encoding", + "pin-project", + "prost", + "prost-derive", + "rustls-pemfile", + "tokio", + "tokio-rustls", + "tokio-stream", + "tokio-util 0.7.8", + "tower", + "tower-layer", + "tower-service", + "tracing", + "tracing-futures", +] + +[[package]] +name = "tonic-build" +version = "0.8.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" +dependencies = [ + "prettyplease", + "proc-macro2 1.0.56", + "prost-build", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "tonic-health" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a88aee666ef3a4d1ee46218bbc8e5f69bcf9cc27bf2e871d6b724d83f56d179f" +dependencies = [ + "async-stream", + "bytes", + "prost", + "tokio", + "tokio-stream", + "tonic", +] + +[[package]] +name = "toolchain_find" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" +dependencies = [ + "home", + "lazy_static 1.4.0", + "regex", + "semver 0.11.0", + "walkdir", +] + +[[package]] +name = "tower" +version = "0.4.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" +dependencies = [ + "futures-core", + "futures-util", + "hdrhistogram", + "indexmap", + "pin-project", + "pin-project-lite", + "rand 0.8.5", + "slab", + "tokio", + "tokio-util 0.7.8", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-http" +version = "0.3.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" +dependencies = [ + "async-compression", + "base64 0.13.1", + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "httpdate", + "iri-string", + "mime", + "mime_guess", + "percent-encoding", + "pin-project-lite", + "tokio", + "tokio-util 0.7.8", + "tower", + "tower-layer", + "tower-service", + "tracing", + "uuid", +] + +[[package]] +name = "tower-http" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" +dependencies = [ + "bitflags", + "bytes", + "futures-core", + "futures-util", + "http", + "http-body", + "http-range-header", + "pin-project-lite", + "tower-layer", + "tower-service", + "tracing", +] + +[[package]] +name = "tower-layer" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" + +[[package]] +name = "tower-service" +version = "0.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" + +[[package]] +name = "tracing" +version = "0.1.37" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" +dependencies = [ + "cfg-if", + "log", + "pin-project-lite", + "tracing-attributes", + "tracing-core", +] + +[[package]] +name = "tracing-appender" +version = "0.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e" +dependencies = [ + "crossbeam-channel", + "time 0.3.20", + "tracing-subscriber 0.3.17", +] + +[[package]] +name = "tracing-attributes" +version = "0.1.24" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "tracing-core" +version = "0.1.30" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" +dependencies = [ + "once_cell", + "valuable", +] + +[[package]] +name = "tracing-futures" +version = "0.2.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" +dependencies = [ + "pin-project", + "tracing", +] + +[[package]] +name = "tracing-log" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" +dependencies = [ + "lazy_static 1.4.0", + "log", + "tracing-core", +] + +[[package]] +name = "tracing-serde" +version = "0.1.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" +dependencies = [ + "serde 1.0.160", + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.2.25" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" +dependencies = [ + "tracing-core", +] + +[[package]] +name = "tracing-subscriber" +version = "0.3.17" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" +dependencies = [ + "matchers", + "nu-ansi-term", + "once_cell", + "regex", + "serde 1.0.160", + "serde_json", + "sharded-slab", + "smallvec", + "thread_local", + "time 0.3.20", + "tracing", + "tracing-core", + "tracing-log", + "tracing-serde", +] + +[[package]] +name = "try-lock" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" + +[[package]] +name = "tui" +version = "0.17.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "23ed0a32c88b039b73f1b6c5acbd0554bfa5b6be94467375fd947c4de3a02271" +dependencies = [ + "bitflags", + "cassowary", + "crossterm 0.22.1", + "unicode-segmentation", + "unicode-width", +] + +[[package]] +name = "twox-hash" +version = "1.6.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" +dependencies = [ + "cfg-if", + "static_assertions", +] + +[[package]] +name = "typed-arena" +version = "2.0.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" + +[[package]] +name = "typed-store" +version = "0.4.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "async-trait", + "bcs", + "bincode", + "collectable", + "eyre", + "fdlimit", + "hdrhistogram", + "itertools", + "msim", + "num_cpus", + "once_cell", + "ouroboros 0.15.6", + "prometheus", + "rand 0.8.5", + "rocksdb", + "serde 1.0.160", + "sui-macros", + "tap", + "thiserror", + "tokio", + "tracing", + "workspace-hack", +] + +[[package]] +name = "typed-store-derive" +version = "0.3.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "workspace-hack", +] + +[[package]] +name = "typenum" +version = "1.16.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" + +[[package]] +name = "ucd-trie" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" + +[[package]] +name = "uint" +version = "0.9.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" +dependencies = [ + "byteorder", + "crunchy", + "hex", + "static_assertions", +] + +[[package]] +name = "unarray" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" + +[[package]] +name = "uncased" +version = "0.9.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622" +dependencies = [ + "version_check", +] + +[[package]] +name = "unescape" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" + +[[package]] +name = "unic-char-property" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" +dependencies = [ + "unic-char-range", +] + +[[package]] +name = "unic-char-range" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" + +[[package]] +name = "unic-common" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" + +[[package]] +name = "unic-segment" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" +dependencies = [ + "unic-ucd-segment", +] + +[[package]] +name = "unic-ucd-segment" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" +dependencies = [ + "unic-char-property", + "unic-char-range", + "unic-ucd-version", +] + +[[package]] +name = "unic-ucd-version" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" +dependencies = [ + "unic-common", +] + +[[package]] +name = "unicase" +version = "2.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" +dependencies = [ + "version_check", +] + +[[package]] +name = "unicode-bidi" +version = "0.3.13" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" + +[[package]] +name = "unicode-ident" +version = "1.0.8" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" + +[[package]] +name = "unicode-normalization" +version = "0.1.22" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" +dependencies = [ + "tinyvec", +] + +[[package]] +name = "unicode-segmentation" +version = "1.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" + +[[package]] +name = "unicode-width" +version = "0.1.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" + +[[package]] +name = "unicode-xid" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" + +[[package]] +name = "unicode-xid" +version = "0.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" + +[[package]] +name = "universal-hash" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" +dependencies = [ + "crypto-common", + "subtle", +] + +[[package]] +name = "unsigned-varint" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" + +[[package]] +name = "untrusted" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" + +[[package]] +name = "unzip-n" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "url" +version = "2.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" +dependencies = [ + "form_urlencoded", + "idna", + "percent-encoding", +] + +[[package]] +name = "urlencoding" +version = "2.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" + +[[package]] +name = "utf8parse" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" + +[[package]] +name = "uuid" +version = "1.3.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" +dependencies = [ + "getrandom 0.2.9", + "rand 0.8.5", +] + +[[package]] +name = "valuable" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" + +[[package]] +name = "variant_count" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" +dependencies = [ + "quote 1.0.26", + "syn 1.0.109", +] + +[[package]] +name = "vcpkg" +version = "0.2.15" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" + +[[package]] +name = "vec_map" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" + +[[package]] +name = "version_check" +version = "0.9.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" + +[[package]] +name = "versions" +version = "4.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" +dependencies = [ + "itertools", + "nom 7.1.3", +] + +[[package]] +name = "vsimd" +version = "0.8.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" + +[[package]] +name = "vte" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" +dependencies = [ + "arrayvec 0.5.2", + "utf8parse", + "vte_generate_state_changes", +] + +[[package]] +name = "vte_generate_state_changes" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", +] + +[[package]] +name = "wait-timeout" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +dependencies = [ + "libc", +] + +[[package]] +name = "waker-fn" +version = "1.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" + +[[package]] +name = "walkdir" +version = "2.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" +dependencies = [ + "same-file", + "winapi-util", +] + +[[package]] +name = "want" +version = "0.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" +dependencies = [ + "log", + "try-lock", +] + +[[package]] +name = "wasi" +version = "0.9.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" + +[[package]] +name = "wasi" +version = "0.10.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" + +[[package]] +name = "wasi" +version = "0.11.0+wasi-snapshot-preview1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" + +[[package]] +name = "wasm-bindgen" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" +dependencies = [ + "cfg-if", + "wasm-bindgen-macro", +] + +[[package]] +name = "wasm-bindgen-backend" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" +dependencies = [ + "bumpalo", + "log", + "once_cell", + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-futures" +version = "0.4.34" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" +dependencies = [ + "cfg-if", + "js-sys", + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "wasm-bindgen-macro" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" +dependencies = [ + "quote 1.0.26", + "wasm-bindgen-macro-support", +] + +[[package]] +name = "wasm-bindgen-macro-support" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 1.0.109", + "wasm-bindgen-backend", + "wasm-bindgen-shared", +] + +[[package]] +name = "wasm-bindgen-shared" +version = "0.2.84" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" + +[[package]] +name = "wasm-streams" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" +dependencies = [ + "futures-util", + "js-sys", + "wasm-bindgen", + "wasm-bindgen-futures", + "web-sys", +] + +[[package]] +name = "web-sys" +version = "0.3.61" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" +dependencies = [ + "js-sys", + "wasm-bindgen", +] + +[[package]] +name = "webpki" +version = "0.22.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" +dependencies = [ + "ring", + "untrusted", +] + +[[package]] +name = "webpki-roots" +version = "0.22.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" +dependencies = [ + "webpki", +] + +[[package]] +name = "which" +version = "4.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" +dependencies = [ + "either", + "libc", + "once_cell", +] + +[[package]] +name = "whoami" +version = "1.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2c70234412ca409cc04e864e89523cb0fc37f5e1344ebed5a3ebf4192b6b9f68" +dependencies = [ + "wasm-bindgen", + "web-sys", +] + +[[package]] +name = "widestring" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" + +[[package]] +name = "winapi" +version = "0.3.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +dependencies = [ + "winapi-i686-pc-windows-gnu", + "winapi-x86_64-pc-windows-gnu", +] + +[[package]] +name = "winapi-i686-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" + +[[package]] +name = "winapi-util" +version = "0.1.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +dependencies = [ + "winapi", +] + +[[package]] +name = "winapi-x86_64-pc-windows-gnu" +version = "0.4.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" + +[[package]] +name = "windows" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-sys" +version = "0.42.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.45.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" +dependencies = [ + "windows-targets 0.42.2", +] + +[[package]] +name = "windows-sys" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" +dependencies = [ + "windows-targets 0.48.0", +] + +[[package]] +name = "windows-targets" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" +dependencies = [ + "windows_aarch64_gnullvm 0.42.2", + "windows_aarch64_msvc 0.42.2", + "windows_i686_gnu 0.42.2", + "windows_i686_msvc 0.42.2", + "windows_x86_64_gnu 0.42.2", + "windows_x86_64_gnullvm 0.42.2", + "windows_x86_64_msvc 0.42.2", +] + +[[package]] +name = "windows-targets" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" +dependencies = [ + "windows_aarch64_gnullvm 0.48.0", + "windows_aarch64_msvc 0.48.0", + "windows_i686_gnu 0.48.0", + "windows_i686_msvc 0.48.0", + "windows_x86_64_gnu 0.48.0", + "windows_x86_64_gnullvm 0.48.0", + "windows_x86_64_msvc 0.48.0", +] + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" + +[[package]] +name = "windows_aarch64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" + +[[package]] +name = "windows_aarch64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" + +[[package]] +name = "windows_i686_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" + +[[package]] +name = "windows_i686_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" + +[[package]] +name = "windows_i686_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" + +[[package]] +name = "windows_i686_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.42.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.48.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" + +[[package]] +name = "winreg" +version = "0.10.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" +dependencies = [ + "winapi", +] + +[[package]] +name = "workspace-hack" +version = "0.1.0" +source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" +dependencies = [ + "Inflector", + "addr2line", + "adler", + "aead", + "aes", + "aes-gcm", + "ahash 0.7.6", + "ahash 0.8.3", + "aho-corasick 0.7.20", + "aliasable", + "alloc-no-stdlib", + "alloc-stdlib", + "anemo", + "anemo-build", + "anemo-cli", + "anemo-tower", + "anes", + "ansi_term", + "anyhow", + "arbitrary", + "arc-swap", + "ark-bls12-381", + "ark-bn254", + "ark-crypto-primitives", + "ark-ec", + "ark-ff", + "ark-ff-asm", + "ark-ff-macros", + "ark-groth16", + "ark-poly", + "ark-r1cs-std", + "ark-relations", + "ark-secp256r1", + "ark-serialize", + "ark-serialize-derive", + "ark-snark", + "ark-std", + "arrayref", + "arrayvec 0.5.2", + "arrayvec 0.7.2", + "asn1-rs", + "asn1-rs-derive", + "asn1-rs-impl", + "assert_cmd", + "async-compression", + "async-lock", + "async-recursion", + "async-stream", + "async-stream-impl", + "async-trait", + "async_once", + "atomicwrites", + "atty", + "auto_ops", + "autocfg", + "autotools", + "axum", + "axum-core", + "axum-extra", + "axum-server", + "backoff", + "backtrace", + "base-x", + "base16ct 0.1.1", + "base16ct 0.2.0", + "base64 0.13.1", + "base64 0.21.0", + "base64ct", + "bcs", + "beef", + "better_any", + "better_typeid_derive", + "bimap", + "bincode", + "bindgen", + "bip32", + "bit-set", + "bit-vec", + "bitcoin-private", + "bitcoin_hashes", + "bitflags", + "bitmaps", + "bitvec", + "blake2", + "blake3", + "block-buffer 0.10.4", + "block-buffer 0.9.0", + "block-padding 0.2.1", + "block-padding 0.3.3", + "blst", + "brotli", + "brotli-decompressor", + "bs58", + "bstr", + "bulletproofs", + "bumpalo", + "byte-slice-cast", + "bytecode-interpreter-crypto", + "bytemuck", + "byteorder", + "bytes", + "bzip2-sys", + "cached", + "cached_proc_macro", + "cached_proc_macro_types", + "camino", + "cargo-platform", + "cargo_metadata", + "cassowary", + "cast", + "cbc", + "cc", + "cexpr", + "cfg-expr 0.13.0", + "cfg-if", + "chrono", + "chrono-tz", + "chrono-tz-build", + "ciborium", + "ciborium-io", + "ciborium-ll", + "cipher", + "clang-sys", + "clap 2.34.0", + "clap 3.2.25", + "clap 4.2.5", + "clap_derive 3.2.25", + "clap_derive 4.2.0", + "clap_lex 0.2.4", + "clap_lex 0.3.3", + "clear_on_drop", + "clipboard-win", + "codespan", + "codespan-reporting", + "collectable", + "colored", + "colored-diff", + "combine", + "comfy-table", + "config", + "console", + "console-api", + "console-subscriber", + "const-oid", + "const-str", + "constant_time_eq", + "convert_case 0.4.0", + "convert_case 0.6.0", + "core-foundation", + "core-foundation-sys", + "core2", + "cpp_demangle", + "cpufeatures", + "crc32fast", + "criterion", + "criterion-plot", + "crossbeam-channel", + "crossbeam-deque", + "crossbeam-epoch", + "crossbeam-utils", + "crossterm 0.21.0", + "crossterm 0.22.1", + "crossterm 0.25.0", + "crossterm_winapi 0.8.0", + "crossterm_winapi 0.9.0", + "crunchy", + "crypto-bigint 0.4.9", + "crypto-bigint 0.5.2", + "crypto-common", + "csv", + "csv-core", + "ctor", + "ctr", + "curve25519-dalek-fiat", + "curve25519-dalek-ng", + "darling 0.14.4", + "darling_core 0.14.4", + "darling_macro 0.14.4", + "dashmap", + "data-encoding", + "data-encoding-macro", + "data-encoding-macro-internal", + "datatest-stable", + "deadpool", + "deadpool-runtime", + "debug-ignore", + "debugid", + "der 0.6.1", + "der 0.7.5", + "der-parser", + "derivative", + "derive-syn-parse", + "derive_arbitrary", + "derive_builder", + "derive_builder_core", + "derive_builder_macro", + "derive_more", + "determinator", + "deunicode", + "diesel", + "diesel-async", + "diesel-derive-enum", + "diesel_derives", + "diesel_migrations", + "diff", + "difference", + "difflib", + "diffus", + "diffy", + "digest 0.10.6", + "digest 0.9.0", + "directories", + "dirs 4.0.0", + "dirs-next", + "dirs-sys 0.3.7", + "dirs-sys-next", + "displaydoc", + "dissimilar", + "doc-comment", + "downcast", + "duration-str", + "dyn-clone", + "ecdsa 0.14.8", + "ecdsa 0.16.6", + "ed25519", + "ed25519-consensus", + "ed25519-dalek-fiat", + "either", + "elliptic-curve 0.12.3", + "elliptic-curve 0.13.4", + "encode_unicode 0.3.6", + "encode_unicode 1.0.0", + "encoding_rs", + "endian-type", + "enum_dispatch", + "errno 0.2.8", + "errno 0.3.1", + "error-code", + "ethnum", + "event-listener", + "expect-test", + "eyre", + "fail", + "fallible-iterator", + "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "fastcrypto-derive 0.1.2 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", + "fastcrypto-zkp", + "fastrand", + "fd-lock", + "fdlimit", + "ff 0.12.1", + "ff 0.13.0", + "fiat-crypto", + "findshlibs", + "fixed-hash", + "fixedbitset 0.2.0", + "fixedbitset 0.4.2", + "flate2", + "float-cmp", + "fnv", + "form_urlencoded", + "fragile", + "fs_extra", + "funty", + "futures", + "futures-channel", + "futures-core", + "futures-executor", + "futures-io", + "futures-lite", + "futures-macro", + "futures-sink", + "futures-task", + "futures-timer", + "futures-util", + "generic-array", + "getrandom 0.1.16", + "getrandom 0.2.9", + "ghash", + "gimli", + "git-version", + "git-version-macro", + "glob", + "globset", + "globwalk", + "gloo-net", + "gloo-timers", + "gloo-utils", + "governor", + "group 0.12.1", + "group 0.13.0", + "guppy", + "guppy-summaries", + "guppy-workspace-hack", + "h2", + "hakari", + "half", + "hashbrown 0.12.3", + "hashbrown 0.13.2", + "hdrhistogram", + "headers", + "headers-core", + "heck 0.3.3", + "heck 0.4.1", + "hex", + "hex-literal", + "hkdf", + "hmac", + "hmac-sha512", + "home", + "http", + "http-body", + "http-range-header", + "httparse", + "httpdate", + "humansize", + "humantime", + "hyper", + "hyper-rustls", + "hyper-timeout", + "iana-time-zone", + "ident_case", + "idna", + "if_chain", + "ignore", + "im", + "impl-codec", + "impl-serde", + "impl-trait-for-tuples", + "include_dir", + "include_dir_macros", + "indenter", + "indexmap", + "indicatif", + "inferno", + "inout", + "inquire", + "insta", + "instant", + "internment", + "io-lifetimes", + "ipnet", + "iri-string", + "is-terminal", + "itertools", + "itoa", + "jemalloc-ctl", + "jemalloc-sys", + "jobserver", + "js-sys", + "jsonrpsee", + "jsonrpsee-client-transport", + "jsonrpsee-core", + "jsonrpsee-http-client", + "jsonrpsee-proc-macros", + "jsonrpsee-server", + "jsonrpsee-types", + "jsonrpsee-wasm-client", + "jsonrpsee-ws-client", + "k256", + "keccak", + "lazy_static 0.2.11", + "lazy_static 1.4.0", + "lazycell", + "leb128", + "lexical-core", + "libc", + "libloading", + "libm", + "librocksdb-sys", + "libtest-mimic", + "libz-sys", + "linked-hash-map", + "linux-raw-sys 0.1.4", + "linux-raw-sys 0.3.6", + "lock_api", + "log", + "lru", + "lz4-sys", + "mach", + "match_opt", + "matchers", + "matchit 0.5.0", + "matchit 0.7.0", + "md-5", + "memchr", + "memmap2", + "memoffset 0.6.5", + "memoffset 0.7.1", + "merlin", + "migrations_internals", + "migrations_macros", + "mime", + "mime_guess", + "minimal-lexical", + "miniz_oxide 0.6.2", + "mio 0.7.14", + "mio 0.8.6", + "mockall", + "mockall_derive", + "more-asserts", + "move-abigen", + "move-binary-format", + "move-borrow-graph", + "move-bytecode-source-map", + "move-bytecode-utils", + "move-bytecode-verifier", + "move-bytecode-viewer", + "move-cli", + "move-command-line-common", + "move-compiler", + "move-core-types", + "move-coverage", + "move-disassembler", + "move-docgen", + "move-errmapgen", + "move-ir-compiler", + "move-ir-to-bytecode", + "move-ir-to-bytecode-syntax", + "move-ir-types", + "move-model", + "move-package", + "move-prover", + "move-prover-boogie-backend", + "move-read-write-set-types", + "move-resource-viewer", + "move-stackless-bytecode", + "move-stackless-bytecode-interpreter", + "move-stdlib", + "move-symbol-pool", + "move-table-extension", + "move-transactional-test-runner", + "move-unit-test", + "move-vm-runtime", + "move-vm-test-utils", + "move-vm-types", + "multiaddr", + "multibase", + "multihash", + "multihash-derive", + "multimap", + "named-lock", + "nested", + "newline-converter", + "nexlint", + "nexlint-lints", + "nibble_vec", + "nix 0.23.2", + "nix 0.24.3", + "no-std-compat", + "nom 5.1.3", + "nom 7.1.3", + "nonzero_ext", + "normalize-line-endings", + "ntapi 0.4.1", + "ntest", + "ntest_test_cases", + "ntest_timeout", + "nu-ansi-term", + "num", + "num-bigint", + "num-bigint-dig", + "num-complex", + "num-format", + "num-integer", + "num-iter", + "num-rational", + "num-traits 0.1.43", + "num-traits 0.2.15", + "num_cpus", + "number_prefix", + "object", + "oid-registry", + "once_cell", + "oorandom", + "opaque-debug", + "openssl-probe", + "ordered-float", + "os_str_bytes", + "ouroboros 0.15.6", + "ouroboros 0.9.5", + "ouroboros_macro 0.15.6", + "ouroboros_macro 0.9.5", + "output_vt100", + "overload", + "owo-colors", + "p256", + "parity-scale-codec", + "parity-scale-codec-derive", + "parking", + "parking_lot 0.11.2", + "parking_lot 0.12.1", + "parking_lot_core 0.8.6", + "parking_lot_core 0.9.7", + "parse-zoneinfo", + "paste", + "pathdiff", + "pbkdf2", + "peeking_take_while", + "pem", + "pem-rfc7468 0.6.0", + "pem-rfc7468 0.7.0", + "percent-encoding", + "pest", + "pest_derive", + "pest_generator", + "pest_meta", + "petgraph 0.5.1", + "petgraph 0.6.3", + "phf", + "phf_codegen", + "phf_generator", + "phf_shared", + "pin-project", + "pin-project-internal", + "pin-project-lite", + "pin-utils", + "pkcs1", + "pkcs8 0.10.2", + "pkcs8 0.9.0", + "pkg-config", + "plotters", + "plotters-backend", + "plotters-svg", + "polyval", + "portable-atomic", + "postgres-protocol", + "postgres-types", + "pprof", + "ppv-lite86", + "pq-sys", + "predicates 2.1.5", + "predicates-core", + "predicates-tree", + "pretty", + "pretty_assertions", + "prettyplease", + "prettytable-rs", + "primeorder", + "primitive-types", + "proc-macro-crate", + "proc-macro-error", + "proc-macro-error-attr", + "proc-macro-hack", + "proc-macro2 0.4.30", + "proc-macro2 1.0.56", + "prometheus", + "proptest", + "proptest-derive", + "prost", + "prost-build", + "prost-derive", + "prost-types", + "protobuf", + "protobuf-src", + "ptree", + "quanta", + "quick-error 1.2.3", + "quick-error 2.0.1", + "quick-xml 0.26.0", + "quinn", + "quinn-proto", + "quinn-udp", + "quote 0.6.13", + "quote 1.0.26", + "r2d2", + "radium", + "radix_trie", + "rand 0.7.3", + "rand 0.8.5", + "rand_chacha 0.2.2", + "rand_chacha 0.3.1", + "rand_core 0.5.1", + "rand_core 0.6.4", + "rand_xorshift", + "rand_xoshiro", + "raw-cpuid", + "rayon", + "rayon-core", + "rcgen", + "read-write-set", + "read-write-set-dynamic", + "readonly", + "ref-cast", + "ref-cast-impl", + "regex", + "regex-automata", + "regex-syntax 0.6.29", + "reqwest", + "retain_mut", + "rfc6979 0.3.1", + "rfc6979 0.4.0", + "rgb", + "ring", + "ripemd", + "roaring", + "rocksdb", + "ron", + "rsa", + "rstest", + "rstest_macros", + "rust-ini", + "rust_decimal", + "rustc-demangle", + "rustc-hash", + "rustc-hex", + "rustc_version", + "rusticata-macros", + "rustix 0.36.13", + "rustix 0.37.18", + "rustls", + "rustls-native-certs", + "rustls-pemfile", + "rustversion", + "rusty-fork", + "rustyline", + "rustyline-derive", + "ryu", + "same-file", + "schannel", + "scheduled-thread-pool", + "schemars", + "schemars_derive", + "scoped-futures", + "scopeguard", + "sct", + "sec1 0.3.0", + "sec1 0.7.2", + "secp256k1", + "secp256k1-sys", + "security-framework", + "security-framework-sys", + "semver 0.11.0", + "semver 1.0.17", + "semver-parser", + "send_wrapper", + "serde 0.8.23", + "serde 1.0.160", + "serde-hjson", + "serde-name", + "serde-reflection", + "serde-value", + "serde_bytes", + "serde_derive", + "serde_derive_internals", + "serde_json", + "serde_path_to_error", + "serde_repr", + "serde_test", + "serde_urlencoded", + "serde_with", + "serde_with_macros", + "serde_yaml", + "sha-1 0.10.1", + "sha-1 0.9.8", + "sha1", + "sha2 0.10.6", + "sha2 0.9.9", + "sha3 0.10.7", + "sha3 0.9.1", + "sharded-slab", + "shell-words", + "shellexpand", + "shlex", + "signal-hook", + "signal-hook-mio", + "signal-hook-registry", + "signature 1.6.4", + "signature 2.1.0", + "similar", + "simplelog", + "siphasher", + "sized-chunks", + "slab", + "slip10_ed25519", + "slug", + "smallvec", + "snap", + "socket2 0.4.9", + "soketto", + "spin", + "spki 0.6.0", + "spki 0.7.1", + "stable_deref_trait", + "static_assertions", + "str-buf", + "str_stack", + "stringprep", + "strip-ansi-escapes", + "strsim 0.10.0", + "strsim 0.8.0", + "structopt", + "structopt-derive", + "strum", + "strum_macros", + "subprocess", + "subtle", + "subtle-ng", + "symbolic-common", + "symbolic-demangle", + "syn 0.15.44", + "syn 1.0.109", + "syn 2.0.15", + "sync_wrapper", + "synstructure", + "sysinfo", + "tabular", + "tap", + "target-lexicon", + "target-spec", + "tempfile", + "tera", + "term", + "termcolor", + "termtree", + "test-fuzz", + "test-fuzz-internal", + "test-fuzz-macro", + "test-fuzz-runtime", + "textwrap 0.11.0", + "textwrap 0.16.0", + "thiserror", + "thiserror-impl", + "thread_local", + "threadpool", + "time 0.1.45", + "time 0.3.20", + "time-core", + "time-macros", + "tint", + "tiny-bip39", + "tinytemplate", + "tinyvec", + "tinyvec_macros", + "tokio", + "tokio-io-timeout", + "tokio-macros 2.1.0", + "tokio-postgres", + "tokio-postgres-rustls", + "tokio-retry", + "tokio-rustls", + "tokio-stream", + "tokio-util 0.7.8", + "toml", + "toml_datetime", + "toml_edit 0.14.4", + "toml_edit 0.15.0", + "tonic", + "tonic-build", + "tonic-health", + "toolchain_find", + "tower", + "tower-http 0.3.5", + "tower-http 0.4.0", + "tower-layer", + "tower-service", + "tracing", + "tracing-appender", + "tracing-attributes", + "tracing-core", + "tracing-futures", + "tracing-serde", + "tracing-subscriber 0.2.25", + "tracing-subscriber 0.3.17", + "try-lock", + "tui", + "twox-hash", + "typed-arena", + "typenum", + "ucd-trie", + "uint", + "unarray", + "uncased", + "unescape", + "unic-char-property", + "unic-char-range", + "unic-common", + "unic-segment", + "unic-ucd-segment", + "unic-ucd-version", + "unicase", + "unicode-bidi", + "unicode-ident", + "unicode-normalization", + "unicode-segmentation", + "unicode-width", + "unicode-xid 0.1.0", + "unicode-xid 0.2.4", + "universal-hash", + "unsigned-varint", + "untrusted", + "unzip-n", + "url", + "utf8parse", + "uuid", + "variant_count", + "vcpkg", + "vec_map", + "version_check", + "versions", + "vte", + "vte_generate_state_changes", + "wait-timeout", + "waker-fn", + "walkdir", + "want", + "wasm-bindgen", + "wasm-bindgen-backend", + "wasm-bindgen-futures", + "wasm-bindgen-macro", + "wasm-bindgen-macro-support", + "wasm-bindgen-shared", + "web-sys", + "webpki", + "webpki-roots", + "which", + "whoami", + "widestring", + "winapi", + "winapi-util", + "windows-sys 0.42.0", + "windows-sys 0.45.0", + "windows-sys 0.48.0", + "windows-targets 0.42.2", + "windows-targets 0.48.0", + "windows_x86_64_msvc 0.42.2", + "windows_x86_64_msvc 0.48.0", + "winreg", + "wyz", + "x509-parser", + "yaml-rust", + "yansi", + "yasna", + "zeroize", + "zeroize_derive", + "zstd-sys", +] + +[[package]] +name = "wyz" +version = "0.2.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" + +[[package]] +name = "x509-parser" +version = "0.14.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" +dependencies = [ + "asn1-rs", + "base64 0.13.1", + "data-encoding", + "der-parser", + "lazy_static 1.4.0", + "nom 7.1.3", + "oid-registry", + "rusticata-macros", + "thiserror", + "time 0.3.20", +] + +[[package]] +name = "xmlparser" +version = "0.13.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" + +[[package]] +name = "yaml-rust" +version = "0.4.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" +dependencies = [ + "linked-hash-map", +] + +[[package]] +name = "yansi" +version = "0.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" + +[[package]] +name = "yasna" +version = "0.5.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" +dependencies = [ + "time 0.3.20", +] + +[[package]] +name = "zeroize" +version = "1.6.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" +dependencies = [ + "zeroize_derive", +] + +[[package]] +name = "zeroize_derive" +version = "1.4.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" +dependencies = [ + "proc-macro2 1.0.56", + "quote 1.0.26", + "syn 2.0.15", +] + +[[package]] +name = "zstd-sys" +version = "2.0.8+zstd.1.5.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" +dependencies = [ + "cc", + "libc", + "pkg-config", +] diff --git a/target_chains/sui/scripts/rust/Cargo.toml b/target_chains/sui/scripts/rust/Cargo.toml new file mode 100644 index 0000000000..a6bdc6ac89 --- /dev/null +++ b/target_chains/sui/scripts/rust/Cargo.toml @@ -0,0 +1,28 @@ +[package] +name = "monkey" +version = "0.1.0" +edition = "2021" + +# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html + +[dependencies] +sui-sdk = { git = "https://github.com/MystenLabs/sui", branch = "main" } +sui-framework = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-json-rpc = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-transaction-builder = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-json-rpc-types = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-types = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-json = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-core = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-config = { git = "https://github.com/MystenLabs/sui", branch = "main"} +sui-keys = { git = "https://github.com/MystenLabs/sui", branch = "main"} +shared-crypto = { git = "https://github.com/MystenLabs/sui", branch = "main"} +fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "84fd7c7428c5f59185aecc56a2e0a006e8e07de1" } + +bcs = "0.1.4" + +dirs = "5.0.0" +anyhow = "1.0.64" +tokio = { version = "1", features = ["full"] } +futures = "0.3.23" +hex = "0.4.3" \ No newline at end of file diff --git a/target_chains/sui/scripts/rust/src/main.rs b/target_chains/sui/scripts/rust/src/main.rs new file mode 100644 index 0000000000..cb475fa129 --- /dev/null +++ b/target_chains/sui/scripts/rust/src/main.rs @@ -0,0 +1,153 @@ +#![allow(unused_imports)] +#![allow(unused_variables)] +#![allow(dead_code)] + +mod programmable; + +use dirs; +use fastcrypto::{encoding::Base64, hash::HashFunction}; +use futures::StreamExt; +use shared_crypto::intent::Intent; +use std::env; +use std::str::FromStr; +use sui_json::call_args; +use sui_json::type_args; +use sui_json_rpc_types::SuiTransactionBlockEffects; +use sui_json_rpc_types::SuiTypeTag; +use sui_keys::keystore::{AccountKeystore, FileBasedKeystore, Keystore}; +use sui_sdk::json::SuiJsonValue; +use sui_sdk::rpc_types::{ + EventFilter, SuiObjectDataOptions, SuiObjectResponse, SuiTransactionBlockResponseOptions, + SuiTransactionBlockResponseQuery, +}; +use sui_sdk::types::base_types::{ObjectID, SuiAddress}; +use sui_sdk::types::messages::{ + ExecuteTransactionRequestType, GasData, ProgrammableTransaction, Transaction, TransactionData, + TransactionDataV1, TransactionExpiration, TransactionKind, +}; +use sui_sdk::{SuiClient, SuiClientBuilder}; +use sui_types::digests::TransactionDigest; +use sui_types::query::TransactionFilter; + +use crate::programmable::*; + +async fn get_object(sui: &SuiClient, object_id: ObjectID) -> anyhow::Result<()> { + println!("!!! get_single_object:"); + let options = SuiObjectDataOptions { + show_type: false, + show_owner: false, + show_previous_transaction: false, + show_display: false, + show_content: false, + show_bcs: true, + show_storage_rebate: false, + }; + let object = sui + .read_api() + .get_object_with_options(object_id, options) + .await?; + println!("{:#?}", object.data); + println!("======================"); + Ok(()) +} + +#[tokio::main] +async fn main() -> Result<(), anyhow::Error> { + let argv: Vec = env::args().collect(); + + // In Rust, WS and HTTTP endpoints need to be specified separately. + let sui = SuiClientBuilder::default() + //.ws_url("ws://127.0.0.1:9000") // localnet + //.ws_url("wss://fullnode.devnet.sui.io:443") // devnet + .ws_url("wss://fullnode.testnet.sui.io:443") // testnet + //.build("http://127.0.0.1:9000") // localnet + // .build("http://127.0.0.1:3000") // "proxynet" (Run httpproxy/main.go for this to work) + // .build("https://fullnode.devnet.sui.io:443") // devnet + .build("https://fullnode.testnet.sui.io:443") // testnet + .await + .unwrap(); + let my_address1 = + SuiAddress::from_str("0x8c09dd5350d8e1d13d1a36ba4e8cfb5b3382f47d5545455310ef8ec180e76af7")?; + let my_address1_gas_object = + ObjectID::from_str("0x088ed2dbb8cf2c6da083bff5c46c7b55a2c235361cadd63a7bbb01f7ffe2ee20")?; + let my_address2 = + SuiAddress::from_str("0x4ed01b6abcc271a5c7a1e05ee9344d6eb72d0c1f2483a1c600b46d73a22ba764")?; + + if argv.contains(&String::from("--objects")) { + get_owned_objects(&sui, my_address1).await?; + } else { + println!("!!! skipping objects since --objects was not provided"); + } + + if argv.contains(&String::from("--get-object")) { + let some_object = ObjectID::from_str( + "0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8", + )?; + get_object(&sui, some_object).await?; + } else { + println!("!!! skipping get-object since --get-object was not provided"); + } + + if argv.contains(&String::from("--get-transaction")) { + let interesting_transaction = + TransactionDigest::from_str("8iEbjTWv8Hj5WZiTncJm2rMRJoJoQLRtGkDAXX4mBaAF")?; + get_transaction(&sui, interesting_transaction).await?; + } else { + println!("!!! skipping get-transaction since --get-transaction was not provided"); + } + + if argv.contains(&String::from("--my-transactions")) { + query_my_transactions(&sui, my_address1).await?; + } else { + println!("!!! skipping my transactions since --my-transactions was not provided"); + } + + if argv.contains(&String::from("--transfer")) { + make_sui_transfer(&sui, my_address1, my_address1_gas_object, my_address2).await?; + } else { + println!("!!! skipping transfer since --transfer was not provided"); + } + + if argv.contains(&String::from("--events")) { + // This address has called the 8192 game on testnet. + let some_address = SuiAddress::from_str( + "0xdd6dca6d248a48bc6591edce1754ecb78f793c1c963aebc28ed7b26aaea99198", + )?; + query_events(&sui, some_address).await?; + } else { + println!("!!! skipping transfer since --events was not provided"); + } + + if argv.contains(&String::from("--move")) { + call_move_function(&sui).await?; + } else { + println!("!!! skipping move call since --move was not provided"); + } + + if argv.contains(&String::from("--programmable")) { + call_programmable_transaction(&sui).await?; + } else { + println!( + "!!! skipping programmable transaction call since --programmable was not provided" + ); + } + + if argv.contains(&String::from("--subscribe")) { + println!("!!! subscribing to events:"); + let mut subscribe_all = sui + .event_api() + .subscribe_event(EventFilter::All(vec![])) + .await?; + loop { + let next = subscribe_all.next().await; + println!("{:?}", next); + if next.is_none() { + break; + } + } + } else { + println!("!!! skipping subscribing to events since --subscribe was not provided"); + } + + Ok(()) +} From 6c639c61e59eb1fa20f28e8a761a8e4d5e5b5d20 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 04:05:52 +0000 Subject: [PATCH 073/140] contract upgrade in version_control.move and fix pyth_create_price_feed.ts --- .../contracts/sources/version_control.move | 7 - target_chains/sui/scripts/package.json | 1 + .../sui/scripts/pyth_create_price_feed.ts | 24 +- target_chains/sui/scripts/pyth_get_vaas.ts | 5 +- target_chains/sui/scripts/rust/Cargo.lock | 12268 ---------------- target_chains/sui/scripts/rust/Cargo.toml | 28 - target_chains/sui/scripts/rust/src/main.rs | 153 - target_chains/sui/scripts/tsconfig.json | 4 +- target_chains/sui/scripts/yarn.lock | 3760 +++++ 9 files changed, 3767 insertions(+), 12483 deletions(-) delete mode 100644 target_chains/sui/scripts/rust/Cargo.lock delete mode 100644 target_chains/sui/scripts/rust/Cargo.toml delete mode 100644 target_chains/sui/scripts/rust/src/main.rs create mode 100644 target_chains/sui/scripts/yarn.lock diff --git a/target_chains/sui/contracts/sources/version_control.move b/target_chains/sui/contracts/sources/version_control.move index 88a1f67d8e..d189336c75 100644 --- a/target_chains/sui/contracts/sources/version_control.move +++ b/target_chains/sui/contracts/sources/version_control.move @@ -45,13 +45,6 @@ module pyth::version_control { /// meant to perform a one-time `State` modification via `migrate`. struct V__0_1_1 has store, drop, copy {} - /// First published package. - /// - /// NOTE: This version is published on Sui testnet. - /// - /// https://github.com/wormhole-foundation/wormhole/commit/03ff1b24cf913ed04ce59fe26b5d3abd53015f28 - struct V__0_1_0 has store, drop, copy {} - // Dummy. struct V__DUMMY has store, drop, copy {} diff --git a/target_chains/sui/scripts/package.json b/target_chains/sui/scripts/package.json index c4e19e67fb..db265d07ff 100644 --- a/target_chains/sui/scripts/package.json +++ b/target_chains/sui/scripts/package.json @@ -7,6 +7,7 @@ "dependencies": { "@certusone/wormhole-sdk": "^0.9.12", "@mysten/sui.js": "^0.32.2", + "@optke3/sui.js": "0.33.0", "@pythnetwork/client": "^2.17.0", "@pythnetwork/price-service-client": "^1.4.0", "@pythnetwork/price-service-sdk": "^1.2.0", diff --git a/target_chains/sui/scripts/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth_create_price_feed.ts index 3669f3a8cf..8881bcca61 100644 --- a/target_chains/sui/scripts/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth_create_price_feed.ts @@ -12,7 +12,7 @@ import { testnetConnection, Connection, TypeTagSerializer -} from "@mysten/sui.js"; +} from "@optke3/sui.js"; dotenv.config({"path":"~/.env"}) @@ -37,7 +37,7 @@ async function main() { provider ); console.log(wallet.getAddress()) - const vaa_bytes = "AQAAAAABAMN885gNTVEako6fczJq22AOFSRWdUsUOxPQVHSnxhj3ecU2gJVDBlAcY6G9FWmGCcGcdZ/5iVXQCm+0loHvfqwAZE/kXQAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAADugxEBUDJXSAADAAEAAQIABQCdWnl7akEQMaEEfYaw/fhuJFW+jn/vFq7yPbIJcj2vlB9hIm05vuoZ0zTxfC/rzifhJkbYRnWSTrsCuc2upocn4wAAAABBxD4gAAAAAAAJ2WD////4AAAAAEIrzm4AAAAAAAn/ewEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAABBxC0/AAAAAAAJi/EAAAAAZE/kXLWIXWbTUV6YNI7DMlk7XRbg/bhT77Ye1dzAvPgOkWCB11ZqO6f3KG7VT0rn6YP0QgrgseDziS4R+cSrEHu617kAAAAAZCplIAAAAAAAEu4I////+AAAAABkvzOKAAAAAAAQZDgBAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAAAZCplIAAAAAAAFIotAAAAAGRP5Fw3+21L/xkSgKfP+Av17aeofBUakdmoW6So+OLPlX5BjbMn2c8OzXk6F1+nCsjS3BCdRGJ1jlVpYsSoewLsTz8VAAAAAC1gXb0AAAAAAAdkLv////gAAAAALZa00gAAAAAABpwgAQAAAAEAAAACAAAAAGRP5F0AAAAAZE/kXQAAAABkT+RcAAAAAC1gXb0AAAAAAAdkLgAAAABkT+RcHNsaXh40VtKXfuDT1wdlI58IpChVuVCP1HnhXG3E0f7s9VN3DZsQll+Ptkdx6T9WkKGC7cMr5KMjbgyqpuBYGgAAAAewLri2AAAAAAEnq0n////4AAAAB7uEHmgAAAAAAV8hnAEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAAewBz2PAAAAAAE4kisAAAAAZE/kXGogZxwOP4yyGc4/RuWuCWpPL9+TbSvU2okl9wCH1R3YMAKUeVmHlykONjihcSwpveI2fQ7KeU93iyW1pHLxkt4AAAACtJQuKQAAAAAAn4lX////+AAAAAK3aIHUAAAAAACmrg4BAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAACtJOhZQAAAAAAnAlPAAAAAGRP5Fw="; + const vaa_bytes = "AQAAAAABAD8FwBwewFlgIZEo0t7Dpu8mz9i+bPEJ5PfOWLUbxFX7AMvugmXM9tX9k+r/QxC8kIXNgMhL73KSydo2GSUstSAAZFHbwAAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAETHVsBUDJXSAADAAEAAQIABQCdKP4F0nCMZXEYKnydH/RXoiG0Ze316prxNz+VYtFrjRX5wBcroQ36TRkIjZT1v2HTtU1b10g6MiqYLhNz7o6jGwAAAphd6NU9AAAAAB6Wb4P////4AAACmAbWa0AAAAAAJefHvAEAAAABAAAAAgAAAABkUdvAAAAAAGRR28AAAAAAZFHbvwAAAphbwUynAAAAAB3wzlkAAAAAZFHbv4s423AOizRkDmgeyac+iWCL2ilBVUeiJPllhRkrS53HlLzkruiP36W1jYEJC9azeEcX+m34VBnZ8EQzuz1hXVwAAAAABWEWZgAAAAAAAKsd////+AAAAAAFXhNiAAAAAAAAw3EBAAAAAQAAAAIAAAAAZFHbwAAAAABkUdvAAAAAAGRR278AAAAABWEWZgAAAAAAAKsdAAAAAGRR2787aaPPB1ZGxf2BSLcFuBB+YaGiU9XYqENV3LYos/HRIDF3Xh1olxKeioTuupdXePtQAVuIA56bwUC72DlpSsCuAAAAAAB3mT0AAAAAAAAPk/////gAAAAAAHeFVwAAAAAAABJyAQAAAAEAAAACAAAAAGRR28AAAAAAZFHbwAAAAABkUdu/AAAAAAB3mTAAAAAAAAANrgAAAABkUdu/SGZ95ESKIEFTqpC4mv1o8FTA5ZWWxNrHr0W+iuWp6c0FqTTLO7re+TtSWXirW9PVzjuPxnF7nqGCpojF2O6OAgAAAAAO3VLRAAAAAAACEbH////4AAAAAA61qRQAAAAAAAGV1wEAAAABAAAAAgAAAABkUdvAAAAAAGRR278AAAAAZFHbvwAAAAAO3VLRAAAAAAACEbEAAAAAZFHbv1bQch5gfcAz/wK+4huZGOE7zOuX4nmi0fooiPAFat09tWItMvNtyCCvKIqrd5Ez7xIF0xI7viVmA4Sbgg3ki4cAAAAAH0BMAQAAAAAAAvAf////+AAAAAAfVHCKAAAAAAAC2YABAAAAAQAAAAIAAAAAZFHbwAAAAABkUdu/AAAAAGRR278AAAAAH0BMAQAAAAAAAvAfAAAAAGRR278=" create_price_feeds(wallet, registry, vaa_bytes) } @@ -69,31 +69,13 @@ async function create_price_feeds( ], }); - // console.log("parsed thing: ", TypeTagSerializer.tagToString( - // { vector: - // { - // address: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7', - // module: 'vaa', - // name: 'VAA' - // } - // } - // ) - // ) - tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, arguments: [ tx.object(PYTH_STATE), //tx.makeMoveVec({ type: TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr('0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA')), objects: [verified_vaa] }), // has type vector //@ts-ignore - tx.makeMoveVec({ type: TypeTagSerializer.tagToString( - { vector: { struct : { - address: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7', - module: 'vaa', - name: 'VAA', - typeParams: [] - }}} - ), objects: [verified_vaa] }), // has type vector, + tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, tx.object(SUI_CLOCK_OBJECT_ID) ], }); diff --git a/target_chains/sui/scripts/pyth_get_vaas.ts b/target_chains/sui/scripts/pyth_get_vaas.ts index f765efe554..6d0eeb83ca 100644 --- a/target_chains/sui/scripts/pyth_get_vaas.ts +++ b/target_chains/sui/scripts/pyth_get_vaas.ts @@ -14,14 +14,11 @@ async function main(){ // "0xdcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" // ]; const priceIds = [ - "0x61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" + "0xf9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" ] const priceFeedVAAs = await connection.getLatestVaas(priceIds); console.log(priceFeedVAAs) - let x = Buffer.from([19,148,123,212,139,24,229,63,218,238,231,127,52,115,57,26,199,39,198,56]).toString("hex") - console.log(x) - } main(); diff --git a/target_chains/sui/scripts/rust/Cargo.lock b/target_chains/sui/scripts/rust/Cargo.lock deleted file mode 100644 index 250287a7a9..0000000000 --- a/target_chains/sui/scripts/rust/Cargo.lock +++ /dev/null @@ -1,12268 +0,0 @@ -# This file is automatically @generated by Cargo. -# It is not intended for manual editing. -version = 3 - -[[package]] -name = "Inflector" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe438c63458706e03479442743baae6c88256498e6431708f6dfc520a26515d3" - -[[package]] -name = "addr2line" -version = "0.19.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a76fd60b23679b7d19bd066031410fb7e458ccc5e958eb5c325888ce4baedc97" -dependencies = [ - "gimli", -] - -[[package]] -name = "adler" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f26201604c87b1e01bd3d98f8d5d9a8fcbb815e8cedb41ffccbeb4bf593a35fe" - -[[package]] -name = "aead" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d122413f284cf2d62fb1b7db97e02edb8cda96d769b16e443a4f6195e35662b0" -dependencies = [ - "crypto-common", - "generic-array", -] - -[[package]] -name = "aes" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "433cfd6710c9986c576a25ca913c39d66a6474107b406f34f91d4a8923395241" -dependencies = [ - "cfg-if", - "cipher", - "cpufeatures", -] - -[[package]] -name = "aes-gcm" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e1366e0c69c9f927b1fa5ce2c7bf9eafc8f9268c0b9800729e8b267612447c" -dependencies = [ - "aead", - "aes", - "cipher", - "ctr", - "ghash", - "subtle", -] - -[[package]] -name = "ahash" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" -dependencies = [ - "getrandom 0.2.9", - "once_cell", - "version_check", -] - -[[package]] -name = "ahash" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c99f64d1e06488f620f932677e24bc6e2897582980441ae90a671415bd7ec2f" -dependencies = [ - "cfg-if", - "getrandom 0.2.9", - "once_cell", - "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc936419f96fa211c1b9166887b38e5e40b19958e5b895be7c1f93adec7071ac" -dependencies = [ - "memchr", -] - -[[package]] -name = "aho-corasick" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67fc08ce920c31afb70f013dcce1bfc3a3195de6a228474e45e1f145b36f8d04" -dependencies = [ - "memchr", -] - -[[package]] -name = "aliasable" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "250f629c0161ad8107cf89319e990051fae62832fd343083bea452d93e2205fd" - -[[package]] -name = "alloc-no-stdlib" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc7bb162ec39d46ab1ca8c77bf72e890535becd1751bb45f64c597edb4c8c6b3" - -[[package]] -name = "alloc-stdlib" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94fb8275041c72129eb51b7d0322c29b8387a0386127718b096429201a5d6ece" -dependencies = [ - "alloc-no-stdlib", -] - -[[package]] -name = "android_system_properties" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "819e7219dbd41043ac279b19830f2efc897156490d7fd6ea916720117ee66311" -dependencies = [ - "libc", -] - -[[package]] -name = "anemo" -version = "0.0.0" -source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" -dependencies = [ - "anyhow", - "async-trait", - "bincode", - "bytes", - "ed25519", - "futures", - "hex", - "http", - "matchit 0.5.0", - "pin-project-lite", - "pkcs8 0.9.0", - "quinn", - "quinn-proto", - "rand 0.8.5", - "rcgen", - "ring", - "rustls", - "serde 1.0.160", - "serde_json", - "tap", - "tokio", - "tokio-util 0.7.8", - "tower", - "tracing", - "webpki", - "x509-parser", -] - -[[package]] -name = "anemo-build" -version = "0.0.0" -source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" -dependencies = [ - "prettyplease", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "anemo-cli" -version = "0.0.0" -source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" -dependencies = [ - "anemo", - "anemo-tower", - "bytes", - "clap 4.2.5", - "dashmap", - "rand 0.8.5", - "tokio", - "tower", - "tracing", -] - -[[package]] -name = "anemo-tower" -version = "0.0.0" -source = "git+https://github.com/mystenlabs/anemo.git?rev=05322deb1795a5d482630740bc938fa7f067c58f#05322deb1795a5d482630740bc938fa7f067c58f" -dependencies = [ - "anemo", - "bytes", - "dashmap", - "futures", - "governor", - "nonzero_ext", - "pin-project-lite", - "tokio", - "tower", - "tracing", - "uuid", -] - -[[package]] -name = "anes" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b46cbb362ab8752921c97e041f5e366ee6297bd428a31275b9fcf1e380f7299" - -[[package]] -name = "ansi_term" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d52a9bb7ec0cf484c551830a7ce27bd20d67eac647e1befb56b0be4ee39a55d2" -dependencies = [ - "winapi", -] - -[[package]] -name = "anstream" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ca84f3628370c59db74ee214b3263d58f9aadd9b4fe7e711fd87dc452b7f163" -dependencies = [ - "anstyle", - "anstyle-parse", - "anstyle-query", - "anstyle-wincon", - "colorchoice", - "is-terminal", - "utf8parse", -] - -[[package]] -name = "anstyle" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41ed9a86bf92ae6580e0a31281f65a1b1d867c0cc68d5346e2ae128dddfa6a7d" - -[[package]] -name = "anstyle-parse" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e765fd216e48e067936442276d1d57399e37bce53c264d6fefbe298080cb57ee" -dependencies = [ - "utf8parse", -] - -[[package]] -name = "anstyle-query" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ca11d4be1bab0c8bc8734a9aa7bf4ee8316d462a08c6ac5052f888fef5b494b" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "anstyle-wincon" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "180abfa45703aebe0093f79badacc01b8fd4ea2e35118747e5811127f926e188" -dependencies = [ - "anstyle", - "windows-sys 0.48.0", -] - -[[package]] -name = "anyhow" -version = "1.0.71" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c7d0618f0e0b7e8ff11427422b64564d5fb0be1940354bfe2e0529b18a9d9b8" -dependencies = [ - "backtrace", -] - -[[package]] -name = "arbitrary" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2d098ff73c1ca148721f37baad5ea6a465a13f9573aba8641fbbbae8164a54e" -dependencies = [ - "derive_arbitrary", -] - -[[package]] -name = "arc-swap" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bddcadddf5e9015d310179a59bb28c4d4b9920ad0f11e8e14dbadf654890c9a6" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "ark-bls12-381" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c775f0d12169cba7aae4caeb547bb6a50781c7449a8aa53793827c9ec4abf488" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-serialize", - "ark-std", -] - -[[package]] -name = "ark-bn254" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a22f4561524cd949590d78d7d4c5df8f592430d221f7f3c9497bbafd8972120f" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-crypto-primitives" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3a13b34da09176a8baba701233fdffbaa7c1b1192ce031a3da4e55ce1f1a56" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-r1cs-std", - "ark-relations", - "ark-serialize", - "ark-snark", - "ark-std", - "blake2", - "derivative", - "digest 0.10.6", - "rayon", - "sha2 0.10.6", - "tracing", -] - -[[package]] -name = "ark-ec" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "defd9a439d56ac24968cca0571f598a61bc8c55f71d50a89cda591cb750670ba" -dependencies = [ - "ark-ff", - "ark-poly", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.13.2", - "itertools", - "num-traits 0.2.15", - "rayon", - "zeroize", -] - -[[package]] -name = "ark-ff" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec847af850f44ad29048935519032c33da8aa03340876d351dfab5660d2966ba" -dependencies = [ - "ark-ff-asm", - "ark-ff-macros", - "ark-serialize", - "ark-std", - "derivative", - "digest 0.10.6", - "itertools", - "num-bigint", - "num-traits 0.2.15", - "paste", - "rayon", - "rustc_version", - "zeroize", -] - -[[package]] -name = "ark-ff-asm" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3ed4aa4fe255d0bc6d79373f7e31d2ea147bcf486cba1be5ba7ea85abdb92348" -dependencies = [ - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ark-ff-macros" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7abe79b0e4288889c4574159ab790824d0033b9fdcb2a112a3182fac2e514565" -dependencies = [ - "num-bigint", - "num-traits 0.2.15", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ark-groth16" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20ceafa83848c3e390f1cbf124bc3193b3e639b3f02009e0e290809a501b95fc" -dependencies = [ - "ark-crypto-primitives", - "ark-ec", - "ark-ff", - "ark-poly", - "ark-relations", - "ark-serialize", - "ark-std", - "rayon", -] - -[[package]] -name = "ark-poly" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d320bfc44ee185d899ccbadfa8bc31aab923ce1558716e1997a1e74057fe86bf" -dependencies = [ - "ark-ff", - "ark-serialize", - "ark-std", - "derivative", - "hashbrown 0.13.2", - "rayon", -] - -[[package]] -name = "ark-r1cs-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "de1d1472e5cb020cb3405ce2567c91c8d43f21b674aef37b0202f5c3304761db" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-relations", - "ark-std", - "derivative", - "num-bigint", - "num-integer", - "num-traits 0.2.15", - "tracing", -] - -[[package]] -name = "ark-relations" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00796b6efc05a3f48225e59cb6a2cda78881e7c390872d5786aaf112f31fb4f0" -dependencies = [ - "ark-ff", - "ark-std", - "tracing", - "tracing-subscriber 0.2.25", -] - -[[package]] -name = "ark-secp256r1" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3975a01b0a6e3eae0f72ec7ca8598a6620fc72fa5981f6f5cca33b7cd788f633" -dependencies = [ - "ark-ec", - "ark-ff", - "ark-std", -] - -[[package]] -name = "ark-serialize" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adb7b85a02b83d2f22f89bd5cac66c9c89474240cb6207cb1efc16d098e822a5" -dependencies = [ - "ark-serialize-derive", - "ark-std", - "digest 0.10.6", - "num-bigint", -] - -[[package]] -name = "ark-serialize-derive" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae3281bc6d0fd7e549af32b52511e1302185bd688fd3359fa36423346ff682ea" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ark-snark" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "84d3cc6833a335bb8a600241889ead68ee89a3cf8448081fb7694c0fe503da63" -dependencies = [ - "ark-ff", - "ark-relations", - "ark-serialize", - "ark-std", -] - -[[package]] -name = "ark-std" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94893f1e0c6eeab764ade8dc4c0db24caf4fe7cbbaafc0eba0a9030f447b5185" -dependencies = [ - "num-traits 0.2.15", - "rand 0.8.5", - "rayon", -] - -[[package]] -name = "arrayref" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b4930d2cb77ce62f89ee5d5289b4ac049559b1c45539271f5ed4fdc7db34545" - -[[package]] -name = "arrayvec" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23b62fc65de8e4e7f52534fb52b0f3ed04746ae267519eef2a83941e8085068b" - -[[package]] -name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - -[[package]] -name = "asn1-rs" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f6fd5ddaf0351dff5b8da21b2fb4ff8e08ddd02857f0bf69c47639106c0fff0" -dependencies = [ - "asn1-rs-derive", - "asn1-rs-impl", - "displaydoc", - "nom 7.1.3", - "num-traits 0.2.15", - "rusticata-macros", - "thiserror", - "time 0.3.20", -] - -[[package]] -name = "asn1-rs-derive" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "726535892e8eae7e70657b4c8ea93d26b8553afb1ce617caee529ef96d7dee6c" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "asn1-rs-impl" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2777730b2039ac0f95f093556e61b6d26cebed5393ca6f152717777cec3a42ed" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "assert_cmd" -version = "2.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86d6b683edf8d1119fe420a94f8a7e389239666aa72e65495d91c00462510151" -dependencies = [ - "anstyle", - "bstr", - "doc-comment", - "predicates 3.0.3", - "predicates-core", - "predicates-tree", - "wait-timeout", -] - -[[package]] -name = "async-compression" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "942c7cd7ae39e91bde4820d74132e9862e62c2f386c3aa90ccf55949f5bad63a" -dependencies = [ - "brotli", - "flate2", - "futures-core", - "memchr", - "pin-project-lite", - "tokio", -] - -[[package]] -name = "async-lock" -version = "2.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa24f727524730b077666307f2734b4a1a1c57acb79193127dcc8914d5242dd7" -dependencies = [ - "event-listener", -] - -[[package]] -name = "async-recursion" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e97ce7de6cf12de5d7226c73f5ba9811622f4db3a5b91b55c53e987e5f91cba" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "async-stream" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd56dd203fef61ac097dd65721a419ddccb106b2d2b70ba60a6b529f03961a51" -dependencies = [ - "async-stream-impl", - "futures-core", - "pin-project-lite", -] - -[[package]] -name = "async-stream-impl" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16e62a023e7c117e27523144c5d2459f4397fcc3cab0085af8e2224f643a0193" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "async-task" -version = "4.3.0" -source = "git+https://github.com/mystenmark/async-task?rev=4e45b26e11126b191701b9b2ce5e2346b8d7682f#4e45b26e11126b191701b9b2ce5e2346b8d7682f" - -[[package]] -name = "async-trait" -version = "0.1.68" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9ccdd8f2a161be9bd5c023df56f1b2a0bd1d83872ae53b71a84a12c9bf6e842" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "async_once" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ce4f10ea3abcd6617873bae9f91d1c5332b4a778bd9ce34d0cd517474c1de82" - -[[package]] -name = "atomicwrites" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb8f2cd6962fa53c0e2a9d3f97eaa7dbd1e3cbbeeb4745403515b42ae07b3ff6" -dependencies = [ - "tempfile", - "winapi", -] - -[[package]] -name = "atty" -version = "0.2.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi 0.1.19", - "libc", - "winapi", -] - -[[package]] -name = "auto_ops" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7460f7dd8e100147b82a63afca1a20eb6c231ee36b90ba7272e14951cb58af59" - -[[package]] -name = "autocfg" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" - -[[package]] -name = "autotools" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aef8da1805e028a172334c3b680f93e71126f2327622faef2ec3d893c0a4ad77" -dependencies = [ - "cc", -] - -[[package]] -name = "aws-config" -version = "0.54.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c3d1e2a1f1ab3ac6c4b884e37413eaa03eb9d901e4fc68ee8f5c1d49721680e" -dependencies = [ - "aws-credential-types", - "aws-http", - "aws-sdk-sso", - "aws-sdk-sts", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-json", - "aws-smithy-types", - "aws-types", - "bytes", - "hex", - "http", - "hyper", - "ring", - "time 0.3.20", - "tokio", - "tower", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-credential-types" -version = "0.54.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0696a0523a39a19087747e4dafda0362dc867531e3d72a3f195564c84e5e08" -dependencies = [ - "aws-smithy-async", - "aws-smithy-types", - "tokio", - "tracing", - "zeroize", -] - -[[package]] -name = "aws-endpoint" -version = "0.54.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80a4f935ab6a1919fbfd6102a80c4fccd9ff5f47f94ba154074afe1051903261" -dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "aws-types", - "http", - "regex", - "tracing", -] - -[[package]] -name = "aws-http" -version = "0.54.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82976ca4e426ee9ca3ffcf919d9b2c8d14d0cd80d43cc02173737a8f07f28d4d" -dependencies = [ - "aws-credential-types", - "aws-smithy-http", - "aws-smithy-types", - "aws-types", - "bytes", - "http", - "http-body", - "lazy_static 1.4.0", - "percent-encoding", - "pin-project-lite", - "tracing", -] - -[[package]] -name = "aws-sdk-sso" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca0119bacf0c42f587506769390983223ba834e605f049babe514b2bd646dbb2" -dependencies = [ - "aws-credential-types", - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-json", - "aws-smithy-types", - "aws-types", - "bytes", - "http", - "regex", - "tokio-stream", - "tower", -] - -[[package]] -name = "aws-sdk-sts" -version = "0.24.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "270b6a33969ebfcb193512fbd5e8ee5306888ad6c6d5d775cdbfb2d50d94de26" -dependencies = [ - "aws-credential-types", - "aws-endpoint", - "aws-http", - "aws-sig-auth", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-json", - "aws-smithy-query", - "aws-smithy-types", - "aws-smithy-xml", - "aws-types", - "bytes", - "http", - "regex", - "tower", - "tracing", -] - -[[package]] -name = "aws-sig-auth" -version = "0.54.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "660a02a98ab1af83bd8d714afbab2d502ba9b18c49e7e4cddd6bf8837ff778cb" -dependencies = [ - "aws-credential-types", - "aws-sigv4", - "aws-smithy-http", - "aws-types", - "http", - "tracing", -] - -[[package]] -name = "aws-sigv4" -version = "0.54.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86529e7b64d902efea8fff52c1b2529368d04f90305cf632729e3713f6b57dc0" -dependencies = [ - "aws-smithy-http", - "form_urlencoded", - "hex", - "hmac", - "http", - "once_cell", - "percent-encoding", - "regex", - "sha2 0.10.6", - "time 0.3.20", - "tracing", -] - -[[package]] -name = "aws-smithy-async" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "63c712a28a4f2f2139759235c08bf98aca99d4fdf1b13c78c5f95613df0a5db9" -dependencies = [ - "futures-util", - "pin-project-lite", - "tokio", - "tokio-stream", -] - -[[package]] -name = "aws-smithy-client" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "104ca17f56cde00a10207169697dfe9c6810db339d52fb352707e64875b30a44" -dependencies = [ - "aws-smithy-async", - "aws-smithy-http", - "aws-smithy-http-tower", - "aws-smithy-types", - "bytes", - "fastrand", - "http", - "http-body", - "hyper", - "hyper-rustls", - "lazy_static 1.4.0", - "pin-project-lite", - "tokio", - "tower", - "tracing", -] - -[[package]] -name = "aws-smithy-http" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "873f316f1833add0d3aa54ed1b0cd252ddd88c792a0cf839886400099971e844" -dependencies = [ - "aws-smithy-types", - "bytes", - "bytes-utils", - "futures-core", - "http", - "http-body", - "hyper", - "once_cell", - "percent-encoding", - "pin-project-lite", - "pin-utils", - "tracing", -] - -[[package]] -name = "aws-smithy-http-tower" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f38231d3f5dac9ac7976f44e12803add1385119ffca9e5f050d8e980733d164" -dependencies = [ - "aws-smithy-http", - "aws-smithy-types", - "bytes", - "http", - "http-body", - "pin-project-lite", - "tower", - "tracing", -] - -[[package]] -name = "aws-smithy-json" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd83ff2b79e9f729746fcc8ad798676b68fe6ea72986571569a5306a277a182" -dependencies = [ - "aws-smithy-types", -] - -[[package]] -name = "aws-smithy-query" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2f0445dafe9d2cd50b44339ae3c3ed46549aad8ac696c52ad660b3e7ae8682b" -dependencies = [ - "aws-smithy-types", - "urlencoding", -] - -[[package]] -name = "aws-smithy-types" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8161232eda10290f5136610a1eb9de56aceaccd70c963a26a260af20ac24794f" -dependencies = [ - "base64-simd", - "itoa", - "num-integer", - "ryu", - "time 0.3.20", -] - -[[package]] -name = "aws-smithy-xml" -version = "0.54.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "343ffe9a9bb3f542675f4df0e0d5933513d6ad038ca3907ad1767ba690a99684" -dependencies = [ - "xmlparser", -] - -[[package]] -name = "aws-types" -version = "0.54.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8f15b34253b68cde08e39b0627cc6101bcca64351229484b4743392c035d057" -dependencies = [ - "aws-credential-types", - "aws-smithy-async", - "aws-smithy-client", - "aws-smithy-http", - "aws-smithy-types", - "http", - "rustc_version", - "tracing", -] - -[[package]] -name = "axum" -version = "0.6.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8175979259124331c1d7bf6586ee7e0da434155e4b2d48ec2c8386281d8df39" -dependencies = [ - "async-trait", - "axum-core", - "bitflags", - "bytes", - "futures-util", - "headers", - "http", - "http-body", - "hyper", - "itoa", - "matchit 0.7.0", - "memchr", - "mime", - "percent-encoding", - "pin-project-lite", - "rustversion", - "serde 1.0.160", - "serde_json", - "serde_path_to_error", - "serde_urlencoded", - "sync_wrapper", - "tokio", - "tower", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-core" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "759fa577a247914fd3f7f76d62972792636412fbfd634cd452f6a385a74d2d2c" -dependencies = [ - "async-trait", - "bytes", - "futures-util", - "http", - "http-body", - "mime", - "rustversion", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-extra" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a320103719de37b7b4da4c8eb629d4573f6bcfd3dfe80d3208806895ccf81d" -dependencies = [ - "axum", - "bytes", - "futures-util", - "http", - "mime", - "pin-project-lite", - "tokio", - "tower", - "tower-http 0.3.5", - "tower-layer", - "tower-service", -] - -[[package]] -name = "axum-server" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bace45b270e36e3c27a190c65883de6dfc9f1d18c829907c127464815dc67b24" -dependencies = [ - "arc-swap", - "bytes", - "futures-util", - "http", - "http-body", - "hyper", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "tokio", - "tokio-rustls", - "tower-service", -] - -[[package]] -name = "backoff" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b62ddb9cb1ec0a098ad4bbf9344d0713fa193ae1a80af55febcff2627b6a00c1" -dependencies = [ - "futures-core", - "getrandom 0.2.9", - "instant", - "pin-project-lite", - "rand 0.8.5", - "tokio", -] - -[[package]] -name = "backtrace" -version = "0.3.67" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "233d376d6d185f2a3093e58f283f60f880315b6c60075b01f36b3b85154564ca" -dependencies = [ - "addr2line", - "cc", - "cfg-if", - "libc", - "miniz_oxide 0.6.2", - "object", - "rustc-demangle", -] - -[[package]] -name = "base-x" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4cbbc9d0964165b47557570cce6c952866c2678457aca742aafc9fb771d30270" - -[[package]] -name = "base16ct" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349a06037c7bf932dd7e7d1f653678b2038b9ad46a74102f1fc7bd7872678cce" - -[[package]] -name = "base16ct" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c7f02d4ea65f2c1853089ffd8d2787bdbc63de2f0d29dedbcf8ccdfa0ccd4cf" - -[[package]] -name = "base64" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e1b586273c5702936fe7b7d6896644d8be71e6314cfe09d3167c95f712589e8" - -[[package]] -name = "base64" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4a4ddaa51a5bc52a6948f74c06d20aaaddb71924eab79b8c97a8c556e942d6a" - -[[package]] -name = "base64-simd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "339abbe78e73178762e23bea9dfd08e697eb3f3301cd4be981c0f78ba5859195" -dependencies = [ - "outref", - "vsimd", -] - -[[package]] -name = "base64ct" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c3c1a368f70d6cf7302d78f8f7093da241fb8e8807c05cc9e51a125895a6d5b" - -[[package]] -name = "bcs" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bd3ffe8b19a604421a5d461d4a70346223e535903fbc3067138bddbebddcf77" -dependencies = [ - "serde 1.0.160", - "thiserror", -] - -[[package]] -name = "beef" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a8241f3ebb85c056b509d4327ad0358fbbba6ffb340bf388f26350aeda225b1" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "better_any" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b359aebd937c17c725e19efcb661200883f04c49c53e7132224dac26da39d4a0" -dependencies = [ - "better_typeid_derive", -] - -[[package]] -name = "better_typeid_derive" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3deeecb812ca5300b7d3f66f730cc2ebd3511c3d36c691dd79c165d5b19a26e3" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "bimap" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" - -[[package]] -name = "bincode" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "bindgen" -version = "0.64.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4243e6031260db77ede97ad86c27e501d646a27ab57b59a574f725d98ab1fb4" -dependencies = [ - "bitflags", - "cexpr", - "clang-sys", - "lazy_static 1.4.0", - "lazycell", - "peeking_take_while", - "proc-macro2 1.0.56", - "quote 1.0.26", - "regex", - "rustc-hash", - "shlex", - "syn 1.0.109", -] - -[[package]] -name = "bip32" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b30ed1d6f8437a487a266c8293aeb95b61a23261273e3e02912cdb8b68bf798b" -dependencies = [ - "bs58", - "hmac", - "k256", - "once_cell", - "pbkdf2", - "rand_core 0.6.4", - "ripemd", - "sha2 0.10.6", - "subtle", - "zeroize", -] - -[[package]] -name = "bit-set" -version = "0.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0700ddab506f33b20a03b13996eccd309a48e5ff77d0d95926aa0210fb4e95f1" -dependencies = [ - "bit-vec", -] - -[[package]] -name = "bit-vec" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "349f9b6a179ed607305526ca489b34ad0a41aed5f7980fa90eb03160b69598fb" - -[[package]] -name = "bitcoin-private" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73290177011694f38ec25e165d0387ab7ea749a4b81cd4c80dae5988229f7a57" - -[[package]] -name = "bitcoin_hashes" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d7066118b13d4b20b23645932dfb3a81ce7e29f95726c2036fa33cd7b092501" -dependencies = [ - "bitcoin-private", -] - -[[package]] -name = "bitflags" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" - -[[package]] -name = "bitmaps" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "031043d04099746d8db04daf1fa424b2bc8bd69d92b25962dcde24da39ab64a2" -dependencies = [ - "typenum", -] - -[[package]] -name = "bitvec" -version = "0.20.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7774144344a4faa177370406a7ff5f1da24303817368584c6206c8303eb07848" -dependencies = [ - "funty", - "radium", - "tap", - "wyz", -] - -[[package]] -name = "blake2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "blake3" -version = "1.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42ae2468a89544a466886840aa467a25b766499f4f04bf7d9fcd10ecee9fccef" -dependencies = [ - "arrayref", - "arrayvec 0.7.2", - "cc", - "cfg-if", - "constant_time_eq", - "digest 0.10.6", -] - -[[package]] -name = "block-buffer" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" -dependencies = [ - "block-padding 0.2.1", - "generic-array", -] - -[[package]] -name = "block-buffer" -version = "0.10.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" -dependencies = [ - "generic-array", -] - -[[package]] -name = "block-padding" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" - -[[package]] -name = "block-padding" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8894febbff9f758034a5b8e12d87918f56dfc64a8e1fe757d65e29041538d93" -dependencies = [ - "generic-array", -] - -[[package]] -name = "blst" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a30d0edd9dd1c60ddb42b80341c7852f6f985279a5c1a83659dcb65899dec99" -dependencies = [ - "cc", - "glob", - "threadpool", - "which", - "zeroize", -] - -[[package]] -name = "brotli" -version = "3.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1a0b1dbcc8ae29329621f8d4f0d835787c1c38bb1401979b49d13b0b305ff68" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", - "brotli-decompressor", -] - -[[package]] -name = "brotli-decompressor" -version = "2.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b6561fd3f895a11e8f72af2cb7d22e08366bebc2b6b57f7744c4bda27034744" -dependencies = [ - "alloc-no-stdlib", - "alloc-stdlib", -] - -[[package]] -name = "bs58" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" -dependencies = [ - "sha2 0.9.9", -] - -[[package]] -name = "bstr" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d4260bcc2e8fc9df1eac4919a720effeb63a3f0952f5bf4944adfa18897f09" -dependencies = [ - "memchr", - "once_cell", - "regex-automata", - "serde 1.0.160", -] - -[[package]] -name = "bulletproofs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40e698f1df446cc6246afd823afbe2d121134d089c9102c1dd26d1264991ba32" -dependencies = [ - "byteorder", - "clear_on_drop", - "curve25519-dalek-ng", - "digest 0.9.0", - "merlin", - "rand 0.8.5", - "rand_core 0.6.4", - "serde 1.0.160", - "serde_derive", - "sha3 0.9.1", - "subtle-ng", - "thiserror", -] - -[[package]] -name = "bumpalo" -version = "3.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b1ce199063694f33ffb7dd4e0ee620741495c32833cde5aa08f02a0bf96f0c8" - -[[package]] -name = "byte-slice-cast" -version = "1.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3ac9f8b63eca6fd385229b3675f6cc0dc5c8a5c8a54a59d4f52ffd670d87b0c" - -[[package]] -name = "bytecode-interpreter-crypto" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "curve25519-dalek-fiat", - "ed25519-dalek-fiat", - "sha2 0.9.9", - "sha3 0.9.1", -] - -[[package]] -name = "bytemuck" -version = "1.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17febce684fd15d89027105661fec94afb475cb995fbc59d2865198446ba2eea" - -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - -[[package]] -name = "bytes" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89b2fd2a0dcf38d7971e2194b6b6eebab45ae01067456a7fd93d5547a61b70be" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "bytes-utils" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e47d3a8076e283f3acd27400535992edb3ba4b5bb72f8891ad8fbe7932a7d4b9" -dependencies = [ - "bytes", - "either", -] - -[[package]] -name = "bzip2-sys" -version = "0.1.11+1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "736a955f3fa7875102d57c82b8cac37ec45224a07fd32d58f9f7a186b6cd4cdc" -dependencies = [ - "cc", - "libc", - "pkg-config", -] - -[[package]] -name = "cached" -version = "0.43.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc2fafddf188d13788e7099295a59b99e99b2148ab2195cae454e754cc099925" -dependencies = [ - "async-trait", - "async_once", - "cached_proc_macro", - "cached_proc_macro_types", - "futures", - "hashbrown 0.13.2", - "instant", - "lazy_static 1.4.0", - "once_cell", - "thiserror", - "tokio", -] - -[[package]] -name = "cached_proc_macro" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e10ca87c81aaa3a949dbbe2b5e6c2c45dbc94ba4897e45ea31ff9ec5087be3dc" -dependencies = [ - "cached_proc_macro_types", - "darling 0.14.4", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "cached_proc_macro_types" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a4f925191b4367301851c6d99b09890311d74b0d43f274c0b34c86d308a3663" - -[[package]] -name = "camino" -version = "1.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c530edf18f37068ac2d977409ed5cd50d53d73bc653c7647b48eb78976ac9ae2" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "cargo-platform" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cbdb825da8a5df079a43676dbe042702f1707b1109f713a01420fbb4cc71fa27" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "cargo_metadata" -version = "0.15.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eee4243f1f26fc7a42710e7439c149e2b10b05472f88090acce52632f231a73a" -dependencies = [ - "camino", - "cargo-platform", - "semver 1.0.17", - "serde 1.0.160", - "serde_json", - "thiserror", -] - -[[package]] -name = "cassowary" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df8670b8c7b9dae1793364eafadf7239c40d669904660c5960d74cfd80b46a53" - -[[package]] -name = "cast" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37b2a672a2cb129a2e41c10b1224bb368f9f37a2b16b612598138befd7b37eb5" - -[[package]] -name = "cbc" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b52a9543ae338f279b96b0b9fed9c8093744685043739079ce85cd58f289a6" -dependencies = [ - "cipher", -] - -[[package]] -name = "cc" -version = "1.0.79" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50d30906286121d95be3d479533b458f87493b30a4b5f79a607db8f5d11aa91f" -dependencies = [ - "jobserver", -] - -[[package]] -name = "cexpr" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6fac387a98bb7c37292057cffc56d62ecb629900026402633ae9160df93a8766" -dependencies = [ - "nom 7.1.3", -] - -[[package]] -name = "cfg-expr" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a327683d7499ecc47369531a679fe38acdd300e09bf8c852d08b1e10558622bd" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cfg-expr" -version = "0.15.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c8790cf1286da485c72cf5fc7aeba308438800036ec67d89425924c4807268c9" -dependencies = [ - "smallvec", - "target-lexicon", -] - -[[package]] -name = "cfg-if" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" - -[[package]] -name = "chrono" -version = "0.4.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4e3c5919066adf22df73762e50cffcde3a758f2a848b113b586d1f86728b673b" -dependencies = [ - "iana-time-zone", - "js-sys", - "num-integer", - "num-traits 0.2.15", - "serde 1.0.160", - "time 0.1.45", - "wasm-bindgen", - "winapi", -] - -[[package]] -name = "chrono-tz" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29c39203181991a7dd4343b8005bd804e7a9a37afb8ac070e43771e8c820bbde" -dependencies = [ - "chrono", - "chrono-tz-build", - "phf", -] - -[[package]] -name = "chrono-tz-build" -version = "0.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f509c3a87b33437b05e2458750a0700e5bdd6956176773e6c7d6dd15a283a0c" -dependencies = [ - "parse-zoneinfo", - "phf", - "phf_codegen", -] - -[[package]] -name = "ciborium" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0c137568cc60b904a7724001b35ce2630fd00d5d84805fbb608ab89509d788f" -dependencies = [ - "ciborium-io", - "ciborium-ll", - "serde 1.0.160", -] - -[[package]] -name = "ciborium-io" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "346de753af073cc87b52b2083a506b38ac176a44cfb05497b622e27be899b369" - -[[package]] -name = "ciborium-ll" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213030a2b5a4e0c0892b6652260cf6ccac84827b83a85a534e178e3906c4cf1b" -dependencies = [ - "ciborium-io", - "half", -] - -[[package]] -name = "cipher" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "773f3b9af64447d2ce9850330c473515014aa235e6a783b02db81ff39e4a3dad" -dependencies = [ - "crypto-common", - "inout", -] - -[[package]] -name = "clang-sys" -version = "1.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c688fc74432808e3eb684cae8830a86be1d66a2bd58e1f248ed0960a590baf6f" -dependencies = [ - "glob", - "libc", - "libloading", -] - -[[package]] -name = "clap" -version = "2.34.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0610544180c38b88101fecf2dd634b174a62eef6946f84dfc6a7127512b381c" -dependencies = [ - "ansi_term", - "atty", - "bitflags", - "strsim 0.8.0", - "textwrap 0.11.0", - "unicode-width", - "vec_map", -] - -[[package]] -name = "clap" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ea181bf566f71cb9a5d17a59e1871af638180a18fb0035c92ae62b705207123" -dependencies = [ - "atty", - "bitflags", - "clap_derive 3.2.25", - "clap_lex 0.2.4", - "indexmap", - "once_cell", - "strsim 0.10.0", - "termcolor", - "textwrap 0.16.0", -] - -[[package]] -name = "clap" -version = "4.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a1f23fa97e1d1641371b51f35535cb26959b8e27ab50d167a8b996b5bada819" -dependencies = [ - "clap_builder", - "clap_derive 4.2.0", - "once_cell", -] - -[[package]] -name = "clap_builder" -version = "4.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdc5d93c358224b4d6867ef1356d740de2303e9892edc06c5340daeccd96bab" -dependencies = [ - "anstream", - "anstyle", - "bitflags", - "clap_lex 0.4.1", - "strsim 0.10.0", -] - -[[package]] -name = "clap_derive" -version = "3.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae6371b8bdc8b7d3959e9cf7b22d4435ef3e79e138688421ec654acf8c81b008" -dependencies = [ - "heck 0.4.1", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "clap_derive" -version = "4.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9644cd56d6b87dbe899ef8b053e331c0637664e9e21a33dfcdc36093f5c5c4" -dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "clap_lex" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2850f2f5a82cbf437dd5af4d49848fbdfc27c157c3d010345776f952765261c5" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "clap_lex" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "033f6b7a4acb1f358c742aaca805c939ee73b4c6209ae4318ec7aca81c42e646" -dependencies = [ - "os_str_bytes", -] - -[[package]] -name = "clap_lex" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a2dd5a6fe8c6e3502f568a6353e5273bbb15193ad9a89e457b9970798efbea1" - -[[package]] -name = "clear_on_drop" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38508a63f4979f0048febc9966fadbd48e5dab31fd0ec6a3f151bbf4a74f7423" -dependencies = [ - "cc", -] - -[[package]] -name = "clipboard-win" -version = "4.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7191c27c2357d9b7ef96baac1773290d4ca63b24205b82a3fd8a0637afcf0362" -dependencies = [ - "error-code", - "str-buf", - "winapi", -] - -[[package]] -name = "codespan" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3362992a0d9f1dd7c3d0e89e0ab2bb540b7a95fea8cd798090e758fda2899b5e" -dependencies = [ - "codespan-reporting", - "serde 1.0.160", -] - -[[package]] -name = "codespan-reporting" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3538270d33cc669650c4b093848450d380def10c331d38c768e34cac80576e6e" -dependencies = [ - "serde 1.0.160", - "termcolor", - "unicode-width", -] - -[[package]] -name = "collectable" -version = "0.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08abddbaad209601e53c7dd4308d8c04c06f17bb7df006434e586a22b83be45a" - -[[package]] -name = "colorchoice" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "acbf1af155f9b9ef647e42cdc158db4b64a1b61f743629225fde6f3e0be2a7c7" - -[[package]] -name = "colored" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3616f750b84d8f0de8a58bda93e08e2a81ad3f523089b05f1dffecab48c6cbd" -dependencies = [ - "atty", - "lazy_static 1.4.0", - "winapi", -] - -[[package]] -name = "colored-diff" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410208eb08c3f3ad44b95b51c4fc0d5993cbcc9dd39cfadb4214b9115a97dcb5" -dependencies = [ - "ansi_term", - "dissimilar", - "itertools", -] - -[[package]] -name = "combine" -version = "4.6.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "35ed6e9d84f0b51a7f52daf1c7d71dd136fd7a3f41a8462b8cdb8c78d920fad4" -dependencies = [ - "bytes", - "memchr", -] - -[[package]] -name = "comfy-table" -version = "6.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e7b787b0dc42e8111badfdbe4c3059158ccb2db8780352fa1b01e8ccf45cc4d" -dependencies = [ - "crossterm 0.25.0", - "strum", - "strum_macros", - "unicode-width", -] - -[[package]] -name = "config" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1b9d958c2b1368a663f05538fc1b5975adce1e19f435acceae987aceeeb369" -dependencies = [ - "lazy_static 1.4.0", - "nom 5.1.3", - "rust-ini", - "serde 1.0.160", - "serde-hjson", - "serde_json", - "toml", - "yaml-rust", -] - -[[package]] -name = "console" -version = "0.15.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3d79fbe8970a77e3e34151cc13d3b3e248aa0faaecb9f6091fa07ebefe5ad60" -dependencies = [ - "encode_unicode 0.3.6", - "lazy_static 1.4.0", - "libc", - "unicode-width", - "windows-sys 0.42.0", -] - -[[package]] -name = "console-api" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e57ff02e8ad8e06ab9731d5dc72dc23bef9200778eae1a89d555d8c42e5d4a86" -dependencies = [ - "prost", - "prost-types", - "tonic", - "tracing-core", -] - -[[package]] -name = "console-subscriber" -version = "0.1.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22a3a81dfaf6b66bce5d159eddae701e3a002f194d378cbf7be5f053c281d9be" -dependencies = [ - "console-api", - "crossbeam-channel", - "crossbeam-utils", - "futures", - "hdrhistogram", - "humantime", - "prost-types", - "serde 1.0.160", - "serde_json", - "thread_local", - "tokio", - "tokio-stream", - "tonic", - "tracing", - "tracing-core", - "tracing-subscriber 0.3.17", -] - -[[package]] -name = "const-oid" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520fbf3c07483f94e3e3ca9d0cfd913d7718ef2483d2cfd91c0d9e91474ab913" - -[[package]] -name = "const-str" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b62c6d3ea43cbe0bc5a081f276fd477e4291d168aacc9f9d98073325333c0d4" - -[[package]] -name = "constant_time_eq" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13418e745008f7349ec7e449155f419a61b92b58a99cc3616942b926825ec76b" - -[[package]] -name = "convert_case" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6245d59a3e82a7fc217c5828a6692dbc6dfb63a0c8c90495621f7b9d79704a0e" - -[[package]] -name = "convert_case" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec182b0ca2f35d8fc196cf3404988fd8b8c739a4d270ff118a398feb0cbec1ca" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "core-foundation" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "194a7a9e6de53fa55116934067c844d9d749312f75c6f6d0980e8c252f8c2146" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "core-foundation-sys" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e496a50fda8aacccc86d7529e2c1e0892dbd0f898a6b5645b5561b89c3210efa" - -[[package]] -name = "core2" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49ba7ef1ad6107f8824dbe97de947cbaac53c44e7f9756a1fba0d37c1eec505" -dependencies = [ - "memchr", -] - -[[package]] -name = "cpp_demangle" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c76f98bdfc7f66172e6c7065f981ebb576ffc903fe4c0561d9f0c2509226dc6" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "cpufeatures" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e4c1eaa2012c47becbbad2ab175484c2a84d1185b566fb2cc5b8707343dfe58" -dependencies = [ - "libc", -] - -[[package]] -name = "crc32fast" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b540bd8bc810d3885c6ea91e2018302f68baba2129ab3e88f32389ee9370880d" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "criterion" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c76e09c1aae2bc52b3d2f29e13c6572553b30c4aa1b8a49fd70de6412654cb" -dependencies = [ - "anes", - "atty", - "cast", - "ciborium", - "clap 3.2.25", - "criterion-plot", - "futures", - "itertools", - "lazy_static 1.4.0", - "num-traits 0.2.15", - "oorandom", - "plotters", - "rayon", - "regex", - "serde 1.0.160", - "serde_derive", - "serde_json", - "tinytemplate", - "tokio", - "walkdir", -] - -[[package]] -name = "criterion-plot" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b50826342786a51a89e2da3a28f1c32b06e387201bc2d19791f622c673706b1" -dependencies = [ - "cast", - "itertools", -] - -[[package]] -name = "crossbeam-channel" -version = "0.5.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a33c2bf77f2df06183c3aa30d1e96c0695a313d4f9c453cc3762a6db39f99200" -dependencies = [ - "cfg-if", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-deque" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce6fd6f855243022dcecf8702fef0c297d4338e226845fe067f6341ad9fa0cef" -dependencies = [ - "cfg-if", - "crossbeam-epoch", - "crossbeam-utils", -] - -[[package]] -name = "crossbeam-epoch" -version = "0.9.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "46bd5f3f85273295a9d14aedfb86f6aadbff6d8f5295c4a9edb08e819dcf5695" -dependencies = [ - "autocfg", - "cfg-if", - "crossbeam-utils", - "memoffset 0.8.0", - "scopeguard", -] - -[[package]] -name = "crossbeam-utils" -version = "0.8.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c063cd8cc95f5c377ed0d4b49a4b21f632396ff690e8470c29b3359b346984b" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "crossterm" -version = "0.21.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "486d44227f71a1ef39554c0dc47e44b9f4139927c75043312690c3f476d1d788" -dependencies = [ - "bitflags", - "crossterm_winapi 0.8.0", - "libc", - "mio 0.7.14", - "parking_lot 0.11.2", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm" -version = "0.22.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85525306c4291d1b73ce93c8acf9c339f9b213aef6c1d85c3830cbf1c16325c" -dependencies = [ - "bitflags", - "crossterm_winapi 0.9.0", - "libc", - "mio 0.7.14", - "parking_lot 0.11.2", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm" -version = "0.25.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64e6c0fbe2c17357405f7c758c1ef960fce08bdfb2c03d88d2a18d7e09c4b67" -dependencies = [ - "bitflags", - "crossterm_winapi 0.9.0", - "libc", - "mio 0.8.6", - "parking_lot 0.12.1", - "signal-hook", - "signal-hook-mio", - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a6966607622438301997d3dac0d2f6e9a90c68bb6bc1785ea98456ab93c0507" -dependencies = [ - "winapi", -] - -[[package]] -name = "crossterm_winapi" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ae1b35a484aa10e07fe0638d02301c5ad24de82d310ccbd2f3693da5f09bf1c" -dependencies = [ - "winapi", -] - -[[package]] -name = "crunchy" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" - -[[package]] -name = "crypto-bigint" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef2b4b23cddf68b89b8f8069890e8c270d54e2d5fe1b143820234805e4cb17ef" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-bigint" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf4c2f4e1afd912bc40bfd6fed5d9dc1f288e0ba01bfcc835cc5bc3eb13efe15" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "crypto-common" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bfb12502f3fc46cca1bb51ac28df9d618d813cdc3d2f25b9fe775a34af26bb3" -dependencies = [ - "generic-array", - "rand_core 0.6.4", - "typenum", -] - -[[package]] -name = "csv" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b015497079b9a9d69c02ad25de6c0a6edef051ea6360a327d0bd05802ef64ad" -dependencies = [ - "csv-core", - "itoa", - "ryu", - "serde 1.0.160", -] - -[[package]] -name = "csv-core" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2466559f260f48ad25fe6317b3c8dac77b5bdb5763ac7d9d6103530663bc90" -dependencies = [ - "memchr", -] - -[[package]] -name = "ctor" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d2301688392eb071b0bf1a37be05c469d3cc4dbbd95df672fe28ab021e6a096" -dependencies = [ - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ctr" -version = "0.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0369ee1ad671834580515889b80f2ea915f23b8be8d0daa4bbaf2ac5c7590835" -dependencies = [ - "cipher", -] - -[[package]] -name = "curve25519-dalek-fiat" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44339b9ecede7f72a0d3b012bf9bb5a616dc8bfde23ce544e42da075c87198f0" -dependencies = [ - "byteorder", - "digest 0.9.0", - "fiat-crypto", - "rand_core 0.6.4", - "subtle", - "zeroize", -] - -[[package]] -name = "curve25519-dalek-ng" -version = "4.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c359b7249347e46fb28804470d071c921156ad62b3eef5d34e2ba867533dec8" -dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core 0.6.4", - "serde 1.0.160", - "subtle-ng", - "zeroize", -] - -[[package]] -name = "cxx" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f61f1b6389c3fe1c316bf8a4dccc90a38208354b330925bce1f74a6c4756eb93" -dependencies = [ - "cc", - "cxxbridge-flags", - "cxxbridge-macro", - "link-cplusplus", -] - -[[package]] -name = "cxx-build" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12cee708e8962df2aeb38f594aae5d827c022b6460ac71a7a3e2c3c2aae5a07b" -dependencies = [ - "cc", - "codespan-reporting", - "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "scratch", - "syn 2.0.15", -] - -[[package]] -name = "cxxbridge-flags" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7944172ae7e4068c533afbb984114a56c46e9ccddda550499caa222902c7f7bb" - -[[package]] -name = "cxxbridge-macro" -version = "1.0.94" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2345488264226bf682893e25de0769f3360aac9957980ec49361b083ddaa5bc5" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "darling" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" -dependencies = [ - "darling_core 0.14.4", - "darling_macro 0.14.4", -] - -[[package]] -name = "darling" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7c99d16b88c92aef47e58dadd53e87b4bd234c29934947a6cec8b466300f99b" -dependencies = [ - "darling_core 0.20.0", - "darling_macro 0.20.0", -] - -[[package]] -name = "darling_core" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2 1.0.56", - "quote 1.0.26", - "strsim 0.10.0", - "syn 1.0.109", -] - -[[package]] -name = "darling_core" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ea05d2fcb27b53f7a98faddaf5f2914760330ab7703adfc9df13332b42189f9" -dependencies = [ - "fnv", - "ident_case", - "proc-macro2 1.0.56", - "quote 1.0.26", - "strsim 0.10.0", - "syn 2.0.15", -] - -[[package]] -name = "darling_macro" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" -dependencies = [ - "darling_core 0.14.4", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "darling_macro" -version = "0.20.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bfb82b62b1b8a2a9808fb4caf844ede819a76cfc23b2827d7f94eefb49551eb" -dependencies = [ - "darling_core 0.20.0", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "dashmap" -version = "5.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "907076dfda823b0b36d2a1bb5f90c96660a5bbcd7729e10727f07858f22c4edc" -dependencies = [ - "cfg-if", - "hashbrown 0.12.3", - "lock_api", - "once_cell", - "parking_lot_core 0.9.7", -] - -[[package]] -name = "data-encoding" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23d8666cb01533c39dde32bcbab8e227b4ed6679b2c925eba05feabea39508fb" - -[[package]] -name = "data-encoding-macro" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86927b7cd2fe88fa698b87404b287ab98d1a0063a34071d92e575b72d3029aca" -dependencies = [ - "data-encoding", - "data-encoding-macro-internal", -] - -[[package]] -name = "data-encoding-macro-internal" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5bbed42daaa95e780b60a50546aa345b8413a1e46f9a40a12907d3598f038db" -dependencies = [ - "data-encoding", - "syn 1.0.109", -] - -[[package]] -name = "datatest-stable" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eaf86e44e9f0a21f6e42d8e7f83c9ee049f081745eeed1c6f47a613c76e5977" -dependencies = [ - "libtest-mimic", - "regex", - "walkdir", -] - -[[package]] -name = "deadpool" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "421fe0f90f2ab22016f32a9881be5134fdd71c65298917084b0c7477cbc3856e" -dependencies = [ - "async-trait", - "deadpool-runtime", - "num_cpus", - "retain_mut", - "tokio", -] - -[[package]] -name = "deadpool-runtime" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaa37046cc0f6c3cc6090fbdbf73ef0b8ef4cfcc37f6befc0020f63e8cf121e1" - -[[package]] -name = "debug-ignore" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffe7ed1d93f4553003e20b629abe9085e1e81b1429520f897f8f8860bc6dfc21" - -[[package]] -name = "debugid" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef552e6f588e446098f6ba40d89ac146c8c7b64aade83c051ee00bb5d2bc18d" -dependencies = [ - "uuid", -] - -[[package]] -name = "der" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1a467a65c5e759bce6e65eaf91cc29f466cdc57cb65777bd646872a8a1fd4de" -dependencies = [ - "const-oid", - "pem-rfc7468 0.6.0", - "zeroize", -] - -[[package]] -name = "der" -version = "0.7.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e58dffcdcc8ee7b22f0c1f71a69243d7c2d9ad87b5a14361f2424a1565c219" -dependencies = [ - "const-oid", - "pem-rfc7468 0.7.0", - "zeroize", -] - -[[package]] -name = "der-parser" -version = "8.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbd676fbbab537128ef0278adb5576cf363cff6aa22a7b24effe97347cfab61e" -dependencies = [ - "asn1-rs", - "displaydoc", - "nom 7.1.3", - "num-bigint", - "num-traits 0.2.15", - "rusticata-macros", -] - -[[package]] -name = "derivative" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcc3dd5e9e9c0b295d6e1e4d811fb6f157d5ffd784b8d202fc62eac8035a770b" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "derive-syn-parse" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e79116f119dd1dba1abf1f3405f03b9b0e79a27a3883864bfebded8a3dc768cd" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "derive_arbitrary" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3cdeb9ec472d588e539a818b2dee436825730da08ad0017c4b1a17676bdc8b7" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d67778784b508018359cbc8696edb3db78160bab2c2a28ba7f56ef6932997f8" -dependencies = [ - "derive_builder_macro", -] - -[[package]] -name = "derive_builder_core" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c11bdc11a0c47bc7d37d582b5285da6849c96681023680b906673c5707af7b0f" -dependencies = [ - "darling 0.14.4", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "derive_builder_macro" -version = "0.12.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ebcda35c7a396850a55ffeac740804b40ffec779b98fffbb1738f4033f0ee79e" -dependencies = [ - "derive_builder_core", - "syn 1.0.109", -] - -[[package]] -name = "derive_more" -version = "0.99.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fb810d30a7c1953f91334de7244731fc3f3c10d7fe163338a35b9f640960321" -dependencies = [ - "convert_case 0.4.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "rustc_version", - "syn 1.0.109", -] - -[[package]] -name = "determinator" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c644b91adb5bcc66d3533607b6d3ee5c1c2d858d2d95e41dd6aae673e29e0509" -dependencies = [ - "camino", - "globset", - "guppy", - "guppy-workspace-hack", - "once_cell", - "petgraph 0.6.3", - "rayon", - "serde 1.0.160", - "toml", -] - -[[package]] -name = "deunicode" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "850878694b7933ca4c9569d30a34b55031b9b139ee1fc7b94a527c4ef960d690" - -[[package]] -name = "diesel" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72eb77396836a4505da85bae0712fa324b74acfe1876d7c2f7e694ef3d0ee373" -dependencies = [ - "bitflags", - "byteorder", - "chrono", - "diesel_derives", - "itoa", - "pq-sys", - "r2d2", - "serde_json", -] - -[[package]] -name = "diesel-async" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5897424d8409385a0cc83d64a44527d15bedb5e3797b65f99daf46374eb6df8e" -dependencies = [ - "async-trait", - "deadpool", - "diesel", - "futures", - "scoped-futures", - "tokio", - "tokio-postgres", -] - -[[package]] -name = "diesel-derive-enum" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b10c03b954333d05bfd5be1d8a74eae2c9ca77b86e0f1c3a1ea29c49da1d6c2" -dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "diesel_derives" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ad74fdcf086be3d4fdd142f67937678fe60ed431c3b2f08599e7687269410c4" -dependencies = [ - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "diesel_migrations" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9ae22beef5e9d6fab9225ddb073c1c6c1a7a6ded5019d5da11d1e5c5adc34e2" -dependencies = [ - "diesel", - "migrations_internals", - "migrations_macros", -] - -[[package]] -name = "diff" -version = "0.1.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56254986775e3233ffa9c4d7d3faaf6d36a2c09d30b20687e9f88bc8bafc16c8" - -[[package]] -name = "difference" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "524cbf6897b527295dff137cec09ecf3a05f4fddffd7dfcd1585403449e74198" - -[[package]] -name = "difflib" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6184e33543162437515c2e2b48714794e37845ec9851711914eec9d308f6ebe8" - -[[package]] -name = "diffus" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c0ff24a73b51d9009c40897faf87d31b77345c90ffbf4dc3a1d2957032c5653" -dependencies = [ - "itertools", -] - -[[package]] -name = "diffy" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e616e59155c92257e84970156f506287853355f58cd4a6eb167385722c32b790" -dependencies = [ - "nu-ansi-term", -] - -[[package]] -name = "digest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3dd60d1080a57a05ab032377049e0591415d2b31afd7028356dbf3cc6dcb066" -dependencies = [ - "generic-array", -] - -[[package]] -name = "digest" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8168378f4e5023e7218c89c891c0fd8ecdb5e5e4f18cb78f38cf245dd021e76f" -dependencies = [ - "block-buffer 0.10.4", - "const-oid", - "crypto-common", - "subtle", -] - -[[package]] -name = "directories" -version = "4.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f51c5d4ddabd36886dd3e1438cb358cdcb0d7c499cb99cb4ac2e38e18b5cb210" -dependencies = [ - "dirs-sys 0.3.7", -] - -[[package]] -name = "dirs" -version = "4.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3aa72a6f96ea37bbc5aa912f6788242832f75369bdfdadcb0e38423f100059" -dependencies = [ - "dirs-sys 0.3.7", -] - -[[package]] -name = "dirs" -version = "5.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44c45a9d03d6676652bcb5e724c7e988de1acad23a711b5217ab9cbecbec2225" -dependencies = [ - "dirs-sys 0.4.1", -] - -[[package]] -name = "dirs-next" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b98cf8ebf19c3d1b223e151f99a4f9f0690dca41414773390fc824184ac833e1" -dependencies = [ - "cfg-if", - "dirs-sys-next", -] - -[[package]] -name = "dirs-sys" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b1d1d91c932ef41c0f2663aa8b0ca0342d444d842c06914aa0a7e352d0bada6" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "dirs-sys" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "520f05a5cbd335fae5a99ff7a6ab8627577660ee5cfd6a94a6a929b52ff0321c" -dependencies = [ - "libc", - "option-ext", - "redox_users", - "windows-sys 0.48.0", -] - -[[package]] -name = "dirs-sys-next" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4ebda144c4fe02d1f7ea1a7d9641b6fc6b580adcfa024ae48797ecdeb6825b4d" -dependencies = [ - "libc", - "redox_users", - "winapi", -] - -[[package]] -name = "displaydoc" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3bf95dc3f046b9da4f2d51833c0d3547d8564ef6910f5c1ed130306a75b92886" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "dissimilar" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "210ec60ae7d710bed8683e333e9d2855a8a56a3e9892b38bad3bb0d4d29b0d5e" - -[[package]] -name = "doc-comment" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fea41bba32d969b513997752735605054bc0dfa92b4c56bf1189f2e174be7a10" - -[[package]] -name = "downcast" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1435fa1053d8b2fbbe9be7e97eca7f33d37b28409959813daefc1446a14247f1" - -[[package]] -name = "downcast-rs" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ea835d29036a4087793836fa931b08837ad5e957da9e23886b29586fb9b6650" - -[[package]] -name = "duration-str" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f94be4825ff6a563f1bfbdb786ae10c687333c7524fade954e2271170e7f7e6d" -dependencies = [ - "chrono", - "nom 7.1.3", - "rust_decimal", - "serde 1.0.160", - "thiserror", - "time 0.3.20", -] - -[[package]] -name = "dyn-clone" -version = "1.0.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68b0cf012f1230e43cd00ebb729c6bb58707ecfa8ad08b52ef3a4ccd2697fc30" - -[[package]] -name = "ecdsa" -version = "0.14.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "413301934810f597c1d19ca71c8710e99a3f1ba28a0d2ebc01551a2daeea3c5c" -dependencies = [ - "der 0.6.1", - "elliptic-curve 0.12.3", - "rfc6979 0.3.1", - "signature 1.6.4", -] - -[[package]] -name = "ecdsa" -version = "0.16.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a48e5d537b8a30c0b023116d981b16334be1485af7ca68db3a2b7024cbc957fd" -dependencies = [ - "der 0.7.5", - "digest 0.10.6", - "elliptic-curve 0.13.4", - "rfc6979 0.4.0", - "signature 2.1.0", -] - -[[package]] -name = "ed25519" -version = "1.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91cff35c70bba8a626e3185d8cd48cc11b5437e1a5bcd15b9b5fa3c64b6dfee7" -dependencies = [ - "pkcs8 0.9.0", - "serde 1.0.160", - "signature 1.6.4", - "zeroize", -] - -[[package]] -name = "ed25519-consensus" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c8465edc8ee7436ffea81d21a019b16676ee3db267aa8d5a8d729581ecf998b" -dependencies = [ - "curve25519-dalek-ng", - "hex", - "rand_core 0.6.4", - "serde 1.0.160", - "sha2 0.9.9", - "thiserror", - "zeroize", -] - -[[package]] -name = "ed25519-dalek-fiat" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97c6ac152eba578c1c53d2cefe8ad02e239e3d6f971b0f1ef3cb54cd66037fa0" -dependencies = [ - "curve25519-dalek-fiat", - "ed25519", - "rand 0.8.5", - "serde 1.0.160", - "serde_bytes", - "sha2 0.9.9", - "zeroize", -] - -[[package]] -name = "either" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7fcaabb2fef8c910e7f4c7ce9f67a1283a1715879a7c230ca9d6d1ae31f16d91" - -[[package]] -name = "elliptic-curve" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7bb888ab5300a19b8e5bceef25ac745ad065f3c9f7efc6de1b91958110891d3" -dependencies = [ - "base16ct 0.1.1", - "crypto-bigint 0.4.9", - "der 0.6.1", - "digest 0.10.6", - "ff 0.12.1", - "generic-array", - "group 0.12.1", - "rand_core 0.6.4", - "sec1 0.3.0", - "subtle", - "zeroize", -] - -[[package]] -name = "elliptic-curve" -version = "0.13.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c71eaa367f2e5d556414a8eea812bc62985c879748d6403edabd9cb03f16e7" -dependencies = [ - "base16ct 0.2.0", - "crypto-bigint 0.5.2", - "digest 0.10.6", - "ff 0.13.0", - "generic-array", - "group 0.13.0", - "pem-rfc7468 0.7.0", - "pkcs8 0.10.2", - "rand_core 0.6.4", - "sec1 0.7.2", - "subtle", - "zeroize", -] - -[[package]] -name = "encode_unicode" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a357d28ed41a50f9c765dbfe56cbc04a64e53e5fc58ba79fbc34c10ef3df831f" - -[[package]] -name = "encode_unicode" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34aa73646ffb006b8f5147f3dc182bd4bcb190227ce861fc4a4844bf8e3cb2c0" - -[[package]] -name = "encoding_rs" -version = "0.8.32" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "071a31f4ee85403370b58aca746f01041ede6f0da2730960ad001edc2b71b394" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "endian-type" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c34f04666d835ff5d62e058c3995147c06f42fe86ff053337632bca83e42702d" - -[[package]] -name = "enum_dispatch" -version = "0.3.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11f36e95862220b211a6e2aa5eca09b4fa391b13cd52ceb8035a24bf65a79de2" -dependencies = [ - "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "env_logger" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a12e6657c4c97ebab115a42dcee77225f7f482cdd841cf7088c657a42e9e00e7" -dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", -] - -[[package]] -name = "erasable" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f11890ce181d47a64e5d1eb4b6caba0e7bae911a356723740d058a5d0340b7d" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "errno" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f639046355ee4f37944e44f60642c6f3a7efa3cf6b78c78a0d989a8ce6c396a1" -dependencies = [ - "errno-dragonfly", - "libc", - "winapi", -] - -[[package]] -name = "errno" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bcfec3a70f97c962c307b2d2c56e358cf1d00b558d74262b5f929ee8cc7e73a" -dependencies = [ - "errno-dragonfly", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "errno-dragonfly" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aa68f1b12764fab894d2755d2518754e71b4fd80ecfb822714a1206c2aab39bf" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "error-code" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64f18991e7bf11e7ffee451b5318b5c1a73c52d0d0ada6e5a3017c8c1ced6a21" -dependencies = [ - "libc", - "str-buf", -] - -[[package]] -name = "ethnum" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0198b9d0078e0f30dedc7acbb21c974e838fc8fae3ee170128658a98cb2c1c04" - -[[package]] -name = "event-listener" -version = "2.5.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0206175f82b8d6bf6652ff7d71a1e27fd2e4efde587fd368662814d6ec1d9ce0" - -[[package]] -name = "expect-test" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30d9eafeadd538e68fb28016364c9732d78e420b9ff8853fa5e4058861e9f8d3" -dependencies = [ - "dissimilar", - "once_cell", -] - -[[package]] -name = "eyre" -version = "0.6.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c2b6b5a29c02cdc822728b7d7b8ae1bab3e3b05d44522770ddd49722eeac7eb" -dependencies = [ - "indenter", - "once_cell", -] - -[[package]] -name = "fail" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be3c61c59fdc91f5dbc3ea31ee8623122ce80057058be560654c5d410d181a6" -dependencies = [ - "lazy_static 1.4.0", - "log", - "rand 0.7.3", -] - -[[package]] -name = "fallible-iterator" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4443176a9f2c162692bd3d352d745ef9413eec5782a80d8fd6f8a1ac692a07f7" - -[[package]] -name = "fastcrypto" -version = "0.1.4" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469#27ee552d5c1feb02b6b64b4f77be3c84e82a0469" -dependencies = [ - "aes", - "aes-gcm", - "ark-ec", - "ark-ff", - "ark-secp256r1", - "ark-serialize", - "auto_ops", - "base64ct", - "bincode", - "blake2", - "blake3", - "blst", - "bs58", - "bulletproofs", - "cbc", - "ctr", - "curve25519-dalek-ng", - "derive_more", - "digest 0.10.6", - "ecdsa 0.16.6", - "ed25519-consensus", - "elliptic-curve 0.13.4", - "eyre", - "fastcrypto-derive 0.1.2 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "generic-array", - "hex", - "hkdf", - "merlin", - "once_cell", - "p256", - "rand 0.8.5", - "readonly", - "rfc6979 0.4.0", - "rsa", - "schemars", - "secp256k1", - "serde 1.0.160", - "serde_bytes", - "serde_with", - "sha2 0.10.6", - "sha3 0.10.7", - "signature 2.1.0", - "static_assertions", - "thiserror", - "tokio", - "typenum", - "zeroize", -] - -[[package]] -name = "fastcrypto" -version = "0.1.4" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1#84fd7c7428c5f59185aecc56a2e0a006e8e07de1" -dependencies = [ - "aes", - "aes-gcm", - "auto_ops", - "base64ct", - "bincode", - "blake2", - "blake3", - "blst", - "bs58", - "bulletproofs", - "cbc", - "ctr", - "curve25519-dalek-ng", - "derive_more", - "digest 0.10.6", - "ecdsa 0.16.6", - "ed25519-consensus", - "elliptic-curve 0.13.4", - "eyre", - "fastcrypto-derive 0.1.2 (git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1)", - "generic-array", - "hex", - "hkdf", - "merlin", - "once_cell", - "p256", - "rand 0.8.5", - "readonly", - "rfc6979 0.4.0", - "rsa", - "schemars", - "secp256k1", - "serde 1.0.160", - "serde_bytes", - "serde_with", - "sha2 0.10.6", - "sha3 0.10.7", - "signature 2.1.0", - "static_assertions", - "thiserror", - "tokio", - "typenum", - "zeroize", -] - -[[package]] -name = "fastcrypto-derive" -version = "0.1.2" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469#27ee552d5c1feb02b6b64b4f77be3c84e82a0469" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "fastcrypto-derive" -version = "0.1.2" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1#84fd7c7428c5f59185aecc56a2e0a006e8e07de1" -dependencies = [ - "convert_case 0.6.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "fastcrypto-zkp" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469#27ee552d5c1feb02b6b64b4f77be3c84e82a0469" -dependencies = [ - "ark-bls12-381", - "ark-bn254", - "ark-crypto-primitives", - "ark-ec", - "ark-ff", - "ark-groth16", - "ark-relations", - "ark-serialize", - "blst", - "byte-slice-cast", - "derive_more", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", -] - -[[package]] -name = "fastrand" -version = "1.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e51093e27b0797c359783294ca4f0a911c270184cb10f85783b118614a1501be" -dependencies = [ - "instant", -] - -[[package]] -name = "fd-lock" -version = "3.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39ae6b3d9530211fb3b12a95374b8b0823be812f53d09e18c5675c0146b09642" -dependencies = [ - "cfg-if", - "rustix 0.37.18", - "windows-sys 0.48.0", -] - -[[package]] -name = "fdlimit" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c4c9e43643f5a3be4ca5b67d26b98031ff9db6806c3440ae32e02e3ceac3f1b" -dependencies = [ - "libc", -] - -[[package]] -name = "ff" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d013fc25338cc558c5c2cfbad646908fb23591e2404481826742b651c9af7160" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "ff" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ded41244b729663b1e574f1b4fb731469f69f79c17667b5d776b16cda0479449" -dependencies = [ - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "fiat-crypto" -version = "0.1.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e825f6987101665dea6ec934c09ec6d721de7bc1bf92248e1d5810c8cd636b77" - -[[package]] -name = "findshlibs" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40b9e59cd0f7e0806cca4be089683ecb6434e602038df21fe6bf6711b2f07f64" -dependencies = [ - "cc", - "lazy_static 1.4.0", - "libc", - "winapi", -] - -[[package]] -name = "fixed-hash" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfcf0ed7fe52a17a03854ec54a9f76d6d84508d1c0e66bc1793301c73fc8493c" -dependencies = [ - "byteorder", - "rand 0.8.5", - "rustc-hex", - "static_assertions", -] - -[[package]] -name = "fixedbitset" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37ab347416e802de484e4d03c7316c48f1ecb56574dfd4a46a80f173ce1de04d" - -[[package]] -name = "fixedbitset" -version = "0.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ce7134b9999ecaf8bcd65542e436736ef32ddca1b3e06094cb6ec5755203b80" - -[[package]] -name = "flate2" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b9429470923de8e8cbd4d2dc513535400b4b3fef0319fb5c4e1f520a7bef743" -dependencies = [ - "crc32fast", - "miniz_oxide 0.7.1", -] - -[[package]] -name = "float-cmp" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98de4bbd547a563b716d8dfa9aad1cb19bfab00f4fa09a6a4ed21dbcf44ce9c4" -dependencies = [ - "num-traits 0.2.15", -] - -[[package]] -name = "fnv" -version = "1.0.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" - -[[package]] -name = "form_urlencoded" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9c384f161156f5260c24a097c56119f9be8c798586aecc13afbcbe7b7e26bf8" -dependencies = [ - "percent-encoding", -] - -[[package]] -name = "fragile" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c2141d6d6c8512188a7891b4b01590a45f6dac67afb4f255c4124dbb86d4eaa" - -[[package]] -name = "fs_extra" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42703706b716c37f96a77aea830392ad231f44c9e9a67872fa5548707e11b11c" - -[[package]] -name = "funty" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed34cd105917e91daa4da6b3728c47b068749d6a62c59811f06ed2ac71d9da7" - -[[package]] -name = "futures" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23342abe12aba583913b2e62f22225ff9c950774065e4bfb61a19cd9770fec40" -dependencies = [ - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-sink", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-channel" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "955518d47e09b25bbebc7a18df10b81f0c766eaf4c4f1cccef2fca5f2a4fb5f2" -dependencies = [ - "futures-core", - "futures-sink", -] - -[[package]] -name = "futures-core" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bca583b7e26f571124fe5b7561d49cb2868d79116cfa0eefce955557c6fee8c" - -[[package]] -name = "futures-executor" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccecee823288125bd88b4d7f565c9e58e41858e47ab72e8ea2d64e93624386e0" -dependencies = [ - "futures-core", - "futures-task", - "futures-util", -] - -[[package]] -name = "futures-io" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4fff74096e71ed47f8e023204cfd0aa1289cd54ae5430a9523be060cdb849964" - -[[package]] -name = "futures-lite" -version = "1.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49a9d51ce47660b1e808d3c990b4709f2f415d928835a17dfd16991515c46bce" -dependencies = [ - "fastrand", - "futures-core", - "futures-io", - "memchr", - "parking", - "pin-project-lite", - "waker-fn", -] - -[[package]] -name = "futures-macro" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89ca545a94061b6365f2c7355b4b32bd20df3ff95f02da9329b34ccc3bd6ee72" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "futures-sink" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43be4fe21a13b9781a69afa4985b0f6ee0e1afab2c6f454a8cf30e2b2237b6e" - -[[package]] -name = "futures-task" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76d3d132be6c0e6aa1534069c705a74a5997a356c0dc2f86a47765e5617c5b65" - -[[package]] -name = "futures-timer" -version = "3.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e64b03909df88034c26dc1547e8970b91f98bdb65165d6a4e9110d94263dbb2c" -dependencies = [ - "gloo-timers", - "send_wrapper", -] - -[[package]] -name = "futures-util" -version = "0.3.28" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26b01e40b772d54cf6c6d721c1d1abd0647a0106a12ecaa1c186273392a69533" -dependencies = [ - "futures-channel", - "futures-core", - "futures-io", - "futures-macro", - "futures-sink", - "futures-task", - "memchr", - "pin-project-lite", - "pin-utils", - "slab", -] - -[[package]] -name = "generic-array" -version = "0.14.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" -dependencies = [ - "serde 1.0.160", - "typenum", - "version_check", - "zeroize", -] - -[[package]] -name = "getrandom" -version = "0.1.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.9.0+wasi-snapshot-preview1", -] - -[[package]] -name = "getrandom" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c85e1d9ab2eadba7e5040d4e09cbd6d072b76a557ad64e797c2cb9d4da21d7e4" -dependencies = [ - "cfg-if", - "libc", - "wasi 0.11.0+wasi-snapshot-preview1", -] - -[[package]] -name = "ghash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d930750de5717d2dd0b8c0d42c076c0e884c81a73e6cab859bbd2339c71e3e40" -dependencies = [ - "opaque-debug", - "polyval", -] - -[[package]] -name = "gimli" -version = "0.27.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad0a93d233ebf96623465aad4046a8d3aa4da22d4f4beba5388838c8a434bbb4" - -[[package]] -name = "git-version" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6b0decc02f4636b9ccad390dcbe77b722a77efedfa393caf8379a51d5c61899" -dependencies = [ - "git-version-macro", - "proc-macro-hack", -] - -[[package]] -name = "git-version-macro" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fe69f1cbdb6e28af2bac214e943b99ce8a0a06b447d15d3e61161b0423139f3f" -dependencies = [ - "proc-macro-hack", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "glob" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2fabcfbdc87f4758337ca535fb41a6d701b65693ce38287d856d1674551ec9b" - -[[package]] -name = "globset" -version = "0.4.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "029d74589adefde59de1a0c4f4732695c32805624aec7b68d91503d4dba79afc" -dependencies = [ - "aho-corasick 0.7.20", - "bstr", - "fnv", - "log", - "regex", -] - -[[package]] -name = "globwalk" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93e3af942408868f6934a7b85134a3230832b9977cf66125df2f9edcfce4ddcc" -dependencies = [ - "bitflags", - "ignore", - "walkdir", -] - -[[package]] -name = "gloo-net" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9902a044653b26b99f7e3693a42f171312d9be8b26b5697bd1e43ad1f8a35e10" -dependencies = [ - "futures-channel", - "futures-core", - "futures-sink", - "gloo-utils", - "js-sys", - "pin-project", - "serde 1.0.160", - "serde_json", - "thiserror", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "gloo-timers" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b995a66bb87bebce9a0f4a95aed01daca4872c050bfcb21653361c03bc35e5c" -dependencies = [ - "futures-channel", - "futures-core", - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "gloo-utils" -version = "0.1.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8e8fc851e9c7b9852508bc6e3f690f452f474417e8545ec9857b7f7377036b5" -dependencies = [ - "js-sys", - "serde 1.0.160", - "serde_json", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "governor" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c390a940a5d157878dd057c78680a33ce3415bcd05b4799509ea44210914b4d5" -dependencies = [ - "cfg-if", - "dashmap", - "futures", - "futures-timer", - "no-std-compat", - "nonzero_ext", - "parking_lot 0.12.1", - "quanta", - "rand 0.8.5", - "smallvec", -] - -[[package]] -name = "group" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dfbfb3a6cfbd390d5c9564ab283a0349b9b9fcd46a706c1eb10e0db70bfbac7" -dependencies = [ - "ff 0.12.1", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "group" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0f9ef7462f7c099f518d754361858f86d8a07af53ba9af0fe635bbccb151a63" -dependencies = [ - "ff 0.13.0", - "rand_core 0.6.4", - "subtle", -] - -[[package]] -name = "guppy" -version = "0.15.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f822a2716041492e071691606474f5a7e4fa7c2acbfd7da7b29884fb448291c7" -dependencies = [ - "camino", - "cargo_metadata", - "cfg-if", - "debug-ignore", - "fixedbitset 0.4.2", - "guppy-summaries", - "guppy-workspace-hack", - "indexmap", - "itertools", - "nested", - "once_cell", - "pathdiff", - "petgraph 0.6.3", - "rayon", - "semver 1.0.17", - "serde 1.0.160", - "serde_json", - "smallvec", - "static_assertions", - "target-spec", - "toml", -] - -[[package]] -name = "guppy-summaries" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bd039b8f587513b48754811cfa37c2ba079df537b490b602fa641ce18f6e72a" -dependencies = [ - "camino", - "cfg-if", - "diffus", - "guppy-workspace-hack", - "semver 1.0.17", - "serde 1.0.160", - "toml", -] - -[[package]] -name = "guppy-workspace-hack" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92620684d99f750bae383ecb3be3748142d6095760afd5cbcf2261e9a279d780" - -[[package]] -name = "h2" -version = "0.3.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17f8a914c2987b688368b5138aa05321db91f4090cf26118185672ad588bce21" -dependencies = [ - "bytes", - "fnv", - "futures-core", - "futures-sink", - "futures-util", - "http", - "indexmap", - "slab", - "tokio", - "tokio-util 0.7.8", - "tracing", -] - -[[package]] -name = "hakari" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2af0223111b69beda15417ad6a960bffb093c916f0eaa559036c7036efa2d199" -dependencies = [ - "atomicwrites", - "bimap", - "camino", - "cfg-if", - "debug-ignore", - "diffy", - "guppy", - "guppy-workspace-hack", - "include_dir", - "indenter", - "itertools", - "owo-colors", - "pathdiff", - "rayon", - "serde 1.0.160", - "tabular", - "target-spec", - "toml", - "toml_edit 0.17.1", - "twox-hash", -] - -[[package]] -name = "half" -version = "1.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eabb4a44450da02c90444cf74558da904edde8fb4e9035a9a6a4e15445af0bd7" - -[[package]] -name = "hashbrown" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a9ee70c43aaf417c914396645a0fa852624801b24ebb7ae78fe8272889ac888" -dependencies = [ - "ahash 0.7.6", -] - -[[package]] -name = "hashbrown" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" -dependencies = [ - "ahash 0.8.3", -] - -[[package]] -name = "hdrhistogram" -version = "7.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f19b9f54f7c7f55e31401bb647626ce0cf0f67b0004982ce815b3ee72a02aa8" -dependencies = [ - "base64 0.13.1", - "byteorder", - "crossbeam-channel", - "flate2", - "nom 7.1.3", - "num-traits 0.2.15", -] - -[[package]] -name = "headers" -version = "0.3.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3e372db8e5c0d213e0cd0b9be18be2aca3d44cf2fe30a9d46a65581cd454584" -dependencies = [ - "base64 0.13.1", - "bitflags", - "bytes", - "headers-core", - "http", - "httpdate", - "mime", - "sha1", -] - -[[package]] -name = "headers-core" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7f66481bfee273957b1f20485a4ff3362987f85b2c236580d81b4eb7a326429" -dependencies = [ - "http", -] - -[[package]] -name = "heck" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d621efb26863f0e9924c6ac577e8275e5e6b77455db64ffa6c65c904e9e132c" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "heck" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" - -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee512640fe35acbfb4bb779db6f0d80704c2cacfa2e39b601ef3e3f47d1ae4c7" -dependencies = [ - "libc", -] - -[[package]] -name = "hermit-abi" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fed44880c466736ef9a5c5b5facefb5ed0785676d0c02d612db14e54f0d84286" - -[[package]] -name = "hex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f24254aa9a54b5c858eaee2f5bccdb46aaf0e486a595ed5fd8f86ba55232a70" - -[[package]] -name = "hex-literal" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ebdb29d2ea9ed0083cd8cece49bbd968021bd99b0849edb4a9a7ee0fdf6a4e0" - -[[package]] -name = "hkdf" -version = "0.12.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "791a029f6b9fc27657f6f188ec6e5e43f6911f6f878e0dc5501396e09809d437" -dependencies = [ - "hmac", -] - -[[package]] -name = "hmac" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c49c37c09c17a53d937dfbb742eb3a961d65a994e6bcdcf37e7399d0cc8ab5e" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "hmac-sha512" -version = "0.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77e806677ce663d0a199541030c816847b36e8dc095f70dae4a4f4ad63da5383" - -[[package]] -name = "home" -version = "0.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5444c27eef6923071f7ebcc33e3444508466a76f7a2b93da00ed6e19f30c1ddb" -dependencies = [ - "windows-sys 0.48.0", -] - -[[package]] -name = "http" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd6effc99afb63425aff9b05836f029929e345a6148a14b7ecd5ab67af944482" -dependencies = [ - "bytes", - "fnv", - "itoa", -] - -[[package]] -name = "http-body" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d5f38f16d184e36f2408a55281cd658ecbd3ca05cce6d6510a176eca393e26d1" -dependencies = [ - "bytes", - "http", - "pin-project-lite", -] - -[[package]] -name = "http-range-header" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bfe8eed0a9285ef776bb792479ea3834e8b94e13d615c2f66d03dd50a435a29" - -[[package]] -name = "httparse" -version = "1.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d897f394bad6a705d5f4104762e116a75639e470d80901eed05a860a95cb1904" - -[[package]] -name = "httpdate" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4a1e36c821dbe04574f602848a19f742f4fb3c98d40449f11bcad18d6b17421" - -[[package]] -name = "humansize" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02296996cb8796d7c6e3bc2d9211b7802812d36999a51bb754123ead7d37d026" - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - -[[package]] -name = "hyper" -version = "0.14.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab302d72a6f11a3b910431ff93aae7e773078c769f0a3ef15fb9ec692ed147d4" -dependencies = [ - "bytes", - "futures-channel", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "httparse", - "httpdate", - "itoa", - "pin-project-lite", - "socket2 0.4.9", - "tokio", - "tower-service", - "tracing", - "want", -] - -[[package]] -name = "hyper-rustls" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1788965e61b367cd03a62950836d5cd41560c3577d90e40e0819373194d1661c" -dependencies = [ - "http", - "hyper", - "log", - "rustls", - "rustls-native-certs", - "tokio", - "tokio-rustls", - "webpki-roots", -] - -[[package]] -name = "hyper-timeout" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bbb958482e8c7be4bc3cf272a766a2b0bf1a6755e7a6ae777f017a31d11b13b1" -dependencies = [ - "hyper", - "pin-project-lite", - "tokio", - "tokio-io-timeout", -] - -[[package]] -name = "iana-time-zone" -version = "0.1.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0722cd7114b7de04316e7ea5456a0bbb20e4adb46fd27a3697adb812cff0f37c" -dependencies = [ - "android_system_properties", - "core-foundation-sys", - "iana-time-zone-haiku", - "js-sys", - "wasm-bindgen", - "windows", -] - -[[package]] -name = "iana-time-zone-haiku" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0703ae284fc167426161c2e3f1da3ea71d94b21bedbcc9494e92b28e334e3dca" -dependencies = [ - "cxx", - "cxx-build", -] - -[[package]] -name = "ident_case" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" - -[[package]] -name = "idna" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e14ddfc70884202db2244c223200c204c2bda1bc6e0998d11b5e024d657209e6" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "if_chain" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb56e1aa765b4b4f3aadfab769793b7087bb03a4ea4920644a6d238e2df5b9ed" - -[[package]] -name = "ignore" -version = "0.4.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dbe7873dab538a9a44ad79ede1faf5f30d49f9a5c883ddbab48bce81b64b7492" -dependencies = [ - "globset", - "lazy_static 1.4.0", - "log", - "memchr", - "regex", - "same-file", - "thread_local", - "walkdir", - "winapi-util", -] - -[[package]] -name = "im" -version = "15.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0acd33ff0285af998aaf9b57342af478078f53492322fafc47450e09397e0e9" -dependencies = [ - "bitmaps", - "rand_core 0.6.4", - "rand_xoshiro", - "sized-chunks", - "typenum", - "version_check", -] - -[[package]] -name = "impl-codec" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "161ebdfec3c8e3b52bf61c4f3550a1eea4f9579d10dc1b936f3171ebdcd6c443" -dependencies = [ - "parity-scale-codec", -] - -[[package]] -name = "impl-serde" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4551f042f3438e64dbd6226b20527fc84a6e1fe65688b58746a2f53623f25f5c" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "impl-trait-for-tuples" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "11d7a9f6330b71fea57921c9b61c47ee6e84f72d394754eff6163ae67e7395eb" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "include_dir" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18762faeff7122e89e0857b02f7ce6fcc0d101d5e9ad2ad7846cc01d61b7f19e" -dependencies = [ - "glob", - "include_dir_macros", -] - -[[package]] -name = "include_dir_macros" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b139284b5cf57ecfa712bcc66950bb635b31aff41c188e8a4cfc758eca374a3f" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", -] - -[[package]] -name = "indenter" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce23b50ad8242c51a442f3ff322d56b02f08852c77e4c0b4d3fd684abc89c683" - -[[package]] -name = "indexmap" -version = "1.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd070e393353796e801d209ad339e89596eb4c8d430d18ede6a1cced8fafbd99" -dependencies = [ - "autocfg", - "hashbrown 0.12.3", - "serde 1.0.160", -] - -[[package]] -name = "indicatif" -version = "0.17.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cef509aa9bc73864d6756f0d34d35504af3cf0844373afe9b8669a5b8005a729" -dependencies = [ - "console", - "number_prefix", - "portable-atomic", - "unicode-width", -] - -[[package]] -name = "inferno" -version = "0.11.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fb7c1b80a1dfa604bb4a649a5c5aeef3d913f7c520cb42b40e534e8a61bcdfc" -dependencies = [ - "ahash 0.8.3", - "indexmap", - "is-terminal", - "itoa", - "log", - "num-format", - "once_cell", - "quick-xml 0.26.0", - "rgb", - "str_stack", -] - -[[package]] -name = "inout" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0c10553d664a4d0bcff9f4215d0aac67a639cc68ef660840afe309b807bc9f5" -dependencies = [ - "block-padding 0.3.3", - "generic-array", -] - -[[package]] -name = "inquire" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4bf420bd01f298a3ed8f57af9babedb296b4edfc1dbd8b159cee883aa90edaa" -dependencies = [ - "bitflags", - "crossterm 0.25.0", - "dyn-clone", - "lazy_static 1.4.0", - "newline-converter", - "thiserror", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "insta" -version = "1.29.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a28d25139df397cbca21408bb742cf6837e04cdbebf1b07b760caf971d6a972" -dependencies = [ - "console", - "lazy_static 1.4.0", - "linked-hash-map", - "pest", - "pest_derive", - "serde 1.0.160", - "similar", - "yaml-rust", -] - -[[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "internment" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ab388864246d58a276e60e7569a833d9cc4cd75c66e5ca77c177dad38e59996" -dependencies = [ - "ahash 0.7.6", - "dashmap", - "hashbrown 0.12.3", - "once_cell", - "parking_lot 0.12.1", -] - -[[package]] -name = "io-lifetimes" -version = "1.0.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c66c74d2ae7e79a5a8f7ac924adbe38ee42a859c6539ad869eb51f0b52dc220" -dependencies = [ - "hermit-abi 0.3.1", - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "ipnet" -version = "2.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12b6ee2129af8d4fb011108c73d99a1b83a85977f23b82460c0ae2e25bb4b57f" - -[[package]] -name = "iri-string" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f0f7638c1e223529f1bfdc48c8b133b9e0b434094d1d28473161ee48b235f78" -dependencies = [ - "nom 7.1.3", -] - -[[package]] -name = "is-terminal" -version = "0.4.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adcf93614601c8129ddf72e2d5633df827ba6551541c6d8c59520a371475be1f" -dependencies = [ - "hermit-abi 0.3.1", - "io-lifetimes", - "rustix 0.37.18", - "windows-sys 0.48.0", -] - -[[package]] -name = "itertools" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" -dependencies = [ - "either", -] - -[[package]] -name = "itoa" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "453ad9f582a441959e5f0d088b02ce04cfe8d51a8eaf077f12ac6d3e94164ca6" - -[[package]] -name = "jemalloc-ctl" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1891c671f3db85d8ea8525dd43ab147f9977041911d24a03e5a36187a7bfde9" -dependencies = [ - "jemalloc-sys", - "libc", - "paste", -] - -[[package]] -name = "jemalloc-sys" -version = "0.5.3+5.3.0-patched" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9bd5d616ea7ed58b571b2e209a65759664d7fb021a0819d7a790afc67e47ca1" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "jobserver" -version = "0.1.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "936cfd212a0155903bcbc060e316fb6cc7cbf2e1907329391ebadc1fe0ce77c2" -dependencies = [ - "libc", -] - -[[package]] -name = "js-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445dde2150c55e483f3d8416706b97ec8e8237c307e5b7b4b8dd15e6af2a0730" -dependencies = [ - "wasm-bindgen", -] - -[[package]] -name = "jsonrpsee" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d291e3a5818a2384645fd9756362e6d89cf0541b0b916fa7702ea4a9833608e" -dependencies = [ - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", - "jsonrpsee-wasm-client", - "jsonrpsee-ws-client", - "tracing", -] - -[[package]] -name = "jsonrpsee-client-transport" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "965de52763f2004bc91ac5bcec504192440f0b568a5d621c59d9dbd6f886c3fb" -dependencies = [ - "anyhow", - "futures-channel", - "futures-timer", - "futures-util", - "gloo-net", - "http", - "jsonrpsee-core", - "jsonrpsee-types", - "pin-project", - "rustls-native-certs", - "soketto", - "thiserror", - "tokio", - "tokio-rustls", - "tokio-util 0.7.8", - "tracing", - "webpki-roots", -] - -[[package]] -name = "jsonrpsee-core" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e70b4439a751a5de7dd5ed55eacff78ebf4ffe0fc009cb1ebb11417f5b536b" -dependencies = [ - "anyhow", - "arrayvec 0.7.2", - "async-lock", - "async-trait", - "beef", - "futures-channel", - "futures-timer", - "futures-util", - "globset", - "hyper", - "jsonrpsee-types", - "parking_lot 0.12.1", - "rand 0.8.5", - "rustc-hash", - "serde 1.0.160", - "serde_json", - "soketto", - "thiserror", - "tokio", - "tracing", - "wasm-bindgen-futures", -] - -[[package]] -name = "jsonrpsee-http-client" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc345b0a43c6bc49b947ebeb936e886a419ee3d894421790c969cc56040542ad" -dependencies = [ - "async-trait", - "hyper", - "hyper-rustls", - "jsonrpsee-core", - "jsonrpsee-types", - "rustc-hash", - "serde 1.0.160", - "serde_json", - "thiserror", - "tokio", - "tracing", -] - -[[package]] -name = "jsonrpsee-proc-macros" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "baa6da1e4199c10d7b1d0a6e5e8bd8e55f351163b6f4b3cbb044672a69bd4c1c" -dependencies = [ - "heck 0.4.1", - "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "jsonrpsee-server" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fb69dad85df79527c019659a992498d03f8495390496da2f07e6c24c2b356fc" -dependencies = [ - "futures-channel", - "futures-util", - "http", - "hyper", - "jsonrpsee-core", - "jsonrpsee-types", - "serde 1.0.160", - "serde_json", - "soketto", - "tokio", - "tokio-stream", - "tokio-util 0.7.8", - "tower", - "tracing", -] - -[[package]] -name = "jsonrpsee-types" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bd522fe1ce3702fd94812965d7bb7a3364b1c9aba743944c5a00529aae80f8c" -dependencies = [ - "anyhow", - "beef", - "serde 1.0.160", - "serde_json", - "thiserror", - "tracing", -] - -[[package]] -name = "jsonrpsee-wasm-client" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a77310456f43c6c89bcba1f6b2fc2a28300da7c341f320f5128f8c83cc63232d" -dependencies = [ - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", -] - -[[package]] -name = "jsonrpsee-ws-client" -version = "0.16.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b83daeecfc6517cfe210df24e570fb06213533dfb990318fae781f4c7119dd9" -dependencies = [ - "http", - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-types", -] - -[[package]] -name = "k256" -version = "0.11.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72c1e0b51e7ec0a97369623508396067a486bd0cbed95a2659a4b863d28cfc8b" -dependencies = [ - "cfg-if", - "ecdsa 0.14.8", - "elliptic-curve 0.12.3", - "sha2 0.10.6", - "sha3 0.10.7", -] - -[[package]] -name = "keccak" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3afef3b6eff9ce9d8ff9b3601125eec7f0c8cbac7abd14f355d053fa56c98768" -dependencies = [ - "cpufeatures", -] - -[[package]] -name = "lazy_static" -version = "0.2.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f033c7ad61445c5b347c7382dd1237847eb1bce590fe50365dcb33d546be73" - -[[package]] -name = "lazy_static" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" -dependencies = [ - "spin", -] - -[[package]] -name = "lazycell" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830d08ce1d1d941e6b30645f1a0eb5643013d835ce3779a5fc208261dbe10f55" - -[[package]] -name = "leb128" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "884e2677b40cc8c339eaefcb701c32ef1fd2493d71118dc0ca4b6a736c93bd67" - -[[package]] -name = "lexical-core" -version = "0.7.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6607c62aa161d23d17a9072cc5da0be67cdfc89d3afb1e8d9c842bebc2525ffe" -dependencies = [ - "arrayvec 0.5.2", - "bitflags", - "cfg-if", - "ryu", - "static_assertions", -] - -[[package]] -name = "libc" -version = "0.2.142" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a987beff54b60ffa6d51982e1aa1146bc42f19bd26be28b0586f252fccf5317" - -[[package]] -name = "libloading" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b67380fd3b2fbe7527a606e18729d21c6f3951633d0500574c4dc22d2d638b9f" -dependencies = [ - "cfg-if", - "winapi", -] - -[[package]] -name = "libm" -version = "0.2.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "348108ab3fba42ec82ff6e9564fc4ca0247bdccdc68dd8af9764bbc79c3c8ffb" - -[[package]] -name = "librocksdb-sys" -version = "0.10.0+7.9.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fe4d5874f5ff2bc616e55e8c6086d478fcda13faf9495768a4aa1c22042d30b" -dependencies = [ - "bindgen", - "bzip2-sys", - "cc", - "glob", - "libc", - "libz-sys", - "lz4-sys", - "zstd-sys", -] - -[[package]] -name = "libtest-mimic" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79529479c298f5af41375b0c1a77ef670d450b4c9cd7949d2b43af08121b20ec" -dependencies = [ - "clap 3.2.25", - "termcolor", - "threadpool", -] - -[[package]] -name = "libz-sys" -version = "1.1.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56ee889ecc9568871456d42f603d6a0ce59ff328d291063a45cbdf0036baf6db" -dependencies = [ - "cc", - "pkg-config", - "vcpkg", -] - -[[package]] -name = "link-cplusplus" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecd207c9c713c34f95a097a5b029ac2ce6010530c7b49d7fea24d977dede04f5" -dependencies = [ - "cc", -] - -[[package]] -name = "linked-hash-map" -version = "0.5.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0717cef1bc8b636c6e1c1bbdefc09e6322da8a9321966e8928ef80d20f7f770f" - -[[package]] -name = "linux-raw-sys" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f051f77a7c8e6957c0696eac88f26b0117e54f52d3fc682ab19397a8812846a4" - -[[package]] -name = "linux-raw-sys" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b64f40e5e03e0d54f03845c8197d0291253cdbedfb1cb46b13c2c117554a9f4c" - -[[package]] -name = "lock_api" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" -dependencies = [ - "autocfg", - "scopeguard", -] - -[[package]] -name = "log" -version = "0.4.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", - "serde 1.0.160", -] - -[[package]] -name = "lru" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03f1160296536f10c833a82dca22267d5486734230d47bf00bf435885814ba1e" -dependencies = [ - "hashbrown 0.13.2", -] - -[[package]] -name = "lz4-sys" -version = "1.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d27b317e207b10f69f5e75494119e391a96f48861ae870d1da6edac98ca900" -dependencies = [ - "cc", - "libc", -] - -[[package]] -name = "mach" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b823e83b2affd8f40a9ee8c29dbc56404c1e34cd2710921f2801e2cf29527afa" -dependencies = [ - "libc", -] - -[[package]] -name = "match_opt" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "405ba1524a1e6ae755334d6966380c60ec40157e0155f9032dd3c294b6384da9" - -[[package]] -name = "matchers" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8263075bb86c5a1b1427b5ae862e8889656f126e9f77c484496e8b47cf5c5558" -dependencies = [ - "regex-automata", -] - -[[package]] -name = "matchit" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73cbba799671b762df5a175adf59ce145165747bb891505c43d09aefbbf38beb" - -[[package]] -name = "matchit" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b87248edafb776e59e6ee64a79086f65890d3510f2c656c000bf2a7e8a0aea40" - -[[package]] -name = "md-5" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6365506850d44bff6e2fbcb5176cf63650e48bd45ef2fe2665ae1570e0f4b9ca" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "memchr" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" - -[[package]] -name = "memmap2" -version = "0.5.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83faa42c0a078c393f6b29d5db232d8be22776a891f8f56e5284faee4a20b327" -dependencies = [ - "libc", -] - -[[package]] -name = "memoffset" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5aa361d4faea93603064a027415f07bd8e1d5c88c9fbf68bf56a285428fd79ce" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5de893c32cde5f383baa4c04c5d6dbdd735cfd4a794b0debdb2bb1b421da5ff4" -dependencies = [ - "autocfg", -] - -[[package]] -name = "memoffset" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d61c719bcfbcf5d62b3a09efa6088de8c54bc0bfcd3ea7ae39fcc186108b8de1" -dependencies = [ - "autocfg", -] - -[[package]] -name = "merlin" -version = "3.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "58c38e2799fc0978b65dfff8023ec7843e2330bb462f19198840b34b6582397d" -dependencies = [ - "byteorder", - "keccak", - "rand_core 0.6.4", - "zeroize", -] - -[[package]] -name = "migrations_internals" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c493c09323068c01e54c685f7da41a9ccf9219735c3766fbfd6099806ea08fbc" -dependencies = [ - "serde 1.0.160", - "toml", -] - -[[package]] -name = "migrations_macros" -version = "2.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8a8ff27a350511de30cdabb77147501c36ef02e0451d957abea2f30caffb2b58" -dependencies = [ - "migrations_internals", - "proc-macro2 1.0.56", - "quote 1.0.26", -] - -[[package]] -name = "mime" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6877bb514081ee2a7ff5ef9de3281f14a4dd4bceac4c09388074a6b5df8a139a" - -[[package]] -name = "mime_guess" -version = "2.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4192263c238a5f0d0c6bfd21f336a313a4ce1c450542449ca191bb657b4642ef" -dependencies = [ - "mime", - "unicase", -] - -[[package]] -name = "minimal-lexical" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" - -[[package]] -name = "miniz_oxide" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b275950c28b37e794e8c55d88aeb5e139d0ce23fdbbeda68f8d7174abdf9e8fa" -dependencies = [ - "adler", -] - -[[package]] -name = "miniz_oxide" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e7810e0be55b428ada41041c41f32c9f1a42817901b4ccf45fa3d4b6561e74c7" -dependencies = [ - "adler", -] - -[[package]] -name = "mio" -version = "0.7.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8067b404fe97c70829f082dec8bcf4f71225d7eaea1d8645349cb76fa06205cc" -dependencies = [ - "libc", - "log", - "miow", - "ntapi 0.3.7", - "winapi", -] - -[[package]] -name = "mio" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b9d9a46eff5b4ff64b45a9e316a6d1e0bc719ef429cbec4dc630684212bfdf9" -dependencies = [ - "libc", - "log", - "wasi 0.11.0+wasi-snapshot-preview1", - "windows-sys 0.45.0", -] - -[[package]] -name = "miow" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9f1c5b025cda876f66ef43a113f91ebc9f4ccef34843000e0adf6ebbab84e21" -dependencies = [ - "winapi", -] - -[[package]] -name = "mockall" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c84490118f2ee2d74570d114f3d0493cbf02790df303d2707606c3e14e07c96" -dependencies = [ - "cfg-if", - "downcast", - "fragile", - "lazy_static 1.4.0", - "mockall_derive", - "predicates 2.1.5", - "predicates-tree", -] - -[[package]] -name = "mockall_derive" -version = "0.11.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "22ce75669015c4f47b289fd4d4f56e894e4c96003ffdf3ac51313126f94c6cbb" -dependencies = [ - "cfg-if", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "monkey" -version = "0.1.0" -dependencies = [ - "anyhow", - "bcs", - "dirs 5.0.1", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=84fd7c7428c5f59185aecc56a2e0a006e8e07de1)", - "futures", - "hex", - "shared-crypto", - "sui-config", - "sui-core", - "sui-framework", - "sui-json", - "sui-json-rpc", - "sui-json-rpc-types", - "sui-keys", - "sui-sdk", - "sui-transaction-builder", - "sui-types", - "tokio", -] - -[[package]] -name = "more-asserts" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1fafa6961cabd9c63bcd77a45d7e3b7f3b552b70417831fb0f56db717e72407e" - -[[package]] -name = "move-abigen" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "heck 0.3.3", - "log", - "move-binary-format", - "move-bytecode-verifier", - "move-command-line-common", - "move-core-types", - "move-model", - "serde 1.0.160", -] - -[[package]] -name = "move-binary-format" -version = "0.0.3" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "move-core-types", - "once_cell", - "ref-cast", - "serde 1.0.160", - "variant_count", -] - -[[package]] -name = "move-borrow-graph" -version = "0.0.1" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" - -[[package]] -name = "move-bytecode-source-map" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "move-binary-format", - "move-command-line-common", - "move-core-types", - "move-ir-types", - "move-symbol-pool", - "serde 1.0.160", -] - -[[package]] -name = "move-bytecode-utils" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "move-binary-format", - "move-core-types", - "petgraph 0.5.1", - "serde-reflection", -] - -[[package]] -name = "move-bytecode-verifier" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "fail", - "move-binary-format", - "move-borrow-graph", - "move-core-types", - "petgraph 0.5.1", -] - -[[package]] -name = "move-bytecode-viewer" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "clap 3.2.25", - "crossterm 0.21.0", - "move-binary-format", - "move-bytecode-source-map", - "move-command-line-common", - "move-disassembler", - "move-ir-types", - "regex", - "tui", -] - -[[package]] -name = "move-cli" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "clap 3.2.25", - "codespan-reporting", - "colored", - "difference", - "itertools", - "move-binary-format", - "move-bytecode-source-map", - "move-bytecode-utils", - "move-bytecode-verifier", - "move-bytecode-viewer", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-coverage", - "move-disassembler", - "move-docgen", - "move-errmapgen", - "move-ir-types", - "move-package", - "move-prover", - "move-resource-viewer", - "move-stdlib", - "move-symbol-pool", - "move-unit-test", - "move-vm-runtime", - "move-vm-test-utils", - "move-vm-types", - "once_cell", - "read-write-set", - "read-write-set-dynamic", - "reqwest", - "serde 1.0.160", - "serde_json", - "serde_yaml", - "tempfile", - "toml_edit 0.14.4", - "walkdir", -] - -[[package]] -name = "move-command-line-common" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "difference", - "dirs-next", - "hex", - "move-core-types", - "num-bigint", - "once_cell", - "serde 1.0.160", - "sha2 0.9.9", - "walkdir", -] - -[[package]] -name = "move-compiler" -version = "0.0.1" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "clap 3.2.25", - "codespan-reporting", - "difference", - "hex", - "move-binary-format", - "move-borrow-graph", - "move-bytecode-source-map", - "move-bytecode-verifier", - "move-command-line-common", - "move-core-types", - "move-ir-to-bytecode", - "move-ir-types", - "move-symbol-pool", - "num-bigint", - "once_cell", - "petgraph 0.5.1", - "regex", - "sha3 0.9.1", - "tempfile", - "walkdir", -] - -[[package]] -name = "move-core-types" -version = "0.0.4" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "arbitrary", - "bcs", - "ethnum", - "hex", - "num", - "once_cell", - "primitive-types", - "proptest", - "proptest-derive", - "rand 0.8.5", - "ref-cast", - "serde 1.0.160", - "serde_bytes", - "uint", -] - -[[package]] -name = "move-coverage" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "clap 3.2.25", - "codespan", - "colored", - "move-binary-format", - "move-bytecode-source-map", - "move-command-line-common", - "move-core-types", - "move-ir-types", - "once_cell", - "petgraph 0.5.1", - "serde 1.0.160", -] - -[[package]] -name = "move-disassembler" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "clap 3.2.25", - "colored", - "move-binary-format", - "move-bytecode-source-map", - "move-bytecode-verifier", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-coverage", - "move-ir-types", -] - -[[package]] -name = "move-docgen" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "codespan", - "codespan-reporting", - "itertools", - "log", - "move-compiler", - "move-model", - "num", - "once_cell", - "regex", - "serde 1.0.160", -] - -[[package]] -name = "move-errmapgen" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "log", - "move-command-line-common", - "move-core-types", - "move-model", - "serde 1.0.160", -] - -[[package]] -name = "move-ir-compiler" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "clap 3.2.25", - "move-binary-format", - "move-bytecode-source-map", - "move-bytecode-verifier", - "move-command-line-common", - "move-core-types", - "move-ir-to-bytecode", - "move-ir-types", - "move-symbol-pool", - "serde_json", -] - -[[package]] -name = "move-ir-to-bytecode" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "codespan-reporting", - "log", - "move-binary-format", - "move-bytecode-source-map", - "move-command-line-common", - "move-core-types", - "move-ir-to-bytecode-syntax", - "move-ir-types", - "move-symbol-pool", - "ouroboros 0.9.5", - "thiserror", -] - -[[package]] -name = "move-ir-to-bytecode-syntax" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "hex", - "move-command-line-common", - "move-core-types", - "move-ir-types", - "move-symbol-pool", -] - -[[package]] -name = "move-ir-types" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "hex", - "move-command-line-common", - "move-core-types", - "move-symbol-pool", - "once_cell", - "serde 1.0.160", -] - -[[package]] -name = "move-model" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "codespan", - "codespan-reporting", - "internment", - "itertools", - "log", - "move-binary-format", - "move-bytecode-source-map", - "move-bytecode-verifier", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-disassembler", - "move-ir-types", - "move-symbol-pool", - "num", - "once_cell", - "regex", - "serde 1.0.160", -] - -[[package]] -name = "move-package" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "clap 3.2.25", - "colored", - "dirs-next", - "itertools", - "move-abigen", - "move-binary-format", - "move-bytecode-source-map", - "move-bytecode-utils", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-docgen", - "move-model", - "move-symbol-pool", - "named-lock", - "once_cell", - "petgraph 0.5.1", - "ptree", - "regex", - "reqwest", - "serde 1.0.160", - "serde_yaml", - "sha2 0.9.9", - "tempfile", - "toml", - "walkdir", - "whoami", -] - -[[package]] -name = "move-prover" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "async-trait", - "atty", - "clap 3.2.25", - "codespan", - "codespan-reporting", - "futures", - "hex", - "itertools", - "log", - "move-abigen", - "move-binary-format", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-docgen", - "move-errmapgen", - "move-ir-types", - "move-model", - "move-prover-boogie-backend", - "move-stackless-bytecode", - "num", - "once_cell", - "pretty", - "rand 0.8.5", - "serde 1.0.160", - "serde_json", - "simplelog", - "tokio", - "toml", -] - -[[package]] -name = "move-prover-boogie-backend" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "async-trait", - "codespan", - "codespan-reporting", - "futures", - "itertools", - "log", - "move-binary-format", - "move-command-line-common", - "move-core-types", - "move-model", - "move-stackless-bytecode", - "num", - "once_cell", - "pretty", - "rand 0.8.5", - "regex", - "serde 1.0.160", - "serde_json", - "tera", - "tokio", -] - -[[package]] -name = "move-read-write-set-types" -version = "0.0.3" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "move-binary-format", - "move-core-types", - "serde 1.0.160", -] - -[[package]] -name = "move-resource-viewer" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "hex", - "move-binary-format", - "move-bytecode-utils", - "move-core-types", - "once_cell", - "serde 1.0.160", -] - -[[package]] -name = "move-stackless-bytecode" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "codespan", - "codespan-reporting", - "ethnum", - "im", - "itertools", - "log", - "move-binary-format", - "move-borrow-graph", - "move-bytecode-verifier", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-ir-to-bytecode", - "move-model", - "move-read-write-set-types", - "num", - "once_cell", - "paste", - "petgraph 0.5.1", - "serde 1.0.160", -] - -[[package]] -name = "move-stackless-bytecode-interpreter" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bytecode-interpreter-crypto", - "clap 3.2.25", - "codespan-reporting", - "itertools", - "move-binary-format", - "move-core-types", - "move-model", - "move-stackless-bytecode", - "num", - "serde 1.0.160", -] - -[[package]] -name = "move-stdlib" -version = "0.1.1" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "hex", - "log", - "move-binary-format", - "move-command-line-common", - "move-core-types", - "move-docgen", - "move-errmapgen", - "move-prover", - "move-vm-runtime", - "move-vm-types", - "sha2 0.9.9", - "sha3 0.9.1", - "smallvec", - "walkdir", -] - -[[package]] -name = "move-symbol-pool" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "once_cell", - "serde 1.0.160", -] - -[[package]] -name = "move-table-extension" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "better_any", - "move-binary-format", - "move-core-types", - "move-vm-runtime", - "move-vm-types", - "once_cell", - "sha3 0.9.1", - "smallvec", -] - -[[package]] -name = "move-transactional-test-runner" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "clap 3.2.25", - "colored", - "move-binary-format", - "move-bytecode-source-map", - "move-bytecode-utils", - "move-bytecode-verifier", - "move-cli", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-disassembler", - "move-ir-compiler", - "move-ir-types", - "move-resource-viewer", - "move-stackless-bytecode-interpreter", - "move-stdlib", - "move-symbol-pool", - "move-vm-runtime", - "move-vm-test-utils", - "move-vm-types", - "once_cell", - "rayon", - "regex", - "tempfile", -] - -[[package]] -name = "move-unit-test" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "better_any", - "clap 3.2.25", - "codespan-reporting", - "colored", - "itertools", - "move-binary-format", - "move-bytecode-utils", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-ir-types", - "move-model", - "move-resource-viewer", - "move-stackless-bytecode-interpreter", - "move-stdlib", - "move-symbol-pool", - "move-table-extension", - "move-vm-runtime", - "move-vm-test-utils", - "move-vm-types", - "once_cell", - "rayon", - "regex", -] - -[[package]] -name = "move-vm-runtime" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "better_any", - "fail", - "move-binary-format", - "move-bytecode-verifier", - "move-core-types", - "move-vm-types", - "once_cell", - "parking_lot 0.11.2", - "sha3 0.9.1", - "smallvec", - "tracing", -] - -[[package]] -name = "move-vm-test-utils" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "move-binary-format", - "move-core-types", - "move-vm-types", - "once_cell", - "serde 1.0.160", -] - -[[package]] -name = "move-vm-types" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "bcs", - "move-binary-format", - "move-core-types", - "once_cell", - "serde 1.0.160", - "smallvec", -] - -[[package]] -name = "msim" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=e9011f96b84615b63cd8b5835e606a2fc218a1bd#e9011f96b84615b63cd8b5835e606a2fc218a1bd" -dependencies = [ - "ahash 0.7.6", - "async-task", - "bincode", - "bytes", - "cc", - "downcast-rs", - "env_logger", - "erasable", - "futures", - "lazy_static 1.4.0", - "libc", - "msim-macros", - "naive-timer", - "pin-project-lite", - "rand 0.8.5", - "real_tokio", - "serde 1.0.160", - "socket2 0.4.9", - "tap", - "tokio-util 0.7.7", - "toml", - "tracing", - "tracing-subscriber 0.3.17", -] - -[[package]] -name = "msim-macros" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/mysten-sim.git?rev=e9011f96b84615b63cd8b5835e606a2fc218a1bd#e9011f96b84615b63cd8b5835e606a2fc218a1bd" -dependencies = [ - "darling 0.14.4", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "multiaddr" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b36f567c7099511fa8612bbbb52dda2419ce0bdbacf31714e3a5ffdb766d3bd" -dependencies = [ - "arrayref", - "byteorder", - "data-encoding", - "log", - "multibase", - "multihash", - "percent-encoding", - "serde 1.0.160", - "static_assertions", - "unsigned-varint", - "url", -] - -[[package]] -name = "multibase" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9b3539ec3c1f04ac9748a260728e855f261b4977f5c3406612c884564f329404" -dependencies = [ - "base-x", - "data-encoding", - "data-encoding-macro", -] - -[[package]] -name = "multihash" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835d6ff01d610179fbce3de1694d007e500bf33a7f29689838941d6bf783ae40" -dependencies = [ - "core2", - "multihash-derive", - "unsigned-varint", -] - -[[package]] -name = "multihash-derive" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d6d4752e6230d8ef7adf7bd5d8c4b1f6561c1014c5ba9a37445ccefe18aa1db" -dependencies = [ - "proc-macro-crate", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "synstructure", -] - -[[package]] -name = "multimap" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5ce46fe64a9d73be07dcbe690a38ce1b293be448fd8ce1e6c1b8062c9f72c6a" - -[[package]] -name = "mysten-common" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "futures", - "parking_lot 0.12.1", - "tokio", - "workspace-hack", -] - -[[package]] -name = "mysten-metrics" -version = "0.7.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "dashmap", - "futures", - "once_cell", - "parking_lot 0.12.1", - "prometheus", - "prometheus-closure-metric", - "scopeguard", - "tap", - "tokio", - "tracing", - "uuid", - "workspace-hack", -] - -[[package]] -name = "mysten-network" -version = "0.2.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "bcs", - "bytes", - "eyre", - "futures", - "http", - "multiaddr", - "serde 1.0.160", - "snap", - "tokio", - "tokio-stream", - "tonic", - "tonic-health", - "tower", - "tower-http 0.3.5", - "tracing", - "workspace-hack", -] - -[[package]] -name = "mysten-util-mem" -version = "0.11.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "cfg-if", - "ed25519-consensus", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "hashbrown 0.12.3", - "impl-trait-for-tuples", - "indexmap", - "mysten-util-mem-derive", - "once_cell", - "parking_lot 0.12.1", - "roaring", - "smallvec", - "workspace-hack", -] - -[[package]] -name = "mysten-util-mem-derive" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "proc-macro2 1.0.56", - "syn 1.0.109", - "synstructure", - "workspace-hack", -] - -[[package]] -name = "naive-timer" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "034a0ad7deebf0c2abcf2435950a6666c3c15ea9d8fad0c0f48efa8a7f843fed" - -[[package]] -name = "named-lock" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "40a3eb6b7c682b65d1f631ec3176829d72ab450b3aacdd3f719bf220822e59ac" -dependencies = [ - "libc", - "once_cell", - "parking_lot 0.12.1", - "thiserror", - "widestring", - "winapi", -] - -[[package]] -name = "narwhal-config" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "match_opt", - "mysten-network", - "mysten-util-mem", - "narwhal-crypto", - "rand 0.8.5", - "serde 1.0.160", - "serde_json", - "thiserror", - "tracing", - "workspace-hack", -] - -[[package]] -name = "narwhal-consensus" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "arc-swap", - "bcs", - "cfg-if", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "match_opt", - "mysten-metrics", - "narwhal-config", - "narwhal-crypto", - "narwhal-dag", - "narwhal-storage", - "narwhal-types", - "prometheus", - "rand 0.8.5", - "telemetry-subscribers", - "thiserror", - "tokio", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "narwhal-crypto" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "bcs", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "serde 1.0.160", - "shared-crypto", - "workspace-hack", -] - -[[package]] -name = "narwhal-dag" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "arc-swap", - "dashmap", - "either", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "itertools", - "narwhal-crypto", - "once_cell", - "rayon", - "thiserror", - "workspace-hack", -] - -[[package]] -name = "narwhal-executor" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anyhow", - "async-trait", - "bcs", - "bincode", - "bytes", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "itertools", - "mockall", - "mysten-metrics", - "narwhal-config", - "narwhal-consensus", - "narwhal-crypto", - "narwhal-network", - "narwhal-primary", - "narwhal-storage", - "narwhal-types", - "prometheus", - "rand 0.8.5", - "serde 1.0.160", - "thiserror", - "tokio", - "tonic", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "narwhal-network" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anemo-tower", - "anyhow", - "async-trait", - "axum", - "axum-server", - "backoff", - "bytes", - "dashmap", - "futures", - "mysten-common", - "mysten-metrics", - "narwhal-crypto", - "narwhal-types", - "parking_lot 0.12.1", - "prometheus", - "quinn-proto", - "rand 0.8.5", - "sui-macros", - "tokio", - "tower", - "tracing", - "workspace-hack", -] - -[[package]] -name = "narwhal-node" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "arc-swap", - "async-trait", - "axum", - "bytes", - "cfg-if", - "clap 2.34.0", - "eyre", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "mysten-metrics", - "mysten-network", - "narwhal-config", - "narwhal-consensus", - "narwhal-crypto", - "narwhal-executor", - "narwhal-network", - "narwhal-primary", - "narwhal-storage", - "narwhal-types", - "narwhal-worker", - "prometheus", - "rand 0.8.5", - "reqwest", - "sui-keys", - "sui-types", - "telemetry-subscribers", - "thiserror", - "tokio", - "tokio-stream", - "tracing", - "tracing-subscriber 0.3.17", - "url", - "workspace-hack", -] - -[[package]] -name = "narwhal-primary" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anemo-tower", - "anyhow", - "arc-swap", - "async-trait", - "backoff", - "base64 0.13.1", - "bcs", - "bincode", - "bytes", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "governor", - "itertools", - "mysten-common", - "mysten-metrics", - "mysten-network", - "narwhal-config", - "narwhal-consensus", - "narwhal-crypto", - "narwhal-network", - "narwhal-storage", - "narwhal-types", - "once_cell", - "parking_lot 0.12.1", - "prometheus", - "rand 0.8.5", - "sui-macros", - "tap", - "thiserror", - "tokio", - "tonic", - "tower", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "narwhal-storage" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "dashmap", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "lru", - "mysten-common", - "narwhal-config", - "narwhal-crypto", - "narwhal-types", - "parking_lot 0.12.1", - "prometheus", - "sui-macros", - "tap", - "tempfile", - "tokio", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "narwhal-types" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anemo-build", - "async-trait", - "base64 0.13.1", - "bcs", - "bytes", - "derive_builder", - "enum_dispatch", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "indexmap", - "mockall", - "mysten-common", - "mysten-network", - "mysten-util-mem", - "narwhal-config", - "narwhal-crypto", - "narwhal-dag", - "once_cell", - "prometheus", - "proptest", - "proptest-derive", - "prost", - "prost-build", - "protobuf-src", - "rand 0.8.5", - "roaring", - "rustversion", - "serde 1.0.160", - "serde_with", - "thiserror", - "tokio", - "tonic", - "tonic-build", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "narwhal-worker" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anemo-tower", - "anyhow", - "arc-swap", - "async-trait", - "byteorder", - "bytes", - "eyre", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "governor", - "itertools", - "mysten-metrics", - "mysten-network", - "narwhal-config", - "narwhal-crypto", - "narwhal-network", - "narwhal-types", - "prometheus", - "rand 0.8.5", - "tap", - "thiserror", - "tokio", - "tonic", - "tower", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "nested" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b420f638f07fe83056b55ea190bb815f609ec5a35e7017884a10f78839c9e" - -[[package]] -name = "newline-converter" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f71d09d5c87634207f894c6b31b6a2b2c64ea3bdcf71bd5599fdbbe1600c00f" -dependencies = [ - "unicode-segmentation", -] - -[[package]] -name = "nexlint" -version = "0.1.0" -source = "git+https://github.com/nextest-rs/nexlint.git?rev=94da5c787636dad779c340affa65219134d127f5#94da5c787636dad779c340affa65219134d127f5" -dependencies = [ - "camino", - "debug-ignore", - "determinator", - "guppy", - "hakari", - "hex", - "once_cell", - "serde 1.0.160", -] - -[[package]] -name = "nexlint-lints" -version = "0.1.0" -source = "git+https://github.com/nextest-rs/nexlint.git?rev=94da5c787636dad779c340affa65219134d127f5#94da5c787636dad779c340affa65219134d127f5" -dependencies = [ - "anyhow", - "camino", - "colored-diff", - "globset", - "guppy", - "nexlint", - "regex", - "serde 1.0.160", - "toml", -] - -[[package]] -name = "nibble_vec" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a5d83df9f36fe23f0c3648c6bbb8b0298bb5f1939c8f2704431371f4b84d43" -dependencies = [ - "smallvec", -] - -[[package]] -name = "nix" -version = "0.23.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f3790c00a0150112de0f4cd161e3d7fc4b2d8a5542ffc35f099a2562aecb35c" -dependencies = [ - "bitflags", - "cc", - "cfg-if", - "libc", - "memoffset 0.6.5", -] - -[[package]] -name = "nix" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa52e972a9a719cecb6864fb88568781eb706bac2cd1d4f04a648542dbf78069" -dependencies = [ - "bitflags", - "cfg-if", - "libc", -] - -[[package]] -name = "nix" -version = "0.26.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfdda3d196821d6af13126e40375cdf7da646a96114af134d5f417a9a1dc8e1a" -dependencies = [ - "bitflags", - "cfg-if", - "libc", - "static_assertions", -] - -[[package]] -name = "no-std-compat" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b93853da6d84c2e3c7d730d6473e8817692dd89be387eb01b94d7f108ecb5b8c" - -[[package]] -name = "nom" -version = "5.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08959a387a676302eebf4ddbcbc611da04285579f76f88ee0506c63b1a61dd4b" -dependencies = [ - "lexical-core", - "memchr", - "version_check", -] - -[[package]] -name = "nom" -version = "7.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d273983c5a657a70a3e8f2a01329822f3b8c8172b73826411a55751e404a0a4a" -dependencies = [ - "memchr", - "minimal-lexical", -] - -[[package]] -name = "nom8" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ae01545c9c7fc4486ab7debaf2aad7003ac19431791868fb2e8066df97fad2f8" -dependencies = [ - "memchr", -] - -[[package]] -name = "nonzero_ext" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "38bf9645c8b145698bb0b18a4637dcacbc421ea49bef2317e4fd8065a387cf21" - -[[package]] -name = "normalize-line-endings" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "61807f77802ff30975e01f4f071c8ba10c022052f98b3294119f3e615d13e5be" - -[[package]] -name = "ntapi" -version = "0.3.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c28774a7fd2fbb4f0babd8237ce554b73af68021b5f695a3cebd6c59bac0980f" -dependencies = [ - "winapi", -] - -[[package]] -name = "ntapi" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8a3895c6391c39d7fe7ebc444a87eb2991b2a0bc718fdabd071eec617fc68e4" -dependencies = [ - "winapi", -] - -[[package]] -name = "ntest" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da8ec6d2b73d45307e926f5af46809768581044384637af6b3f3fe7c3c88f512" -dependencies = [ - "ntest_test_cases", - "ntest_timeout", -] - -[[package]] -name = "ntest_test_cases" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be7d33be719c6f4d09e64e27c1ef4e73485dc4cc1f4d22201f89860a7fe22e22" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ntest_timeout" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "066b468120587a402f0b47d8f80035c921f6a46f8209efd0632a89a16f5188a4" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "nu-ansi-term" -version = "0.46.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "77a8165726e8236064dbb45459242600304b42a5ea24ee2948e18e023bf7ba84" -dependencies = [ - "overload", - "winapi", -] - -[[package]] -name = "num" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43db66d1170d347f9a065114077f7dccb00c1b9478c89384490a3425279a4606" -dependencies = [ - "num-bigint", - "num-complex", - "num-integer", - "num-iter", - "num-rational", - "num-traits 0.2.15", -] - -[[package]] -name = "num-bigint" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f93ab6289c7b344a8a9f60f88d80aa20032336fe78da341afc91c8a2341fc75f" -dependencies = [ - "autocfg", - "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-bigint-dig" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2399c9463abc5f909349d8aa9ba080e0b88b3ce2885389b60b993f39b1a56905" -dependencies = [ - "byteorder", - "lazy_static 1.4.0", - "libm", - "num-integer", - "num-iter", - "num-traits 0.2.15", - "rand 0.8.5", - "smallvec", - "zeroize", -] - -[[package]] -name = "num-complex" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02e0d21255c828d6f128a1e41534206671e8c3ea0c62f32291e808dc82cff17d" -dependencies = [ - "num-traits 0.2.15", -] - -[[package]] -name = "num-format" -version = "0.4.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a652d9771a63711fd3c3deb670acfbe5c30a4072e664d7a3bf5a9e1056ac72c3" -dependencies = [ - "arrayvec 0.7.2", - "itoa", -] - -[[package]] -name = "num-integer" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225d3389fb3509a24c93f5c29eb6bde2586b98d9f016636dff58d7c6f7569cd9" -dependencies = [ - "autocfg", - "num-traits 0.2.15", -] - -[[package]] -name = "num-iter" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d03e6c028c5dc5cac6e2dec0efda81fc887605bb3d884578bb6d6bf7514e252" -dependencies = [ - "autocfg", - "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-rational" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0638a1c9d0a3c0914158145bc76cff373a75a627e6ecbfb71cbe6f453a5a19b0" -dependencies = [ - "autocfg", - "num-bigint", - "num-integer", - "num-traits 0.2.15", -] - -[[package]] -name = "num-traits" -version = "0.1.43" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92e5113e9fd4cc14ded8e499429f396a20f98c772a47cc8622a736e1ec843c31" -dependencies = [ - "num-traits 0.2.15", -] - -[[package]] -name = "num-traits" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" -dependencies = [ - "autocfg", - "libm", -] - -[[package]] -name = "num_cpus" -version = "1.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fac9e2da13b5eb447a6ce3d392f23a29d8694bff781bf03a16cd9ac8697593b" -dependencies = [ - "hermit-abi 0.2.6", - "libc", -] - -[[package]] -name = "number_prefix" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b246a0e5f20af87141b25c173cd1b609bd7779a4617d6ec582abaf90870f3" - -[[package]] -name = "object" -version = "0.30.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea86265d3d3dcb6a27fc51bd29a4bf387fae9d2986b823079d4986af253eb439" -dependencies = [ - "memchr", -] - -[[package]] -name = "object_store" -version = "0.5.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f344e51ec9584d2f51199c0c29c6f73dddd04ade986497875bf8fa2f178caf0" -dependencies = [ - "async-trait", - "aws-config", - "aws-credential-types", - "aws-types", - "base64 0.21.0", - "bytes", - "chrono", - "futures", - "itertools", - "parking_lot 0.12.1", - "percent-encoding", - "quick-xml 0.27.1", - "rand 0.8.5", - "reqwest", - "ring", - "rustls-pemfile", - "serde 1.0.160", - "serde_json", - "snafu", - "tokio", - "tracing", - "url", - "walkdir", -] - -[[package]] -name = "oid-registry" -version = "0.6.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9bedf36ffb6ba96c2eb7144ef6270557b52e54b20c0a8e1eb2ff99a6c6959bff" -dependencies = [ - "asn1-rs", -] - -[[package]] -name = "once_cell" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7e5500299e16ebb147ae15a00a942af264cf3688f47923b8fc2cd5858f23ad3" - -[[package]] -name = "oorandom" -version = "11.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ab1bc2a289d34bd04a330323ac98a1b4bc82c9d9fcb1e66b63caa84da26b575" - -[[package]] -name = "opaque-debug" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" - -[[package]] -name = "openssl-probe" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff011a302c396a5197692431fc1948019154afc178baf7d8e37367442a4601cf" - -[[package]] -name = "option-ext" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "04744f49eae99ab78e0d5c0b603ab218f515ea8cfe5a456d7629ad883a3b6e7d" - -[[package]] -name = "ordered-float" -version = "2.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7940cf2ca942593318d07fcf2596cdca60a85c9e7fab408a5e21a4f9dcd40d87" -dependencies = [ - "num-traits 0.2.15", -] - -[[package]] -name = "os_str_bytes" -version = "6.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ceedf44fb00f2d1984b0bc98102627ce622e083e49a5bacdb3e514fa4238e267" - -[[package]] -name = "ouroboros" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fbeff60e3e37407a80ead3e9458145b456e978c4068cddbfea6afb48572962ca" -dependencies = [ - "ouroboros_macro 0.9.5", - "stable_deref_trait", -] - -[[package]] -name = "ouroboros" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1358bd1558bd2a083fed428ffeda486fbfb323e698cdda7794259d592ca72db" -dependencies = [ - "aliasable", - "ouroboros_macro 0.15.6", -] - -[[package]] -name = "ouroboros_macro" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03f2cb802b5bdfdf52f1ffa0b54ce105e4d346e91990dd571f86c91321ad49e2" -dependencies = [ - "Inflector", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ouroboros_macro" -version = "0.15.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f7d21ccd03305a674437ee1248f3ab5d4b1db095cf1caf49f1713ddf61956b7" -dependencies = [ - "Inflector", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "output_vt100" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "628223faebab4e3e40667ee0b2336d34a5b960ff60ea743ddfdbcf7770bcfb66" -dependencies = [ - "winapi", -] - -[[package]] -name = "outref" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4030760ffd992bef45b0ae3f10ce1aba99e33464c90d14dd7c039884963ddc7a" - -[[package]] -name = "overload" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b15813163c1d831bf4a13c3610c05c0d03b39feb07f7e09fa234dac9b15aaf39" - -[[package]] -name = "owo-colors" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c1b04fb49957986fdce4d6ee7a65027d55d4b6d2265e5848bbb507b58ccfdb6f" - -[[package]] -name = "p256" -version = "0.13.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c9863ad85fa8f4460f9c48cb909d38a0d689dba1f6f6988a5e3e0d31071bcd4b" -dependencies = [ - "ecdsa 0.16.6", - "elliptic-curve 0.13.4", - "primeorder", - "sha2 0.10.6", -] - -[[package]] -name = "parity-scale-codec" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "373b1a4c1338d9cd3d1fa53b3a11bdab5ab6bd80a20f7f7becd76953ae2be909" -dependencies = [ - "arrayvec 0.7.2", - "bitvec", - "byte-slice-cast", - "impl-trait-for-tuples", - "parity-scale-codec-derive", - "serde 1.0.160", -] - -[[package]] -name = "parity-scale-codec-derive" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1557010476e0595c9b568d16dcfb81b93cdeb157612726f5170d31aa707bed27" -dependencies = [ - "proc-macro-crate", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "parking" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14f2252c834a40ed9bb5422029649578e63aa341ac401f74e719dd1afda8394e" - -[[package]] -name = "parking_lot" -version = "0.11.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" -dependencies = [ - "instant", - "lock_api", - "parking_lot_core 0.8.6", -] - -[[package]] -name = "parking_lot" -version = "0.12.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3742b2c103b9f06bc9fff0a37ff4912935851bee6d36f3c02bcc755bcfec228f" -dependencies = [ - "lock_api", - "parking_lot_core 0.9.7", -] - -[[package]] -name = "parking_lot_core" -version = "0.8.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60a2cfe6f0ad2bfc16aefa463b497d5c7a5ecd44a23efa72aa342d90177356dc" -dependencies = [ - "cfg-if", - "instant", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "winapi", -] - -[[package]] -name = "parking_lot_core" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9069cbb9f99e3a5083476ccb29ceb1de18b9118cafa53e90c9551235de2b9521" -dependencies = [ - "cfg-if", - "libc", - "redox_syscall 0.2.16", - "smallvec", - "windows-sys 0.45.0", -] - -[[package]] -name = "parse-zoneinfo" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c705f256449c60da65e11ff6626e0c16a0a0b96aaa348de61376b249bc340f41" -dependencies = [ - "regex", -] - -[[package]] -name = "paste" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f746c4065a8fa3fe23974dd82f15431cc8d40779821001404d10d2e79ca7d79" - -[[package]] -name = "pathdiff" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8835116a5c179084a830efb3adc117ab007512b535bc1a21c991d3b32a6b44dd" -dependencies = [ - "camino", -] - -[[package]] -name = "pbkdf2" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "83a0692ec44e4cf1ef28ca317f14f8f07da2d95ec3fa01f86e4467b725e60917" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "peeking_take_while" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "19b17cddbe7ec3f8bc800887bab5e717348c95ea2ca0b1bf0837fb964dc67099" - -[[package]] -name = "pem" -version = "1.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8835c273a76a90455d7344889b0964598e3316e2a79ede8e36f16bdcf2228b8" -dependencies = [ - "base64 0.13.1", -] - -[[package]] -name = "pem-rfc7468" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24d159833a9105500e0398934e205e0773f0b27529557134ecfc51c27646adac" -dependencies = [ - "base64ct", -] - -[[package]] -name = "pem-rfc7468" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "88b39c9bfcfc231068454382784bb460aae594343fb030d46e9f50a645418412" -dependencies = [ - "base64ct", -] - -[[package]] -name = "percent-encoding" -version = "2.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "478c572c3d73181ff3c2539045f6eb99e5491218eae919370993b890cdbdd98e" - -[[package]] -name = "pest" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e68e84bfb01f0507134eac1e9b410a12ba379d064eab48c50ba4ce329a527b70" -dependencies = [ - "thiserror", - "ucd-trie", -] - -[[package]] -name = "pest_derive" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b79d4c71c865a25a4322296122e3924d30bc8ee0834c8bfc8b95f7f054afbfb" -dependencies = [ - "pest", - "pest_generator", -] - -[[package]] -name = "pest_generator" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c435bf1076437b851ebc8edc3a18442796b30f1728ffea6262d59bbe28b077e" -dependencies = [ - "pest", - "pest_meta", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "pest_meta" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "745a452f8eb71e39ffd8ee32b3c5f51d03845f99786fa9b68db6ff509c505411" -dependencies = [ - "once_cell", - "pest", - "sha2 0.10.6", -] - -[[package]] -name = "petgraph" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "467d164a6de56270bd7c4d070df81d07beace25012d5103ced4e9ff08d6afdb7" -dependencies = [ - "fixedbitset 0.2.0", - "indexmap", -] - -[[package]] -name = "petgraph" -version = "0.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dd7d28ee937e54fe3080c91faa1c3a46c06de6252988a7f4592ba2310ef22a4" -dependencies = [ - "fixedbitset 0.4.2", - "indexmap", -] - -[[package]] -name = "phf" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "928c6535de93548188ef63bb7c4036bd415cd8f36ad25af44b9789b2ee72a48c" -dependencies = [ - "phf_shared", -] - -[[package]] -name = "phf_codegen" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a56ac890c5e3ca598bbdeaa99964edb5b0258a583a9eb6ef4e89fc85d9224770" -dependencies = [ - "phf_generator", - "phf_shared", -] - -[[package]] -name = "phf_generator" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1181c94580fa345f50f19d738aaa39c0ed30a600d95cb2d3e23f94266f14fbf" -dependencies = [ - "phf_shared", - "rand 0.8.5", -] - -[[package]] -name = "phf_shared" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e1fb5f6f826b772a8d4c0394209441e7d37cbbb967ae9c7e0e8134365c9ee676" -dependencies = [ - "siphasher", - "uncased", -] - -[[package]] -name = "pin-project" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad29a609b6bcd67fee905812e544992d216af9d755757c05ed2d0e15a74c6ecc" -dependencies = [ - "pin-project-internal", -] - -[[package]] -name = "pin-project-internal" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "069bdb1e05adc7a8990dce9cc75370895fbe4e3d58b9b73bf1aee56359344a55" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "pin-project-lite" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0a7ae3ac2f1173085d398531c705756c94a4c56843785df85a60c1a0afac116" - -[[package]] -name = "pin-utils" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" - -[[package]] -name = "pkcs1" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eff33bdbdfc54cc98a2eca766ebdec3e1b8fb7387523d5c9c9a2891da856f719" -dependencies = [ - "der 0.6.1", - "pkcs8 0.9.0", - "spki 0.6.0", - "zeroize", -] - -[[package]] -name = "pkcs8" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9eca2c590a5f85da82668fa685c09ce2888b9430e83299debf1f34b65fd4a4ba" -dependencies = [ - "der 0.6.1", - "spki 0.6.0", -] - -[[package]] -name = "pkcs8" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f950b2377845cebe5cf8b5165cb3cc1a5e0fa5cfa3e1f7f55707d8fd82e0a7b7" -dependencies = [ - "der 0.7.5", - "spki 0.7.1", -] - -[[package]] -name = "pkg-config" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ac9a59f73473f1b8d852421e59e64809f025994837ef743615c6d0c5b305160" - -[[package]] -name = "plotters" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2538b639e642295546c50fcd545198c9d64ee2a38620a628724a3b266d5fbf97" -dependencies = [ - "num-traits 0.2.15", - "plotters-backend", - "plotters-svg", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "plotters-backend" -version = "0.3.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "193228616381fecdc1224c62e96946dfbc73ff4384fba576e052ff8c1bea8142" - -[[package]] -name = "plotters-svg" -version = "0.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9a81d2759aae1dae668f783c308bc5c8ebd191ff4184aaa1b37f65a6ae5a56f" -dependencies = [ - "plotters-backend", -] - -[[package]] -name = "polyval" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ef234e08c11dfcb2e56f79fd70f6f2eb7f025c0ce2333e82f4f0518ecad30c6" -dependencies = [ - "cfg-if", - "cpufeatures", - "opaque-debug", - "universal-hash", -] - -[[package]] -name = "portable-atomic" -version = "0.3.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26f6a7b87c2e435a3241addceeeff740ff8b7e76b74c13bf9acb17fa454ea00b" - -[[package]] -name = "postgres-protocol" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78b7fa9f396f51dffd61546fd8573ee20592287996568e6175ceb0f8699ad75d" -dependencies = [ - "base64 0.21.0", - "byteorder", - "bytes", - "fallible-iterator", - "hmac", - "md-5", - "memchr", - "rand 0.8.5", - "sha2 0.10.6", - "stringprep", -] - -[[package]] -name = "postgres-types" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f028f05971fe20f512bcc679e2c10227e57809a3af86a7606304435bc8896cd6" -dependencies = [ - "bytes", - "fallible-iterator", - "postgres-protocol", -] - -[[package]] -name = "pprof" -version = "0.11.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "196ded5d4be535690899a4631cc9f18cdc41b7ebf24a79400f46f48e49a11059" -dependencies = [ - "backtrace", - "cfg-if", - "criterion", - "findshlibs", - "inferno", - "libc", - "log", - "nix 0.26.2", - "once_cell", - "parking_lot 0.12.1", - "smallvec", - "symbolic-demangle", - "tempfile", - "thiserror", -] - -[[package]] -name = "ppv-lite86" -version = "0.2.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5b40af805b3121feab8a3c29f04d8ad262fa8e0561883e7653e024ae4479e6de" - -[[package]] -name = "pq-sys" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c0052426df997c0cbd30789eb44ca097e3541717a7b8fa36b1c464ee7edebd" -dependencies = [ - "vcpkg", -] - -[[package]] -name = "predicates" -version = "2.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "59230a63c37f3e18569bdb90e4a89cbf5bf8b06fea0b84e65ea10cc4df47addd" -dependencies = [ - "difflib", - "float-cmp", - "itertools", - "normalize-line-endings", - "predicates-core", - "regex", -] - -[[package]] -name = "predicates" -version = "3.0.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09963355b9f467184c04017ced4a2ba2d75cbcb4e7462690d388233253d4b1a9" -dependencies = [ - "anstyle", - "difflib", - "itertools", - "predicates-core", -] - -[[package]] -name = "predicates-core" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b794032607612e7abeb4db69adb4e33590fa6cf1149e95fd7cb00e634b92f174" - -[[package]] -name = "predicates-tree" -version = "1.0.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "368ba315fb8c5052ab692e68a0eefec6ec57b23a36959c14496f0b0df2c0cecf" -dependencies = [ - "predicates-core", - "termtree", -] - -[[package]] -name = "pretty" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ad9940b913ee56ddd94aec2d3cd179dd47068236f42a1a6415ccf9d880ce2a61" -dependencies = [ - "arrayvec 0.5.2", - "typed-arena", -] - -[[package]] -name = "pretty_assertions" -version = "1.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a25e9bcb20aa780fd0bb16b72403a9064d6b3f22f026946029acb941a50af755" -dependencies = [ - "ctor", - "diff", - "output_vt100", - "yansi", -] - -[[package]] -name = "prettyplease" -version = "0.1.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8646e95016a7a6c4adea95bafa8a16baab64b583356217f2c85db4a39d9a86" -dependencies = [ - "proc-macro2 1.0.56", - "syn 1.0.109", -] - -[[package]] -name = "prettytable-rs" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eea25e07510aa6ab6547308ebe3c036016d162b8da920dbb079e3ba8acf3d95a" -dependencies = [ - "csv", - "encode_unicode 1.0.0", - "is-terminal", - "lazy_static 1.4.0", - "term", - "unicode-width", -] - -[[package]] -name = "primeorder" -version = "0.13.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf8d3875361e28f7753baefef104386e7aa47642c93023356d97fdef4003bfb5" -dependencies = [ - "elliptic-curve 0.13.4", -] - -[[package]] -name = "primitive-types" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05e4722c697a58a99d5d06a08c30821d7c082a4632198de1eaa5a6c22ef42373" -dependencies = [ - "fixed-hash", - "impl-codec", - "impl-serde", - "uint", -] - -[[package]] -name = "proc-macro-crate" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17d47ce914bf4de440332250b0edd23ce48c005f59fab39d3335866b114f11a" -dependencies = [ - "thiserror", - "toml", -] - -[[package]] -name = "proc-macro-error" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da25490ff9892aab3fcf7c36f08cfb902dd3e71ca0f9f9517bea02a73a5ce38c" -dependencies = [ - "proc-macro-error-attr", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "version_check", -] - -[[package]] -name = "proc-macro-error-attr" -version = "1.0.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1be40180e52ecc98ad80b184934baf3d0d29f979574e439af5a55274b35f869" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "version_check", -] - -[[package]] -name = "proc-macro-hack" -version = "0.5.20+deprecated" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc375e1527247fe1a97d8b7156678dfe7c1af2fc075c9a4db3690ecd2a148068" - -[[package]] -name = "proc-macro2" -version = "0.4.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cf3d2011ab5c909338f7887f4fc896d35932e29146c12c8d01da6b22a80ba759" -dependencies = [ - "unicode-xid 0.1.0", -] - -[[package]] -name = "proc-macro2" -version = "1.0.56" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b63bdb0cd06f1f4dedf69b254734f9b45af66e4a031e42a7480257d9898b435" -dependencies = [ - "unicode-ident", -] - -[[package]] -name = "prometheus" -version = "0.13.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "449811d15fbdf5ceb5c1144416066429cf82316e2ec8ce0c1f6f8a02e7bbcf8c" -dependencies = [ - "cfg-if", - "fnv", - "lazy_static 1.4.0", - "memchr", - "parking_lot 0.12.1", - "protobuf", - "thiserror", -] - -[[package]] -name = "prometheus-closure-metric" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "prometheus", - "protobuf", - "workspace-hack", -] - -[[package]] -name = "proptest" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29f1b898011ce9595050a68e60f90bad083ff2987a695a42357134c8381fba70" -dependencies = [ - "bit-set", - "bitflags", - "byteorder", - "lazy_static 1.4.0", - "num-traits 0.2.15", - "quick-error 2.0.1", - "rand 0.8.5", - "rand_chacha 0.3.1", - "rand_xorshift", - "regex-syntax 0.6.29", - "rusty-fork", - "tempfile", - "unarray", -] - -[[package]] -name = "proptest-derive" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90b46295382dc76166cb7cf2bb4a97952464e4b7ed5a43e6cd34e1fec3349ddc" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "syn 0.15.44", -] - -[[package]] -name = "prost" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b82eaa1d779e9a4bc1c3217db8ffbeabaae1dca241bf70183242128d48681cd" -dependencies = [ - "bytes", - "prost-derive", -] - -[[package]] -name = "prost-build" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "119533552c9a7ffacc21e099c24a0ac8bb19c2a2a3f363de84cd9b844feab270" -dependencies = [ - "bytes", - "heck 0.4.1", - "itertools", - "lazy_static 1.4.0", - "log", - "multimap", - "petgraph 0.6.3", - "prettyplease", - "prost", - "prost-types", - "regex", - "syn 1.0.109", - "tempfile", - "which", -] - -[[package]] -name = "prost-derive" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d2d8d10f3c6ded6da8b05b5fb3b8a5082514344d56c9f871412d29b4e075b4" -dependencies = [ - "anyhow", - "itertools", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "prost-types" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "213622a1460818959ac1181aaeb2dc9c7f63df720db7d788b3e24eacd1983e13" -dependencies = [ - "prost", -] - -[[package]] -name = "protobuf" -version = "2.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "106dd99e98437432fed6519dedecfade6a06a73bb7b2a1e019fdd2bee5778d94" -dependencies = [ - "bytes", -] - -[[package]] -name = "protobuf-src" -version = "1.1.0+21.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7ac8852baeb3cc6fb83b93646fb93c0ffe5d14bf138c945ceb4b9948ee0e3c1" -dependencies = [ - "autotools", -] - -[[package]] -name = "ptree" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a0de80796b316aec75344095a6d2ef68ec9b8f573b9e7adc821149ba3598e270" -dependencies = [ - "ansi_term", - "atty", - "config", - "directories", - "petgraph 0.6.3", - "serde 1.0.160", - "serde-value", - "tint", -] - -[[package]] -name = "quanta" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20afe714292d5e879d8b12740aa223c6a88f118af41870e8b6196e39a02238a8" -dependencies = [ - "crossbeam-utils", - "libc", - "mach", - "once_cell", - "raw-cpuid", - "wasi 0.10.0+wasi-snapshot-preview1", - "web-sys", - "winapi", -] - -[[package]] -name = "quick-error" -version = "1.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1d01941d82fa2ab50be1e79e6714289dd7cde78eba4c074bc5a4374f650dfe0" - -[[package]] -name = "quick-error" -version = "2.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a993555f31e5a609f617c12db6250dedcac1b0a85076912c436e6fc9b2c8e6a3" - -[[package]] -name = "quick-xml" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f50b1c63b38611e7d4d7f68b82d3ad0cc71a2ad2e7f61fc10f1328d917c93cd" -dependencies = [ - "memchr", -] - -[[package]] -name = "quick-xml" -version = "0.27.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ffc053f057dd768a56f62cd7e434c42c831d296968997e9ac1f76ea7c2d14c41" -dependencies = [ - "memchr", - "serde 1.0.160", -] - -[[package]] -name = "quinn" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "445cbfe2382fa023c4f2f3c7e1c95c03dcc1df2bf23cebcb2b13e1402c4394d1" -dependencies = [ - "bytes", - "futures-io", - "pin-project-lite", - "quinn-proto", - "quinn-udp", - "rustc-hash", - "rustls", - "thiserror", - "tokio", - "tracing", - "webpki", -] - -[[package]] -name = "quinn-proto" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67c10f662eee9c94ddd7135043e544f3c82fa839a1e7b865911331961b53186c" -dependencies = [ - "bytes", - "rand 0.8.5", - "ring", - "rustc-hash", - "rustls", - "slab", - "thiserror", - "tinyvec", - "tracing", - "webpki", -] - -[[package]] -name = "quinn-udp" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "641538578b21f5e5c8ea733b736895576d0fe329bb883b937db6f4d163dbaaf4" -dependencies = [ - "libc", - "quinn-proto", - "socket2 0.4.9", - "tracing", - "windows-sys 0.42.0", -] - -[[package]] -name = "quote" -version = "0.6.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ce23b6b870e8f94f81fb0a363d65d86675884b34a09043c81e5562f11c1f8e1" -dependencies = [ - "proc-macro2 0.4.30", -] - -[[package]] -name = "quote" -version = "1.0.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4424af4bf778aae2051a77b60283332f386554255d722233d09fbfc7e30da2fc" -dependencies = [ - "proc-macro2 1.0.56", -] - -[[package]] -name = "r2d2" -version = "0.8.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "51de85fb3fb6524929c8a2eb85e6b6d363de4e8c48f9e2c2eac4944abc181c93" -dependencies = [ - "log", - "parking_lot 0.12.1", - "scheduled-thread-pool", -] - -[[package]] -name = "radium" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "643f8f41a8ebc4c5dc4515c82bb8abd397b527fc20fd681b7c011c2aee5d44fb" - -[[package]] -name = "radix_trie" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c069c179fcdc6a2fe24d8d18305cf085fdbd4f922c041943e203685d6a1c58fd" -dependencies = [ - "endian-type", - "nibble_vec", -] - -[[package]] -name = "rand" -version = "0.7.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" -dependencies = [ - "getrandom 0.1.16", - "libc", - "rand_chacha 0.2.2", - "rand_core 0.5.1", - "rand_hc", -] - -[[package]] -name = "rand" -version = "0.8.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" -dependencies = [ - "libc", - "rand_chacha 0.3.1", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_chacha" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" -dependencies = [ - "ppv-lite86", - "rand_core 0.5.1", -] - -[[package]] -name = "rand_chacha" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" -dependencies = [ - "ppv-lite86", - "rand_core 0.6.4", -] - -[[package]] -name = "rand_core" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90bde5296fc891b0cef12a6d03ddccc162ce7b2aff54160af9338f8d40df6d19" -dependencies = [ - "getrandom 0.1.16", -] - -[[package]] -name = "rand_core" -version = "0.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" -dependencies = [ - "getrandom 0.2.9", -] - -[[package]] -name = "rand_hc" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" -dependencies = [ - "rand_core 0.5.1", -] - -[[package]] -name = "rand_xorshift" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d25bf25ec5ae4a3f1b92f929810509a2f53d7dca2f50b794ff57e3face536c8f" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "rand_xoshiro" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f97cdb2a36ed4183de61b2f824cc45c9f1037f28afe0a322e9fff4c108b5aaa" -dependencies = [ - "rand_core 0.6.4", -] - -[[package]] -name = "raw-cpuid" -version = "10.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c297679cb867470fa8c9f67dbba74a78d78e3e98d7cf2b08d6d71540f797332" -dependencies = [ - "bitflags", -] - -[[package]] -name = "rayon" -version = "1.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d2df5196e37bcc87abebc0053e20787d73847bb33134a69841207dd0a47f03b" -dependencies = [ - "either", - "rayon-core", -] - -[[package]] -name = "rayon-core" -version = "1.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4b8f95bd6966f5c87776639160a66bd8ab9895d9d4ab01ddba9fc60661aebe8d" -dependencies = [ - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-utils", - "num_cpus", -] - -[[package]] -name = "rcgen" -version = "0.9.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6413f3de1edee53342e6138e75b56d32e7bc6e332b3bd62d497b1929d4cfbcdd" -dependencies = [ - "pem", - "ring", - "time 0.3.20", - "yasna", -] - -[[package]] -name = "read-write-set" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "move-binary-format", - "move-bytecode-utils", - "move-core-types", - "move-model", - "move-read-write-set-types", - "move-stackless-bytecode", - "read-write-set-dynamic", -] - -[[package]] -name = "read-write-set-dynamic" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "move-binary-format", - "move-bytecode-utils", - "move-core-types", - "move-read-write-set-types", -] - -[[package]] -name = "readonly" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb656d27c22b5c47154452686cae5e096f12e124daacb36a0bfcb32dbebb39e3" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "real_tokio" -version = "1.27.0" -source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca#18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca" -dependencies = [ - "autocfg", - "bytes", - "libc", - "mio 0.8.6", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.4.9", - "tokio-macros 2.0.0", - "windows-sys 0.45.0", -] - -[[package]] -name = "redox_syscall" -version = "0.2.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_syscall" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "567664f262709473930a4bf9e51bf2ebf3348f2e748ccc50dea20646858f8f29" -dependencies = [ - "bitflags", -] - -[[package]] -name = "redox_users" -version = "0.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b033d837a7cf162d7993aded9304e30a83213c648b6e389db233191f891e5c2b" -dependencies = [ - "getrandom 0.2.9", - "redox_syscall 0.2.16", - "thiserror", -] - -[[package]] -name = "ref-cast" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f43faa91b1c8b36841ee70e97188a869d37ae21759da6846d4be66de5bf7b12c" -dependencies = [ - "ref-cast-impl", -] - -[[package]] -name = "ref-cast-impl" -version = "1.0.16" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d2275aab483050ab2a7364c1a46604865ee7d6906684e08db0f090acf74f9e7" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "regex" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af83e617f331cc6ae2da5443c602dfa5af81e517212d9d611a5b3ba1777b5370" -dependencies = [ - "aho-corasick 1.0.1", - "memchr", - "regex-syntax 0.7.1", -] - -[[package]] -name = "regex-automata" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c230d73fb8d8c1b9c0b3135c5142a8acee3a0558fb8db5cf1cb65f8d7862132" -dependencies = [ - "regex-syntax 0.6.29", -] - -[[package]] -name = "regex-syntax" -version = "0.6.29" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f162c6dd7b008981e4d40210aca20b4bd0f9b60ca9271061b07f78537722f2e1" - -[[package]] -name = "regex-syntax" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5996294f19bd3aae0453a862ad728f60e6600695733dd5df01da90c54363a3c" - -[[package]] -name = "reqwest" -version = "0.11.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13293b639a097af28fc8a90f22add145a9c954e49d77da06263d58cf44d5fb91" -dependencies = [ - "base64 0.21.0", - "bytes", - "encoding_rs", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-rustls", - "ipnet", - "js-sys", - "log", - "mime", - "once_cell", - "percent-encoding", - "pin-project-lite", - "rustls", - "rustls-pemfile", - "serde 1.0.160", - "serde_json", - "serde_urlencoded", - "tokio", - "tokio-rustls", - "tokio-util 0.7.8", - "tower-service", - "url", - "wasm-bindgen", - "wasm-bindgen-futures", - "wasm-streams", - "web-sys", - "webpki-roots", - "winreg", -] - -[[package]] -name = "retain_mut" -version = "0.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c31b5c4033f8fdde8700e4657be2c497e7288f01515be52168c631e2e4d4086" - -[[package]] -name = "rfc6979" -version = "0.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7743f17af12fa0b03b803ba12cd6a8d9483a587e89c69445e3909655c0b9fabb" -dependencies = [ - "crypto-bigint 0.4.9", - "hmac", - "zeroize", -] - -[[package]] -name = "rfc6979" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f8dd2a808d456c4a54e300a23e9f5a67e122c3024119acbfd73e3bf664491cb2" -dependencies = [ - "hmac", - "subtle", -] - -[[package]] -name = "rgb" -version = "0.8.36" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "20ec2d3e3fc7a92ced357df9cebd5a10b6fb2aa1ee797bf7e9ce2f17dffc8f59" -dependencies = [ - "bytemuck", -] - -[[package]] -name = "ring" -version = "0.16.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3053cf52e236a3ed746dfc745aa9cacf1b791d846bdaf412f60a8d7d6e17c8fc" -dependencies = [ - "cc", - "libc", - "once_cell", - "spin", - "untrusted", - "web-sys", - "winapi", -] - -[[package]] -name = "ripemd" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd124222d17ad93a644ed9d011a40f4fb64aa54275c08cc216524a9ea82fb09f" -dependencies = [ - "digest 0.10.6", -] - -[[package]] -name = "roaring" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ef0fb5e826a8bde011ecae6a8539dd333884335c57ff0f003fbe27c25bbe8f71" -dependencies = [ - "bytemuck", - "byteorder", - "retain_mut", -] - -[[package]] -name = "rocksdb" -version = "0.20.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "015439787fce1e75d55f279078d33ff14b4af5d93d995e8838ee4631301c8a99" -dependencies = [ - "libc", - "librocksdb-sys", -] - -[[package]] -name = "ron" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "300a51053b1cb55c80b7a9fde4120726ddf25ca241a1cbb926626f62fb136bff" -dependencies = [ - "base64 0.13.1", - "bitflags", - "serde 1.0.160", -] - -[[package]] -name = "rsa" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a77d189da1fee555ad95b7e50e7457d91c0e089ec68ca69ad2989413bbdab4" -dependencies = [ - "byteorder", - "digest 0.10.6", - "num-bigint-dig", - "num-integer", - "num-iter", - "num-traits 0.2.15", - "pkcs1", - "pkcs8 0.9.0", - "rand_core 0.6.4", - "sha2 0.10.6", - "signature 2.1.0", - "subtle", - "zeroize", -] - -[[package]] -name = "rstest" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b07f2d176c472198ec1e6551dc7da28f1c089652f66a7b722676c2238ebc0edf" -dependencies = [ - "futures", - "futures-timer", - "rstest_macros", - "rustc_version", -] - -[[package]] -name = "rstest_macros" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7229b505ae0706e64f37ffc54a9c163e11022a6636d58fe1f3f52018257ff9f7" -dependencies = [ - "cfg-if", - "proc-macro2 1.0.56", - "quote 1.0.26", - "rustc_version", - "syn 1.0.109", - "unicode-ident", -] - -[[package]] -name = "rust-ini" -version = "0.13.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e52c148ef37f8c375d49d5a73aa70713125b7f19095948a923f80afdeb22ec2" - -[[package]] -name = "rust_decimal" -version = "1.29.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26bd36b60561ee1fb5ec2817f198b6fd09fa571c897a5e86d1487cfc2b096dfc" -dependencies = [ - "arrayvec 0.7.2", - "num-traits 0.2.15", -] - -[[package]] -name = "rustc-demangle" -version = "0.1.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d626bb9dae77e28219937af045c257c28bfd3f69333c512553507f5f9798cb76" - -[[package]] -name = "rustc-hash" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" - -[[package]] -name = "rustc-hex" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3e75f6a532d0fd9f7f13144f392b6ad56a32696bfcd9c78f797f16bbb6f072d6" - -[[package]] -name = "rustc_version" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" -dependencies = [ - "semver 1.0.17", -] - -[[package]] -name = "rusticata-macros" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faf0c4a6ece9950b9abdb62b1cfcf2a68b3b67a10ba445b3bb85be2a293d0632" -dependencies = [ - "nom 7.1.3", -] - -[[package]] -name = "rustix" -version = "0.36.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a38f9520be93aba504e8ca974197f46158de5dcaa9fa04b57c57cd6a679d658" -dependencies = [ - "bitflags", - "errno 0.3.1", - "io-lifetimes", - "libc", - "linux-raw-sys 0.1.4", - "windows-sys 0.45.0", -] - -[[package]] -name = "rustix" -version = "0.37.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8bbfc1d1c7c40c01715f47d71444744a81669ca84e8b63e25a55e169b1f86433" -dependencies = [ - "bitflags", - "errno 0.3.1", - "io-lifetimes", - "libc", - "linux-raw-sys 0.3.6", - "windows-sys 0.48.0", -] - -[[package]] -name = "rustls" -version = "0.20.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fff78fc74d175294f4e83b28343315ffcfb114b156f0185e9741cb5570f50e2f" -dependencies = [ - "log", - "ring", - "sct", - "webpki", -] - -[[package]] -name = "rustls-native-certs" -version = "0.6.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0167bac7a9f490495f3c33013e7722b53cb087ecbe082fb0c6387c96f634ea50" -dependencies = [ - "openssl-probe", - "rustls-pemfile", - "schannel", - "security-framework", -] - -[[package]] -name = "rustls-pemfile" -version = "1.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d194b56d58803a43635bdc398cd17e383d6f71f9182b9a192c127ca42494a59b" -dependencies = [ - "base64 0.21.0", -] - -[[package]] -name = "rustversion" -version = "1.0.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4f3208ce4d8448b3f3e7d168a73f5e0c43a61e32930de3bceeccedb388b6bf06" - -[[package]] -name = "rusty-fork" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb3dcc6e454c328bb824492db107ab7c0ae8fcffe4ad210136ef014458c1bc4f" -dependencies = [ - "fnv", - "quick-error 1.2.3", - "tempfile", - "wait-timeout", -] - -[[package]] -name = "rustyline" -version = "9.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db7826789c0e25614b03e5a54a0717a86f9ff6e6e5247f92b369472869320039" -dependencies = [ - "bitflags", - "cfg-if", - "clipboard-win", - "dirs-next", - "fd-lock", - "libc", - "log", - "memchr", - "nix 0.23.2", - "radix_trie", - "scopeguard", - "smallvec", - "unicode-segmentation", - "unicode-width", - "utf8parse", - "winapi", -] - -[[package]] -name = "rustyline-derive" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "107c3d5d7f370ac09efa62a78375f94d94b8a33c61d8c278b96683fb4dbf2d8d" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "ryu" -version = "1.0.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f91339c0467de62360649f8d3e185ca8de4224ff281f66000de5eb2a77a79041" - -[[package]] -name = "same-file" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "93fc1dc3aaa9bfed95e02e6eadabb4baf7e3078b0bd1b4d7b6b0b68378900502" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "schannel" -version = "0.1.21" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "713cfb06c7059f3588fb8044c0fad1d09e3c01d225e25b9220dbfdcf16dbb1b3" -dependencies = [ - "windows-sys 0.42.0", -] - -[[package]] -name = "scheduled-thread-pool" -version = "0.2.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3cbc66816425a074528352f5789333ecff06ca41b36b0b0efdfbb29edc391a19" -dependencies = [ - "parking_lot 0.12.1", -] - -[[package]] -name = "schemars" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "02c613288622e5f0c3fdc5dbd4db1c5fbe752746b1d1a56a0630b78fd00de44f" -dependencies = [ - "dyn-clone", - "either", - "schemars_derive", - "serde 1.0.160", - "serde_json", -] - -[[package]] -name = "schemars_derive" -version = "0.8.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "109da1e6b197438deb6db99952990c7f959572794b80ff93707d55a232545e7c" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "serde_derive_internals", - "syn 1.0.109", -] - -[[package]] -name = "scoped-futures" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1473e24c637950c9bd38763220bea91ec3e095a89f672bbd7a10d03e77ba467" -dependencies = [ - "cfg-if", - "pin-utils", -] - -[[package]] -name = "scopeguard" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" - -[[package]] -name = "scratch" -version = "1.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1792db035ce95be60c3f8853017b3999209281c24e2ba5bc8e59bf97a0c590c1" - -[[package]] -name = "sct" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d53dcdb7c9f8158937a7981b48accfd39a43af418591a5d008c7b22b5e1b7ca4" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "sec1" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3be24c1842290c45df0a7bf069e0c268a747ad05a192f2fd7dcfdbc1cba40928" -dependencies = [ - "base16ct 0.1.1", - "der 0.6.1", - "generic-array", - "subtle", - "zeroize", -] - -[[package]] -name = "sec1" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f0aec48e813d6b90b15f0b8948af3c63483992dee44c03e9930b3eebdabe046e" -dependencies = [ - "base16ct 0.2.0", - "der 0.7.5", - "generic-array", - "pkcs8 0.10.2", - "subtle", - "zeroize", -] - -[[package]] -name = "secp256k1" -version = "0.27.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "25996b82292a7a57ed3508f052cfff8640d38d32018784acd714758b43da9c8f" -dependencies = [ - "bitcoin_hashes", - "rand 0.8.5", - "secp256k1-sys", -] - -[[package]] -name = "secp256k1-sys" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a129b9e9efbfb223753b9163c4ab3b13cff7fd9c7f010fbac25ab4099fa07e" -dependencies = [ - "cc", -] - -[[package]] -name = "security-framework" -version = "2.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a332be01508d814fed64bf28f798a146d73792121129962fdf335bb3c49a4254" -dependencies = [ - "bitflags", - "core-foundation", - "core-foundation-sys", - "libc", - "security-framework-sys", -] - -[[package]] -name = "security-framework-sys" -version = "2.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31c9bb296072e961fcbd8853511dd39c2d8be2deb1e17c6860b1d30732b323b4" -dependencies = [ - "core-foundation-sys", - "libc", -] - -[[package]] -name = "semver" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f301af10236f6df4160f7c3f04eec6dbc70ace82d23326abad5edee88801c6b6" -dependencies = [ - "semver-parser", -] - -[[package]] -name = "semver" -version = "1.0.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bebd363326d05ec3e2f532ab7660680f3b02130d780c299bca73469d521bc0ed" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "semver-parser" -version = "0.10.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "00b0bef5b7f9e0df16536d3961cfb6e84331c065b4066afb39768d0e319411f7" -dependencies = [ - "pest", -] - -[[package]] -name = "send_wrapper" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f638d531eccd6e23b980caf34876660d38e265409d8e99b397ab71eb3612fad0" - -[[package]] -name = "serde" -version = "0.8.23" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dad3f759919b92c3068c696c15c3d17238234498bbdcc80f2c469606f948ac8" - -[[package]] -name = "serde" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb2f3770c8bce3bcda7e149193a069a0f4365bda1fa5cd88e03bca26afc1216c" -dependencies = [ - "serde_derive", -] - -[[package]] -name = "serde-hjson" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a3a4e0ea8a88553209f6cc6cfe8724ecad22e1acf372793c27d995290fe74f8" -dependencies = [ - "lazy_static 1.4.0", - "num-traits 0.1.43", - "regex", - "serde 0.8.23", -] - -[[package]] -name = "serde-name" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5b14ebbcc4e4f2b3642fa99c388649da58d1dc3308c7d109f39f565d1710f0" -dependencies = [ - "serde 1.0.160", - "thiserror", -] - -[[package]] -name = "serde-reflection" -version = "0.3.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f05a5f801ac62a51a49d378fdb3884480041b99aced450b28990673e8ff99895" -dependencies = [ - "once_cell", - "serde 1.0.160", - "thiserror", -] - -[[package]] -name = "serde-value" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a1a3341211875ef120e117ea7fd5228530ae7e7036a779fdc9117be6b3282c" -dependencies = [ - "ordered-float", - "serde 1.0.160", -] - -[[package]] -name = "serde_bytes" -version = "0.11.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "416bda436f9aab92e02c8e10d49a15ddd339cea90b6e340fe51ed97abb548294" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "serde_derive" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "291a097c63d8497e00160b166a967a4a79c64f3facdd01cbd7502231688d77df" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "serde_derive_internals" -version = "0.26.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85bf8229e7920a9f636479437026331ce11aa132b4dde37d121944a44d6e5f3c" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "serde_json" -version = "1.0.96" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "057d394a50403bcac12672b2b18fb387ab6d289d957dab67dd201875391e52f1" -dependencies = [ - "indexmap", - "itoa", - "ryu", - "serde 1.0.160", -] - -[[package]] -name = "serde_path_to_error" -version = "0.1.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f7f05c1d5476066defcdfacce1f52fc3cae3af1d3089727100c02ae92e5abbe0" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "serde_repr" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcec881020c684085e55a25f7fd888954d56609ef363479dc5a1305eb0d40cab" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "serde_test" -version = "1.0.160" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3c95a500e3923258f7fc3a16bf29934e403aef5ca1096e184d85e3b1926675e8" -dependencies = [ - "serde 1.0.160", -] - -[[package]] -name = "serde_urlencoded" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd" -dependencies = [ - "form_urlencoded", - "itoa", - "ryu", - "serde 1.0.160", -] - -[[package]] -name = "serde_with" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07ff71d2c147a7b57362cead5e22f772cd52f6ab31cfcd9edcd7f6aeb2a0afbe" -dependencies = [ - "base64 0.13.1", - "chrono", - "hex", - "indexmap", - "serde 1.0.160", - "serde_json", - "serde_with_macros", - "time 0.3.20", -] - -[[package]] -name = "serde_with_macros" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "881b6f881b17d13214e5d494c939ebab463d01264ce1811e9d4ac3a882e7695f" -dependencies = [ - "darling 0.20.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "serde_yaml" -version = "0.8.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578a7433b776b56a35785ed5ce9a7e777ac0598aac5a6dd1b4b18a307c7fc71b" -dependencies = [ - "indexmap", - "ryu", - "serde 1.0.160", - "yaml-rust", -] - -[[package]] -name = "sha-1" -version = "0.9.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "99cd6713db3cf16b6c84e06321e049a9b9f699826e16096d23bbcc44d15d51a6" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha-1" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5058ada175748e33390e40e872bd0fe59a19f265d0158daa551c5a88a76009c" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "sha1" -version = "0.10.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f04293dc80c3993519f2d7f6f511707ee7094fe0c6d3406feb330cdb3540eba3" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "sha2" -version = "0.9.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d58a1e1bf39749807d89cf2d98ac2dfa0ff1cb3faa38fbb64dd88ac8013d800" -dependencies = [ - "block-buffer 0.9.0", - "cfg-if", - "cpufeatures", - "digest 0.9.0", - "opaque-debug", -] - -[[package]] -name = "sha2" -version = "0.10.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82e6b795fe2e3b1e845bafcb27aa35405c4d47cdfc92af5fc8d3002f76cebdc0" -dependencies = [ - "cfg-if", - "cpufeatures", - "digest 0.10.6", -] - -[[package]] -name = "sha3" -version = "0.9.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" -dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", - "keccak", - "opaque-debug", -] - -[[package]] -name = "sha3" -version = "0.10.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54c2bb1a323307527314a36bfb73f24febb08ce2b8a554bf4ffd6f51ad15198c" -dependencies = [ - "digest 0.10.6", - "keccak", -] - -[[package]] -name = "sharded-slab" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "900fba806f70c630b0a382d0d825e17a0f19fcd059a2ade1ff237bcddf446b31" -dependencies = [ - "lazy_static 1.4.0", -] - -[[package]] -name = "shared-crypto" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "bcs", - "eyre", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "serde 1.0.160", - "serde_repr", - "workspace-hack", -] - -[[package]] -name = "shell-words" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24188a676b6ae68c3b2cb3a01be17fbf7240ce009799bb56d5b1409051e78fde" - -[[package]] -name = "shellexpand" -version = "3.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "da03fa3b94cc19e3ebfc88c4229c49d8f08cdbd1228870a45f0ffdf84988e14b" -dependencies = [ - "dirs 5.0.1", -] - -[[package]] -name = "shlex" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "43b2853a4d09f215c24cc5489c992ce46052d359b5109343cbafbf26bc62f8a3" - -[[package]] -name = "signal-hook" -version = "0.3.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "732768f1176d21d09e076c23a93123d40bba92d50c4058da34d45c8de8e682b9" -dependencies = [ - "libc", - "signal-hook-registry", -] - -[[package]] -name = "signal-hook-mio" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "29ad2e15f37ec9a6cc544097b78a1ec90001e9f71b81338ca39f430adaca99af" -dependencies = [ - "libc", - "mio 0.7.14", - "mio 0.8.6", - "signal-hook", -] - -[[package]] -name = "signal-hook-registry" -version = "1.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d8229b473baa5980ac72ef434c4415e70c4b5e71b423043adb4ba059f89c99a1" -dependencies = [ - "libc", -] - -[[package]] -name = "signature" -version = "1.6.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "74233d3b3b2f6d4b006dc19dee745e73e2a6bfb6f93607cd3b02bd5b00797d7c" -dependencies = [ - "digest 0.10.6", - "rand_core 0.6.4", -] - -[[package]] -name = "signature" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e1788eed21689f9cf370582dfc467ef36ed9c707f073528ddafa8d83e3b8500" -dependencies = [ - "digest 0.10.6", - "rand_core 0.6.4", -] - -[[package]] -name = "similar" -version = "2.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "420acb44afdae038210c99e69aae24109f32f15500aa708e81d46c9f29d55fcf" - -[[package]] -name = "simplelog" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bc0ffd69814a9b251d43afcabf96dad1b29f5028378056257be9e3fecc9f720" -dependencies = [ - "chrono", - "log", - "termcolor", -] - -[[package]] -name = "siphasher" -version = "0.3.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7bd3e3206899af3f8b12af284fafc038cc1dc2b41d1b89dd17297221c5d225de" - -[[package]] -name = "sized-chunks" -version = "0.6.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "16d69225bde7a69b235da73377861095455d298f2b970996eec25ddbb42b3d1e" -dependencies = [ - "bitmaps", - "typenum", -] - -[[package]] -name = "slab" -version = "0.4.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6528351c9bc8ab22353f9d776db39a20288e8d6c37ef8cfe3317cf875eecfc2d" -dependencies = [ - "autocfg", -] - -[[package]] -name = "slip10_ed25519" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4be0ff28bf14f9610a342169084e87a4f435ad798ec528dc7579a3678fa9dc9a" -dependencies = [ - "hmac-sha512", -] - -[[package]] -name = "slug" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3bc762e6a4b6c6fcaade73e77f9ebc6991b676f88bb2358bddb56560f073373" -dependencies = [ - "deunicode", -] - -[[package]] -name = "smallvec" -version = "1.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a507befe795404456341dfab10cef66ead4c041f62b8b11bbb92bffe5d0953e0" - -[[package]] -name = "snafu" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cb0656e7e3ffb70f6c39b3c2a86332bb74aa3c679da781642590f3c1118c5045" -dependencies = [ - "doc-comment", - "snafu-derive", -] - -[[package]] -name = "snafu-derive" -version = "0.7.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "475b3bbe5245c26f2d8a6f62d67c1f30eb9fffeccee721c45d162c3ebbdf81b2" -dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "snap" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e9f0ab6ef7eb7353d9119c170a436d1bf248eea575ac42d19d12f4e34130831" - -[[package]] -name = "socket2" -version = "0.4.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64a4a911eed85daf18834cfaa86a79b7d266ff93ff5ba14005426219480ed662" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "socket2" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6d283f86695ae989d1e18440a943880967156325ba025f05049946bff47bcc2b" -dependencies = [ - "libc", - "windows-sys 0.48.0", -] - -[[package]] -name = "soketto" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "41d1c5305e39e09653383c2c7244f2f78b3bcae37cf50c64cb4789c9f5096ec2" -dependencies = [ - "base64 0.13.1", - "bytes", - "futures", - "http", - "httparse", - "log", - "rand 0.8.5", - "sha-1 0.9.8", -] - -[[package]] -name = "spin" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e63cff320ae2c57904679ba7cb63280a3dc4613885beafb148ee7bf9aa9042d" - -[[package]] -name = "spki" -version = "0.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "67cf02bbac7a337dc36e4f5a693db6c21e7863f45070f7064577eb4367a3212b" -dependencies = [ - "base64ct", - "der 0.6.1", -] - -[[package]] -name = "spki" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37a5be806ab6f127c3da44b7378837ebf01dadca8510a0e572460216b228bd0e" -dependencies = [ - "base64ct", - "der 0.7.5", -] - -[[package]] -name = "stable_deref_trait" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8f112729512f8e442d81f95a8a7ddf2b7c6b8a1a6f509a95864142b30cab2d3" - -[[package]] -name = "static_assertions" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a2eb9349b6444b326872e140eb1cf5e7c522154d69e7a0ffb0fb81c06b37543f" - -[[package]] -name = "str-buf" -version = "1.0.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e08d8363704e6c71fc928674353e6b7c23dcea9d82d7012c8faf2a3a025f8d0" - -[[package]] -name = "str_stack" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9091b6114800a5f2141aee1d1b9d6ca3592ac062dc5decb3764ec5895a47b4eb" - -[[package]] -name = "stringprep" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ee348cb74b87454fff4b551cbf727025810a004f88aeacae7f85b87f4e9a1c1" -dependencies = [ - "unicode-bidi", - "unicode-normalization", -] - -[[package]] -name = "strip-ansi-escapes" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "011cbb39cf7c1f62871aea3cc46e5817b0937b49e9447370c93cacbe93a766d8" -dependencies = [ - "vte", -] - -[[package]] -name = "strsim" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ea5119cdb4c55b55d432abb513a0429384878c15dde60cc77b1c99de1a95a6a" - -[[package]] -name = "strsim" -version = "0.10.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" - -[[package]] -name = "structopt" -version = "0.3.26" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6b5c64445ba8094a6ab0c3cd2ad323e07171012d9c98b0b15651daf1787a10" -dependencies = [ - "clap 2.34.0", - "lazy_static 1.4.0", - "structopt-derive", -] - -[[package]] -name = "structopt-derive" -version = "0.4.18" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcb5ae327f9cc13b68763b5749770cb9e048a99bd9dfdfa58d0cf05d5f64afe0" -dependencies = [ - "heck 0.3.3", - "proc-macro-error", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "strum" -version = "0.24.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "063e6045c0e62079840579a7e47a355ae92f60eb74daaf156fb1e84ba164e63f" -dependencies = [ - "strum_macros", -] - -[[package]] -name = "strum_macros" -version = "0.24.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e385be0d24f186b4ce2f9982191e7101bb737312ad61c1f2f984f34bcf85d59" -dependencies = [ - "heck 0.4.1", - "proc-macro2 1.0.56", - "quote 1.0.26", - "rustversion", - "syn 1.0.109", -] - -[[package]] -name = "subprocess" -version = "0.2.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c2e86926081dda636c546d8c5e641661049d7562a68f5488be4a1f7f66f6086" -dependencies = [ - "libc", - "winapi", -] - -[[package]] -name = "subtle" -version = "2.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" - -[[package]] -name = "subtle-ng" -version = "2.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "734676eb262c623cec13c3155096e08d1f8f29adce39ba17948b18dad1e54142" - -[[package]] -name = "sui-adapter" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "leb128", - "move-binary-format", - "move-bytecode-utils", - "move-bytecode-verifier", - "move-core-types", - "move-vm-runtime", - "move-vm-types", - "once_cell", - "serde 1.0.160", - "sui-macros", - "sui-move-natives", - "sui-protocol-config", - "sui-types", - "sui-verifier", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-config" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anyhow", - "bcs", - "camino", - "csv", - "dirs 4.0.0", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "move-binary-format", - "move-core-types", - "narwhal-config", - "once_cell", - "prometheus", - "rand 0.8.5", - "serde 1.0.160", - "serde_with", - "serde_yaml", - "shared-crypto", - "sui-adapter", - "sui-framework", - "sui-keys", - "sui-move-natives", - "sui-protocol-config", - "sui-simulator", - "sui-storage", - "sui-types", - "tempfile", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-core" -version = "1.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "arc-swap", - "async-trait", - "bcs", - "bytes", - "chrono", - "dashmap", - "either", - "enum_dispatch", - "eyre", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "itertools", - "lru", - "move-binary-format", - "move-bytecode-utils", - "move-bytecode-verifier", - "move-core-types", - "move-package", - "move-symbol-pool", - "move-vm-runtime", - "mysten-common", - "mysten-metrics", - "mysten-network", - "narwhal-config", - "narwhal-crypto", - "narwhal-executor", - "narwhal-network", - "narwhal-node", - "narwhal-types", - "narwhal-worker", - "num_cpus", - "object_store", - "once_cell", - "parking_lot 0.12.1", - "prometheus", - "rand 0.8.5", - "rocksdb", - "scopeguard", - "serde 1.0.160", - "serde_json", - "serde_with", - "shared-crypto", - "signature 1.6.4", - "sui-adapter", - "sui-config", - "sui-framework", - "sui-json-rpc-types", - "sui-macros", - "sui-move-build", - "sui-move-natives", - "sui-network", - "sui-protocol-config", - "sui-simulator", - "sui-storage", - "sui-types", - "tap", - "telemetry-subscribers", - "tempfile", - "thiserror", - "tokio", - "tokio-retry", - "tokio-stream", - "tracing", - "typed-store", - "typed-store-derive", - "url", - "workspace-hack", -] - -[[package]] -name = "sui-cost-tables" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "move-binary-format", - "move-core-types", - "move-vm-test-utils", - "move-vm-types", - "once_cell", - "serde 1.0.160", - "workspace-hack", -] - -[[package]] -name = "sui-framework" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "move-binary-format", - "move-core-types", - "move-package", - "once_cell", - "serde 1.0.160", - "sui-move-build", - "sui-types", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-json" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "move-binary-format", - "move-bytecode-utils", - "move-core-types", - "once_cell", - "schemars", - "serde 1.0.160", - "serde_json", - "sui-framework", - "sui-protocol-config", - "sui-types", - "workspace-hack", -] - -[[package]] -name = "sui-json-rpc" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "async-trait", - "bcs", - "cached", - "eyre", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "hyper", - "itertools", - "jsonrpsee", - "jsonrpsee-proc-macros", - "linked-hash-map", - "move-binary-format", - "move-bytecode-utils", - "move-core-types", - "move-package", - "mysten-metrics", - "num_cpus", - "once_cell", - "prometheus", - "serde 1.0.160", - "shared-crypto", - "signature 1.6.4", - "sui-core", - "sui-json", - "sui-json-rpc-types", - "sui-open-rpc", - "sui-open-rpc-macros", - "sui-protocol-config", - "sui-storage", - "sui-transaction-builder", - "sui-types", - "tap", - "thiserror", - "tokio", - "tower", - "tower-http 0.3.5", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "sui-json-rpc-types" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bcs", - "colored", - "enum_dispatch", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "itertools", - "move-binary-format", - "move-bytecode-utils", - "move-core-types", - "schemars", - "serde 1.0.160", - "serde_json", - "serde_with", - "sui-json", - "sui-protocol-config", - "sui-types", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-keys" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "bip32", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "rand 0.8.5", - "serde 1.0.160", - "serde_json", - "shared-crypto", - "signature 1.6.4", - "slip10_ed25519", - "sui-types", - "tiny-bip39", - "workspace-hack", -] - -[[package]] -name = "sui-macros" -version = "0.7.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "futures", - "once_cell", - "sui-proc-macros", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-move-build" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "move-binary-format", - "move-bytecode-utils", - "move-bytecode-verifier", - "move-compiler", - "move-core-types", - "move-package", - "move-symbol-pool", - "serde-reflection", - "sui-adapter", - "sui-protocol-config", - "sui-types", - "sui-verifier", - "tempfile", - "workspace-hack", -] - -[[package]] -name = "sui-move-natives" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "bcs", - "better_any", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "fastcrypto-zkp", - "linked-hash-map", - "move-binary-format", - "move-core-types", - "move-stdlib", - "move-vm-runtime", - "move-vm-types", - "smallvec", - "sui-protocol-config", - "sui-types", - "workspace-hack", -] - -[[package]] -name = "sui-network" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anemo-build", - "anemo-tower", - "anyhow", - "dashmap", - "futures", - "governor", - "mysten-metrics", - "mysten-network", - "prometheus", - "rand 0.8.5", - "serde 1.0.160", - "shared-crypto", - "sui-config", - "sui-types", - "tap", - "tokio", - "tonic", - "tonic-build", - "tower", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-open-rpc" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "bcs", - "schemars", - "serde 1.0.160", - "serde_json", - "versions", - "workspace-hack", -] - -[[package]] -name = "sui-open-rpc-macros" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "derive-syn-parse", - "itertools", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "unescape", - "workspace-hack", -] - -[[package]] -name = "sui-proc-macros" -version = "0.7.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "msim-macros", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", - "workspace-hack", -] - -[[package]] -name = "sui-protocol-config" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "serde 1.0.160", - "serde_with", - "sui-protocol-config-macros", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-protocol-config-macros" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "workspace-hack", -] - -[[package]] -name = "sui-sdk" -version = "1.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "async-trait", - "bcs", - "clap 3.2.25", - "colored", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "futures", - "futures-core", - "jsonrpsee", - "move-core-types", - "serde 1.0.160", - "serde_json", - "serde_with", - "shared-crypto", - "sui-config", - "sui-json", - "sui-json-rpc", - "sui-json-rpc-types", - "sui-keys", - "sui-transaction-builder", - "sui-types", - "thiserror", - "tokio", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-simulator" -version = "0.7.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anemo-tower", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "lru", - "move-package", - "msim", - "narwhal-network", - "sui-adapter", - "sui-framework", - "sui-move-build", - "sui-types", - "telemetry-subscribers", - "tempfile", - "tower", - "tracing", - "workspace-hack", -] - -[[package]] -name = "sui-storage" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "async-trait", - "backoff", - "bcs", - "bytes", - "eyre", - "futures", - "itertools", - "lru", - "move-binary-format", - "move-bytecode-utils", - "move-core-types", - "mysten-metrics", - "object_store", - "parking_lot 0.12.1", - "prometheus", - "rocksdb", - "serde 1.0.160", - "sui-json-rpc-types", - "sui-protocol-config", - "sui-simulator", - "sui-types", - "tap", - "tempfile", - "tokio", - "tracing", - "typed-store", - "typed-store-derive", - "workspace-hack", -] - -[[package]] -name = "sui-transaction-builder" -version = "0.0.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anyhow", - "async-trait", - "bcs", - "futures", - "move-binary-format", - "move-core-types", - "sui-json", - "sui-json-rpc-types", - "sui-protocol-config", - "sui-types", - "workspace-hack", -] - -[[package]] -name = "sui-types" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "anemo", - "anyhow", - "bcs", - "bincode", - "byteorder", - "derivative", - "derive_more", - "enum_dispatch", - "eyre", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "indexmap", - "itertools", - "move-binary-format", - "move-bytecode-utils", - "move-command-line-common", - "move-core-types", - "move-disassembler", - "move-ir-types", - "mysten-network", - "narwhal-config", - "narwhal-crypto", - "once_cell", - "prometheus", - "proptest", - "proptest-derive", - "rand 0.8.5", - "roaring", - "schemars", - "serde 1.0.160", - "serde-name", - "serde_json", - "serde_with", - "shared-crypto", - "signature 1.6.4", - "static_assertions", - "strum", - "strum_macros", - "sui-cost-tables", - "sui-macros", - "sui-protocol-config", - "tap", - "thiserror", - "tonic", - "tracing", - "typed-store", - "workspace-hack", -] - -[[package]] -name = "sui-verifier" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "move-binary-format", - "move-bytecode-utils", - "move-bytecode-verifier", - "move-core-types", - "sui-protocol-config", - "sui-types", - "workspace-hack", -] - -[[package]] -name = "symbolic-common" -version = "10.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b55cdc318ede251d0957f07afe5fed912119b8c1bc5a7804151826db999e737" -dependencies = [ - "debugid", - "memmap2", - "stable_deref_trait", - "uuid", -] - -[[package]] -name = "symbolic-demangle" -version = "10.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "79be897be8a483a81fff6a3a4e195b4ac838ef73ca42d348b3f722da9902e489" -dependencies = [ - "cpp_demangle", - "rustc-demangle", - "symbolic-common", -] - -[[package]] -name = "syn" -version = "0.15.44" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ca4b3b69a77cbe1ffc9e198781b7acb0c7365a883670e8f1c1bc66fba79a5c5" -dependencies = [ - "proc-macro2 0.4.30", - "quote 0.6.13", - "unicode-xid 0.1.0", -] - -[[package]] -name = "syn" -version = "1.0.109" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72b64191b275b66ffe2469e8af2c1cfe3bafa67b529ead792a6d0160888b4237" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "unicode-ident", -] - -[[package]] -name = "syn" -version = "2.0.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34fcf3e8b60f57e6a14301a2e916d323af98b0ea63c599441eec8558660c822" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "unicode-ident", -] - -[[package]] -name = "sync_wrapper" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160" - -[[package]] -name = "synstructure" -version = "0.12.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f36bdaa60a83aca3921b5259d5400cbf5e90fc51931376a9bd4a0eb79aa7210f" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "unicode-xid 0.2.4", -] - -[[package]] -name = "sysinfo" -version = "0.27.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a902e9050fca0a5d6877550b769abd2bd1ce8c04634b941dbe2809735e1a1e33" -dependencies = [ - "cfg-if", - "core-foundation-sys", - "libc", - "ntapi 0.4.1", - "once_cell", - "rayon", - "winapi", -] - -[[package]] -name = "tabular" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9a2882c514780a1973df90de9d68adcd8871bacc9a6331c3f28e6d2ff91a3d1" -dependencies = [ - "strip-ansi-escapes", - "unicode-width", -] - -[[package]] -name = "tap" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55937e1799185b12863d447f42597ed69d9928686b8d88a1df17376a097d8369" - -[[package]] -name = "target-lexicon" -version = "0.12.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd1ba337640d60c3e96bc6f0638a939b9c9a7f2c316a1598c279828b3d1dc8c5" - -[[package]] -name = "target-spec" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0bf4306559bd50cb358e7af5692694d6f6fad95cf2c0bea2571dd419f5298e12" -dependencies = [ - "cfg-expr 0.15.1", - "guppy-workspace-hack", - "serde 1.0.160", - "target-lexicon", -] - -[[package]] -name = "telemetry-subscribers" -version = "0.2.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "crossterm 0.25.0", - "once_cell", - "prometheus", - "tracing", - "tracing-appender", - "tracing-subscriber 0.3.17", - "workspace-hack", -] - -[[package]] -name = "tempfile" -version = "3.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9fbec84f381d5795b08656e4912bec604d162bff9291d6189a78f4c8ab87998" -dependencies = [ - "cfg-if", - "fastrand", - "redox_syscall 0.3.5", - "rustix 0.37.18", - "windows-sys 0.45.0", -] - -[[package]] -name = "tera" -version = "1.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3df578c295f9ec044ff1c829daf31bb7581d5b3c2a7a3d87419afe1f2531438c" -dependencies = [ - "chrono", - "chrono-tz", - "globwalk", - "humansize", - "lazy_static 1.4.0", - "percent-encoding", - "pest", - "pest_derive", - "rand 0.8.5", - "regex", - "serde 1.0.160", - "serde_json", - "slug", - "unic-segment", -] - -[[package]] -name = "term" -version = "0.7.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c59df8ac95d96ff9bede18eb7300b0fda5e5d8d90960e76f8e14ae765eedbf1f" -dependencies = [ - "dirs-next", - "rustversion", - "winapi", -] - -[[package]] -name = "termcolor" -version = "1.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" -dependencies = [ - "winapi-util", -] - -[[package]] -name = "termtree" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3369f5ac52d5eb6ab48c6b4ffdc8efbcad6b89c765749064ba298f2c68a16a76" - -[[package]] -name = "test-fuzz" -version = "3.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd4a3a7f00909d5a1d1f83b86b65d91e4c94f80b0c2d0ae37e2ef44da7b7a0a0" -dependencies = [ - "serde 1.0.160", - "test-fuzz-internal", - "test-fuzz-macro", - "test-fuzz-runtime", -] - -[[package]] -name = "test-fuzz-internal" -version = "3.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9186daca5c58cb307d09731e0ba06b13fd6c036c90672b9bfc31cecf76cf689" -dependencies = [ - "cargo_metadata", - "proc-macro2 1.0.56", - "quote 1.0.26", - "serde 1.0.160", - "strum_macros", -] - -[[package]] -name = "test-fuzz-macro" -version = "3.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "57d187b450bfb5b7939f82f9747dc1ebb15a7a9c4a93cd304a41aece7149608b" -dependencies = [ - "darling 0.14.4", - "if_chain", - "lazy_static 1.4.0", - "proc-macro2 1.0.56", - "quote 1.0.26", - "subprocess", - "syn 1.0.109", - "test-fuzz-internal", - "toolchain_find", - "unzip-n", -] - -[[package]] -name = "test-fuzz-runtime" -version = "3.0.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a0d69068569b9b7311095823fe0e49eedfd05ad4277eb64fc334cf1a5bc5116" -dependencies = [ - "bincode", - "hex", - "num-traits 0.2.15", - "serde 1.0.160", - "sha-1 0.10.1", - "test-fuzz-internal", -] - -[[package]] -name = "textwrap" -version = "0.11.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d326610f408c7a4eb6f51c37c330e496b08506c9457c9d34287ecc38809fb060" -dependencies = [ - "unicode-width", -] - -[[package]] -name = "textwrap" -version = "0.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "222a222a5bfe1bba4a77b45ec488a741b3cb8872e5e499451fd7d0129c9c7c3d" - -[[package]] -name = "thiserror" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "978c9a314bd8dc99be594bc3c175faaa9794be04a5a5e153caba6915336cebac" -dependencies = [ - "thiserror-impl", -] - -[[package]] -name = "thiserror-impl" -version = "1.0.40" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9456a42c5b0d803c8cd86e73dd7cc9edd429499f37a3550d286d5e86720569f" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "thread_local" -version = "1.1.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3fdd6f064ccff2d6567adcb3873ca630700f00b5ad3f060c25b5dcfd9a4ce152" -dependencies = [ - "cfg-if", - "once_cell", -] - -[[package]] -name = "threadpool" -version = "1.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d050e60b33d41c19108b32cea32164033a9013fe3b46cbd4457559bfbf77afaa" -dependencies = [ - "num_cpus", -] - -[[package]] -name = "time" -version = "0.1.45" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b797afad3f312d1c66a56d11d0316f916356d11bd158fbc6ca6389ff6bf805a" -dependencies = [ - "libc", - "wasi 0.10.0+wasi-snapshot-preview1", - "winapi", -] - -[[package]] -name = "time" -version = "0.3.20" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cd0cbfecb4d19b5ea75bb31ad904eb5b9fa13f21079c3b92017ebdf4999a5890" -dependencies = [ - "itoa", - "serde 1.0.160", - "time-core", - "time-macros", -] - -[[package]] -name = "time-core" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2e153e1f1acaef8acc537e68b44906d2db6436e2b35ac2c6b42640fff91f00fd" - -[[package]] -name = "time-macros" -version = "0.2.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd80a657e71da814b8e5d60d3374fc6d35045062245d80224748ae522dd76f36" -dependencies = [ - "time-core", -] - -[[package]] -name = "tint" -version = "1.0.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7af24570664a3074673dbbf69a65bdae0ae0b72f2949b1adfbacb736ee4d6896" -dependencies = [ - "lazy_static 0.2.11", -] - -[[package]] -name = "tiny-bip39" -version = "1.0.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62cc94d358b5a1e84a5cb9109f559aa3c4d634d2b1b4de3d0fa4adc7c78e2861" -dependencies = [ - "anyhow", - "hmac", - "once_cell", - "pbkdf2", - "rand 0.8.5", - "rustc-hash", - "sha2 0.10.6", - "thiserror", - "unicode-normalization", - "wasm-bindgen", - "zeroize", -] - -[[package]] -name = "tinytemplate" -version = "1.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "be4d6b5f19ff7664e8c98d03e2139cb510db9b0a60b55f8e8709b689d939b6bc" -dependencies = [ - "serde 1.0.160", - "serde_json", -] - -[[package]] -name = "tinyvec" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "87cc5ceb3875bb20c2890005a4e226a4651264a5c75edb2421b52861a0a0cb50" -dependencies = [ - "tinyvec_macros", -] - -[[package]] -name = "tinyvec_macros" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" - -[[package]] -name = "tokio" -version = "1.28.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3c786bf8134e5a3a166db9b29ab8f48134739014a3eca7bc6bfa95d673b136f" -dependencies = [ - "autocfg", - "bytes", - "libc", - "mio 0.8.6", - "num_cpus", - "parking_lot 0.12.1", - "pin-project-lite", - "signal-hook-registry", - "socket2 0.4.9", - "tokio-macros 2.1.0", - "tracing", - "windows-sys 0.48.0", -] - -[[package]] -name = "tokio-io-timeout" -version = "1.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30b74022ada614a1b4834de765f9bb43877f910cc8ce4be40e89042c9223a8bf" -dependencies = [ - "pin-project-lite", - "tokio", -] - -[[package]] -name = "tokio-macros" -version = "2.0.0" -source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca#18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "tokio-macros" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "630bdcf245f78637c13ec01ffae6187cca34625e8c63150d424b59e55af2675e" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "tokio-postgres" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e89f6234aa8fd43779746012fcf53603cdb91fdd8399aa0de868c2d56b6dde1" -dependencies = [ - "async-trait", - "byteorder", - "bytes", - "fallible-iterator", - "futures-channel", - "futures-util", - "log", - "parking_lot 0.12.1", - "percent-encoding", - "phf", - "pin-project-lite", - "postgres-protocol", - "postgres-types", - "socket2 0.5.2", - "tokio", - "tokio-util 0.7.8", -] - -[[package]] -name = "tokio-postgres-rustls" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "606f2b73660439474394432239c82249c0d45eb5f23d91f401be1e33590444a7" -dependencies = [ - "futures", - "ring", - "rustls", - "tokio", - "tokio-postgres", - "tokio-rustls", -] - -[[package]] -name = "tokio-retry" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7f57eb36ecbe0fc510036adff84824dd3c24bb781e21bfa67b69d556aa85214f" -dependencies = [ - "pin-project", - "rand 0.8.5", - "tokio", -] - -[[package]] -name = "tokio-rustls" -version = "0.23.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c43ee83903113e03984cb9e5cebe6c04a5116269e900e3ddba8f068a62adda59" -dependencies = [ - "rustls", - "tokio", - "webpki", -] - -[[package]] -name = "tokio-stream" -version = "0.1.14" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "397c988d37662c7dda6d2208364a706264bf3d6138b11d436cbac0ad38832842" -dependencies = [ - "futures-core", - "pin-project-lite", - "tokio", - "tokio-util 0.7.8", -] - -[[package]] -name = "tokio-util" -version = "0.7.7" -source = "git+https://github.com/mystenmark/tokio-madsim-fork.git?rev=18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca#18a0ac61aea1c2da68b3b9483fc3bf4bc54a5eca" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "futures-util", - "hashbrown 0.12.3", - "pin-project-lite", - "real_tokio", - "slab", - "tracing", -] - -[[package]] -name = "tokio-util" -version = "0.7.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "806fe8c2c87eccc8b3267cbae29ed3ab2d0bd37fca70ab622e46aaa9375ddb7d" -dependencies = [ - "bytes", - "futures-core", - "futures-io", - "futures-sink", - "pin-project-lite", - "tokio", - "tracing", -] - -[[package]] -name = "toml" -version = "0.5.11" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" -dependencies = [ - "indexmap", - "serde 1.0.160", -] - -[[package]] -name = "toml_datetime" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4553f467ac8e3d374bc9a177a26801e5d0f9b211aa1673fb137a403afd1c9cf5" - -[[package]] -name = "toml_edit" -version = "0.14.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5376256e44f2443f8896ac012507c19a012df0fe8758b55246ae51a2279db51f" -dependencies = [ - "combine", - "indexmap", - "itertools", - "serde 1.0.160", -] - -[[package]] -name = "toml_edit" -version = "0.15.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1541ba70885967e662f69d31ab3aeca7b1aaecfcd58679590b893e9239c3646" -dependencies = [ - "combine", - "indexmap", - "itertools", - "toml_datetime", -] - -[[package]] -name = "toml_edit" -version = "0.17.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a34cc558345efd7e88b9eda9626df2138b80bb46a7606f695e751c892bc7dac6" -dependencies = [ - "indexmap", - "itertools", - "nom8", - "toml_datetime", -] - -[[package]] -name = "tonic" -version = "0.8.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8f219fad3b929bef19b1f86fbc0358d35daed8f2cac972037ac0dc10bbb8d5fb" -dependencies = [ - "async-stream", - "async-trait", - "axum", - "base64 0.13.1", - "bytes", - "futures-core", - "futures-util", - "h2", - "http", - "http-body", - "hyper", - "hyper-timeout", - "percent-encoding", - "pin-project", - "prost", - "prost-derive", - "rustls-pemfile", - "tokio", - "tokio-rustls", - "tokio-stream", - "tokio-util 0.7.8", - "tower", - "tower-layer", - "tower-service", - "tracing", - "tracing-futures", -] - -[[package]] -name = "tonic-build" -version = "0.8.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5bf5e9b9c0f7e0a7c027dcfaba7b2c60816c7049171f679d99ee2ff65d0de8c4" -dependencies = [ - "prettyplease", - "proc-macro2 1.0.56", - "prost-build", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "tonic-health" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a88aee666ef3a4d1ee46218bbc8e5f69bcf9cc27bf2e871d6b724d83f56d179f" -dependencies = [ - "async-stream", - "bytes", - "prost", - "tokio", - "tokio-stream", - "tonic", -] - -[[package]] -name = "toolchain_find" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5e85654a10e7a07a47c6f19d93818f3f343e22927f2fa280c84f7c8042743413" -dependencies = [ - "home", - "lazy_static 1.4.0", - "regex", - "semver 0.11.0", - "walkdir", -] - -[[package]] -name = "tower" -version = "0.4.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b8fa9be0de6cf49e536ce1851f987bd21a43b771b09473c3549a6c853db37c1c" -dependencies = [ - "futures-core", - "futures-util", - "hdrhistogram", - "indexmap", - "pin-project", - "pin-project-lite", - "rand 0.8.5", - "slab", - "tokio", - "tokio-util 0.7.8", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-http" -version = "0.3.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f873044bf02dd1e8239e9c1293ea39dad76dc594ec16185d0a1bf31d8dc8d858" -dependencies = [ - "async-compression", - "base64 0.13.1", - "bitflags", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "httpdate", - "iri-string", - "mime", - "mime_guess", - "percent-encoding", - "pin-project-lite", - "tokio", - "tokio-util 0.7.8", - "tower", - "tower-layer", - "tower-service", - "tracing", - "uuid", -] - -[[package]] -name = "tower-http" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5d1d42a9b3f3ec46ba828e8d376aec14592ea199f70a06a548587ecd1c4ab658" -dependencies = [ - "bitflags", - "bytes", - "futures-core", - "futures-util", - "http", - "http-body", - "http-range-header", - "pin-project-lite", - "tower-layer", - "tower-service", - "tracing", -] - -[[package]] -name = "tower-layer" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c20c8dbed6283a09604c3e69b4b7eeb54e298b8a600d4d5ecb5ad39de609f1d0" - -[[package]] -name = "tower-service" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6bc1c9ce2b5135ac7f93c72918fc37feb872bdc6a5533a8b85eb4b86bfdae52" - -[[package]] -name = "tracing" -version = "0.1.37" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ce8c33a8d48bd45d624a6e523445fd21ec13d3653cd51f681abf67418f54eb8" -dependencies = [ - "cfg-if", - "log", - "pin-project-lite", - "tracing-attributes", - "tracing-core", -] - -[[package]] -name = "tracing-appender" -version = "0.2.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09d48f71a791638519505cefafe162606f706c25592e4bde4d97600c0195312e" -dependencies = [ - "crossbeam-channel", - "time 0.3.20", - "tracing-subscriber 0.3.17", -] - -[[package]] -name = "tracing-attributes" -version = "0.1.24" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0f57e3ca2a01450b1a921183a9c9cbfda207fd822cef4ccb00a65402cbba7a74" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "tracing-core" -version = "0.1.30" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24eb03ba0eab1fd845050058ce5e616558e8f8d8fca633e6b163fe25c797213a" -dependencies = [ - "once_cell", - "valuable", -] - -[[package]] -name = "tracing-futures" -version = "0.2.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97d095ae15e245a057c8e8451bab9b3ee1e1f68e9ba2b4fbc18d0ac5237835f2" -dependencies = [ - "pin-project", - "tracing", -] - -[[package]] -name = "tracing-log" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "78ddad33d2d10b1ed7eb9d1f518a5674713876e97e5bb9b7345a7984fbb4f922" -dependencies = [ - "lazy_static 1.4.0", - "log", - "tracing-core", -] - -[[package]] -name = "tracing-serde" -version = "0.1.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bc6b213177105856957181934e4920de57730fc69bf42c37ee5bb664d406d9e1" -dependencies = [ - "serde 1.0.160", - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.2.25" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0e0d2eaa99c3c2e41547cfa109e910a68ea03823cccad4a0525dcbc9b01e8c71" -dependencies = [ - "tracing-core", -] - -[[package]] -name = "tracing-subscriber" -version = "0.3.17" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "30a651bc37f915e81f087d86e62a18eec5f79550c7faff886f7090b4ea757c77" -dependencies = [ - "matchers", - "nu-ansi-term", - "once_cell", - "regex", - "serde 1.0.160", - "serde_json", - "sharded-slab", - "smallvec", - "thread_local", - "time 0.3.20", - "tracing", - "tracing-core", - "tracing-log", - "tracing-serde", -] - -[[package]] -name = "try-lock" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3528ecfd12c466c6f163363caf2d02a71161dd5e1cc6ae7b34207ea2d42d81ed" - -[[package]] -name = "tui" -version = "0.17.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "23ed0a32c88b039b73f1b6c5acbd0554bfa5b6be94467375fd947c4de3a02271" -dependencies = [ - "bitflags", - "cassowary", - "crossterm 0.22.1", - "unicode-segmentation", - "unicode-width", -] - -[[package]] -name = "twox-hash" -version = "1.6.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" -dependencies = [ - "cfg-if", - "static_assertions", -] - -[[package]] -name = "typed-arena" -version = "2.0.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6af6ae20167a9ece4bcb41af5b80f8a1f1df981f6391189ce00fd257af04126a" - -[[package]] -name = "typed-store" -version = "0.4.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "async-trait", - "bcs", - "bincode", - "collectable", - "eyre", - "fdlimit", - "hdrhistogram", - "itertools", - "msim", - "num_cpus", - "once_cell", - "ouroboros 0.15.6", - "prometheus", - "rand 0.8.5", - "rocksdb", - "serde 1.0.160", - "sui-macros", - "tap", - "thiserror", - "tokio", - "tracing", - "workspace-hack", -] - -[[package]] -name = "typed-store-derive" -version = "0.3.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "workspace-hack", -] - -[[package]] -name = "typenum" -version = "1.16.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497961ef93d974e23eb6f433eb5fe1b7930b659f06d12dec6fc44a8f554c0bba" - -[[package]] -name = "ucd-trie" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e79c4d996edb816c91e4308506774452e55e95c3c9de07b6729e17e15a5ef81" - -[[package]] -name = "uint" -version = "0.9.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "76f64bba2c53b04fcab63c01a7d7427eadc821e3bc48c34dc9ba29c501164b52" -dependencies = [ - "byteorder", - "crunchy", - "hex", - "static_assertions", -] - -[[package]] -name = "unarray" -version = "0.1.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaea85b334db583fe3274d12b4cd1880032beab409c0d774be044d4480ab9a94" - -[[package]] -name = "uncased" -version = "0.9.7" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09b01702b0fd0b3fadcf98e098780badda8742d4f4a7676615cad90e8ac73622" -dependencies = [ - "version_check", -] - -[[package]] -name = "unescape" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ccb97dac3243214f8d8507998906ca3e2e0b900bf9bf4870477f125b82e68f6e" - -[[package]] -name = "unic-char-property" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a8c57a407d9b6fa02b4795eb81c5b6652060a15a7903ea981f3d723e6c0be221" -dependencies = [ - "unic-char-range", -] - -[[package]] -name = "unic-char-range" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0398022d5f700414f6b899e10b8348231abf9173fa93144cbc1a43b9793c1fbc" - -[[package]] -name = "unic-common" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d7ff825a6a654ee85a63e80f92f054f904f21e7d12da4e22f9834a4aaa35bc" - -[[package]] -name = "unic-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4ed5d26be57f84f176157270c112ef57b86debac9cd21daaabbe56db0f88f23" -dependencies = [ - "unic-ucd-segment", -] - -[[package]] -name = "unic-ucd-segment" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2079c122a62205b421f499da10f3ee0f7697f012f55b675e002483c73ea34700" -dependencies = [ - "unic-char-property", - "unic-char-range", - "unic-ucd-version", -] - -[[package]] -name = "unic-ucd-version" -version = "0.9.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96bd2f2237fe450fcd0a1d2f5f4e91711124f7857ba2e964247776ebeeb7b0c4" -dependencies = [ - "unic-common", -] - -[[package]] -name = "unicase" -version = "2.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50f37be617794602aabbeee0be4f259dc1778fabe05e2d67ee8f79326d5cb4f6" -dependencies = [ - "version_check", -] - -[[package]] -name = "unicode-bidi" -version = "0.3.13" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92888ba5573ff080736b3648696b70cafad7d250551175acbaa4e0385b3e1460" - -[[package]] -name = "unicode-ident" -version = "1.0.8" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5464a87b239f13a63a501f2701565754bae92d243d4bb7eb12f6d57d2269bf4" - -[[package]] -name = "unicode-normalization" -version = "0.1.22" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c5713f0fc4b5db668a2ac63cdb7bb4469d8c9fed047b1d0292cc7b0ce2ba921" -dependencies = [ - "tinyvec", -] - -[[package]] -name = "unicode-segmentation" -version = "1.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd624098567895118886609431a7c3b8f516e41d30e0643f03d94592a147e36" - -[[package]] -name = "unicode-width" -version = "0.1.10" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0edd1e5b14653f783770bce4a4dabb4a5108a5370a5f5d8cfe8710c361f6c8b" - -[[package]] -name = "unicode-xid" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fc72304796d0818e357ead4e000d19c9c174ab23dc11093ac919054d20a6a7fc" - -[[package]] -name = "unicode-xid" -version = "0.2.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f962df74c8c05a667b5ee8bcf162993134c104e96440b663c8daa176dc772d8c" - -[[package]] -name = "universal-hash" -version = "0.5.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d3160b73c9a19f7e2939a2fdad446c57c1bbbbf4d919d3213ff1267a580d8b5" -dependencies = [ - "crypto-common", - "subtle", -] - -[[package]] -name = "unsigned-varint" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d86a8dc7f45e4c1b0d30e43038c38f274e77af056aa5f74b93c2cf9eb3c1c836" - -[[package]] -name = "untrusted" -version = "0.7.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a156c684c91ea7d62626509bce3cb4e1d9ed5c4d978f7b4352658f96a4c26b4a" - -[[package]] -name = "unzip-n" -version = "0.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c2e7e85a0596447f0f2ac090e16bc4c516c6fe91771fb0c0ccf7fa3dae896b9c" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "url" -version = "2.3.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d68c799ae75762b8c3fe375feb6600ef5602c883c5d21eb51c09f22b83c4643" -dependencies = [ - "form_urlencoded", - "idna", - "percent-encoding", -] - -[[package]] -name = "urlencoding" -version = "2.1.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e8db7427f936968176eaa7cdf81b7f98b980b18495ec28f1b5791ac3bfe3eea9" - -[[package]] -name = "utf8parse" -version = "0.2.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "711b9620af191e0cdc7468a8d14e709c3dcdb115b36f838e601583af800a370a" - -[[package]] -name = "uuid" -version = "1.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4dad5567ad0cf5b760e5665964bec1b47dfd077ba8a2544b513f3556d3d239a2" -dependencies = [ - "getrandom 0.2.9", - "rand 0.8.5", -] - -[[package]] -name = "valuable" -version = "0.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "830b7e5d4d90034032940e4ace0d9a9a057e7a45cd94e6c007832e39edb82f6d" - -[[package]] -name = "variant_count" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aae2faf80ac463422992abf4de234731279c058aaf33171ca70277c98406b124" -dependencies = [ - "quote 1.0.26", - "syn 1.0.109", -] - -[[package]] -name = "vcpkg" -version = "0.2.15" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426" - -[[package]] -name = "vec_map" -version = "0.8.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1bddf1187be692e79c5ffeab891132dfb0f236ed36a43c7ed39f1165ee20191" - -[[package]] -name = "version_check" -version = "0.9.4" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" - -[[package]] -name = "versions" -version = "4.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ee97e1d97bd593fb513912a07691b742361b3dd64ad56f2c694ea2dbfe0665d3" -dependencies = [ - "itertools", - "nom 7.1.3", -] - -[[package]] -name = "vsimd" -version = "0.8.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" - -[[package]] -name = "vte" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6cbce692ab4ca2f1f3047fcf732430249c0e971bfdd2b234cf2c47ad93af5983" -dependencies = [ - "arrayvec 0.5.2", - "utf8parse", - "vte_generate_state_changes", -] - -[[package]] -name = "vte_generate_state_changes" -version = "0.1.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d257817081c7dffcdbab24b9e62d2def62e2ff7d00b1c20062551e6cccc145ff" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", -] - -[[package]] -name = "wait-timeout" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" -dependencies = [ - "libc", -] - -[[package]] -name = "waker-fn" -version = "1.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d5b2c62b4012a3e1eca5a7e077d13b3bf498c4073e33ccd58626607748ceeca" - -[[package]] -name = "walkdir" -version = "2.3.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "36df944cda56c7d8d8b7496af378e6b16de9284591917d307c9b4d313c44e698" -dependencies = [ - "same-file", - "winapi-util", -] - -[[package]] -name = "want" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1ce8a968cb1cd110d136ff8b819a556d6fb6d919363c61534f6860c7eb172ba0" -dependencies = [ - "log", - "try-lock", -] - -[[package]] -name = "wasi" -version = "0.9.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cccddf32554fecc6acb585f82a32a72e28b48f8c4c1883ddfeeeaa96f7d8e519" - -[[package]] -name = "wasi" -version = "0.10.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a143597ca7c7793eff794def352d41792a93c481eb1042423ff7ff72ba2c31f" - -[[package]] -name = "wasi" -version = "0.11.0+wasi-snapshot-preview1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" - -[[package]] -name = "wasm-bindgen" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31f8dcbc21f30d9b8f2ea926ecb58f6b91192c17e9d33594b3df58b2007ca53b" -dependencies = [ - "cfg-if", - "wasm-bindgen-macro", -] - -[[package]] -name = "wasm-bindgen-backend" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95ce90fd5bcc06af55a641a86428ee4229e44e07033963a2290a8e241607ccb9" -dependencies = [ - "bumpalo", - "log", - "once_cell", - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-futures" -version = "0.4.34" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f219e0d211ba40266969f6dbdd90636da12f75bee4fc9d6c23d1260dadb51454" -dependencies = [ - "cfg-if", - "js-sys", - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "wasm-bindgen-macro" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c21f77c0bedc37fd5dc21f897894a5ca01e7bb159884559461862ae90c0b4c5" -dependencies = [ - "quote 1.0.26", - "wasm-bindgen-macro-support", -] - -[[package]] -name = "wasm-bindgen-macro-support" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2aff81306fcac3c7515ad4e177f521b5c9a15f2b08f4e32d823066102f35a5f6" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 1.0.109", - "wasm-bindgen-backend", - "wasm-bindgen-shared", -] - -[[package]] -name = "wasm-bindgen-shared" -version = "0.2.84" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0046fef7e28c3804e5e38bfa31ea2a0f73905319b677e57ebe37e49358989b5d" - -[[package]] -name = "wasm-streams" -version = "0.2.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bbae3363c08332cadccd13b67db371814cd214c2524020932f0804b8cf7c078" -dependencies = [ - "futures-util", - "js-sys", - "wasm-bindgen", - "wasm-bindgen-futures", - "web-sys", -] - -[[package]] -name = "web-sys" -version = "0.3.61" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e33b99f4b23ba3eec1a53ac264e35a755f00e966e0065077d6027c0f575b0b97" -dependencies = [ - "js-sys", - "wasm-bindgen", -] - -[[package]] -name = "webpki" -version = "0.22.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f095d78192e208183081cc07bc5515ef55216397af48b873e5edcd72637fa1bd" -dependencies = [ - "ring", - "untrusted", -] - -[[package]] -name = "webpki-roots" -version = "0.22.6" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6c71e40d7d2c34a5106301fb632274ca37242cd0c9d3e64dbece371a40a2d87" -dependencies = [ - "webpki", -] - -[[package]] -name = "which" -version = "4.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2441c784c52b289a054b7201fc93253e288f094e2f4be9058343127c4226a269" -dependencies = [ - "either", - "libc", - "once_cell", -] - -[[package]] -name = "whoami" -version = "1.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2c70234412ca409cc04e864e89523cb0fc37f5e1344ebed5a3ebf4192b6b9f68" -dependencies = [ - "wasm-bindgen", - "web-sys", -] - -[[package]] -name = "widestring" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17882f045410753661207383517a6f62ec3dbeb6a4ed2acce01f0728238d1983" - -[[package]] -name = "winapi" -version = "0.3.9" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" -dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", -] - -[[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" - -[[package]] -name = "winapi-util" -version = "0.1.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" -dependencies = [ - "winapi", -] - -[[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" - -[[package]] -name = "windows" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e686886bc078bc1b0b600cac0147aadb815089b6e4da64016cbd754b6342700f" -dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-sys" -version = "0.42.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a3e1820f08b8513f676f7ab6c1f99ff312fb97b553d30ff4dd86f9f15728aa7" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.45.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75283be5efb2831d37ea142365f009c02ec203cd29a3ebecbc093d52315b66d0" -dependencies = [ - "windows-targets 0.42.2", -] - -[[package]] -name = "windows-sys" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677d2418bec65e3338edb076e806bc1ec15693c5d0104683f2efe857f61056a9" -dependencies = [ - "windows-targets 0.48.0", -] - -[[package]] -name = "windows-targets" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8e5180c00cd44c9b1c88adb3693291f1cd93605ded80c250a75d472756b4d071" -dependencies = [ - "windows_aarch64_gnullvm 0.42.2", - "windows_aarch64_msvc 0.42.2", - "windows_i686_gnu 0.42.2", - "windows_i686_msvc 0.42.2", - "windows_x86_64_gnu 0.42.2", - "windows_x86_64_gnullvm 0.42.2", - "windows_x86_64_msvc 0.42.2", -] - -[[package]] -name = "windows-targets" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b1eb6f0cd7c80c79759c929114ef071b87354ce476d9d94271031c0497adfd5" -dependencies = [ - "windows_aarch64_gnullvm 0.48.0", - "windows_aarch64_msvc 0.48.0", - "windows_i686_gnu 0.48.0", - "windows_i686_msvc 0.48.0", - "windows_x86_64_gnu 0.48.0", - "windows_x86_64_gnullvm 0.48.0", - "windows_x86_64_msvc 0.48.0", -] - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "597a5118570b68bc08d8d59125332c54f1ba9d9adeedeef5b99b02ba2b0698f8" - -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "91ae572e1b79dba883e0d315474df7305d12f569b400fcf90581b06062f7e1bc" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e08e8864a60f06ef0d0ff4ba04124db8b0fb3be5776a5cd47641e942e58c4d43" - -[[package]] -name = "windows_aarch64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2ef27e0d7bdfcfc7b868b317c1d32c641a6fe4629c171b8928c7b08d98d7cf3" - -[[package]] -name = "windows_i686_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c61d927d8da41da96a81f029489353e68739737d3beca43145c8afec9a31a84f" - -[[package]] -name = "windows_i686_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "622a1962a7db830d6fd0a69683c80a18fda201879f0f447f065a3b7467daa241" - -[[package]] -name = "windows_i686_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "44d840b6ec649f480a41c8d80f9c65108b92d89345dd94027bfe06ac444d1060" - -[[package]] -name = "windows_i686_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4542c6e364ce21bf45d69fdd2a8e455fa38d316158cfd43b3ac1c5b1b19f8e00" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8de912b8b8feb55c064867cf047dda097f92d51efad5b491dfb98f6bbb70cb36" - -[[package]] -name = "windows_x86_64_gnu" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca2b8a661f7628cbd23440e50b05d705db3686f894fc9580820623656af974b1" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26d41b46a36d453748aedef1486d5c7a85db22e56aff34643984ea85514e94a3" - -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7896dbc1f41e08872e9d5e8f8baa8fdd2677f29468c4e156210174edc7f7b953" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.42.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9aec5da331524158c6d1a4ac0ab1541149c0b9505fde06423b02f5ef0106b9f0" - -[[package]] -name = "windows_x86_64_msvc" -version = "0.48.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a515f5799fe4961cb532f983ce2b23082366b898e52ffbce459c86f67c8378a" - -[[package]] -name = "winreg" -version = "0.10.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "80d0f4e272c85def139476380b12f9ac60926689dd2e01d4923222f40580869d" -dependencies = [ - "winapi", -] - -[[package]] -name = "workspace-hack" -version = "0.1.0" -source = "git+https://github.com/MystenLabs/sui?branch=main#d29a6c349392e1186a060b6ad3ff28a3a449d2a4" -dependencies = [ - "Inflector", - "addr2line", - "adler", - "aead", - "aes", - "aes-gcm", - "ahash 0.7.6", - "ahash 0.8.3", - "aho-corasick 0.7.20", - "aliasable", - "alloc-no-stdlib", - "alloc-stdlib", - "anemo", - "anemo-build", - "anemo-cli", - "anemo-tower", - "anes", - "ansi_term", - "anyhow", - "arbitrary", - "arc-swap", - "ark-bls12-381", - "ark-bn254", - "ark-crypto-primitives", - "ark-ec", - "ark-ff", - "ark-ff-asm", - "ark-ff-macros", - "ark-groth16", - "ark-poly", - "ark-r1cs-std", - "ark-relations", - "ark-secp256r1", - "ark-serialize", - "ark-serialize-derive", - "ark-snark", - "ark-std", - "arrayref", - "arrayvec 0.5.2", - "arrayvec 0.7.2", - "asn1-rs", - "asn1-rs-derive", - "asn1-rs-impl", - "assert_cmd", - "async-compression", - "async-lock", - "async-recursion", - "async-stream", - "async-stream-impl", - "async-trait", - "async_once", - "atomicwrites", - "atty", - "auto_ops", - "autocfg", - "autotools", - "axum", - "axum-core", - "axum-extra", - "axum-server", - "backoff", - "backtrace", - "base-x", - "base16ct 0.1.1", - "base16ct 0.2.0", - "base64 0.13.1", - "base64 0.21.0", - "base64ct", - "bcs", - "beef", - "better_any", - "better_typeid_derive", - "bimap", - "bincode", - "bindgen", - "bip32", - "bit-set", - "bit-vec", - "bitcoin-private", - "bitcoin_hashes", - "bitflags", - "bitmaps", - "bitvec", - "blake2", - "blake3", - "block-buffer 0.10.4", - "block-buffer 0.9.0", - "block-padding 0.2.1", - "block-padding 0.3.3", - "blst", - "brotli", - "brotli-decompressor", - "bs58", - "bstr", - "bulletproofs", - "bumpalo", - "byte-slice-cast", - "bytecode-interpreter-crypto", - "bytemuck", - "byteorder", - "bytes", - "bzip2-sys", - "cached", - "cached_proc_macro", - "cached_proc_macro_types", - "camino", - "cargo-platform", - "cargo_metadata", - "cassowary", - "cast", - "cbc", - "cc", - "cexpr", - "cfg-expr 0.13.0", - "cfg-if", - "chrono", - "chrono-tz", - "chrono-tz-build", - "ciborium", - "ciborium-io", - "ciborium-ll", - "cipher", - "clang-sys", - "clap 2.34.0", - "clap 3.2.25", - "clap 4.2.5", - "clap_derive 3.2.25", - "clap_derive 4.2.0", - "clap_lex 0.2.4", - "clap_lex 0.3.3", - "clear_on_drop", - "clipboard-win", - "codespan", - "codespan-reporting", - "collectable", - "colored", - "colored-diff", - "combine", - "comfy-table", - "config", - "console", - "console-api", - "console-subscriber", - "const-oid", - "const-str", - "constant_time_eq", - "convert_case 0.4.0", - "convert_case 0.6.0", - "core-foundation", - "core-foundation-sys", - "core2", - "cpp_demangle", - "cpufeatures", - "crc32fast", - "criterion", - "criterion-plot", - "crossbeam-channel", - "crossbeam-deque", - "crossbeam-epoch", - "crossbeam-utils", - "crossterm 0.21.0", - "crossterm 0.22.1", - "crossterm 0.25.0", - "crossterm_winapi 0.8.0", - "crossterm_winapi 0.9.0", - "crunchy", - "crypto-bigint 0.4.9", - "crypto-bigint 0.5.2", - "crypto-common", - "csv", - "csv-core", - "ctor", - "ctr", - "curve25519-dalek-fiat", - "curve25519-dalek-ng", - "darling 0.14.4", - "darling_core 0.14.4", - "darling_macro 0.14.4", - "dashmap", - "data-encoding", - "data-encoding-macro", - "data-encoding-macro-internal", - "datatest-stable", - "deadpool", - "deadpool-runtime", - "debug-ignore", - "debugid", - "der 0.6.1", - "der 0.7.5", - "der-parser", - "derivative", - "derive-syn-parse", - "derive_arbitrary", - "derive_builder", - "derive_builder_core", - "derive_builder_macro", - "derive_more", - "determinator", - "deunicode", - "diesel", - "diesel-async", - "diesel-derive-enum", - "diesel_derives", - "diesel_migrations", - "diff", - "difference", - "difflib", - "diffus", - "diffy", - "digest 0.10.6", - "digest 0.9.0", - "directories", - "dirs 4.0.0", - "dirs-next", - "dirs-sys 0.3.7", - "dirs-sys-next", - "displaydoc", - "dissimilar", - "doc-comment", - "downcast", - "duration-str", - "dyn-clone", - "ecdsa 0.14.8", - "ecdsa 0.16.6", - "ed25519", - "ed25519-consensus", - "ed25519-dalek-fiat", - "either", - "elliptic-curve 0.12.3", - "elliptic-curve 0.13.4", - "encode_unicode 0.3.6", - "encode_unicode 1.0.0", - "encoding_rs", - "endian-type", - "enum_dispatch", - "errno 0.2.8", - "errno 0.3.1", - "error-code", - "ethnum", - "event-listener", - "expect-test", - "eyre", - "fail", - "fallible-iterator", - "fastcrypto 0.1.4 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "fastcrypto-derive 0.1.2 (git+https://github.com/MystenLabs/fastcrypto?rev=27ee552d5c1feb02b6b64b4f77be3c84e82a0469)", - "fastcrypto-zkp", - "fastrand", - "fd-lock", - "fdlimit", - "ff 0.12.1", - "ff 0.13.0", - "fiat-crypto", - "findshlibs", - "fixed-hash", - "fixedbitset 0.2.0", - "fixedbitset 0.4.2", - "flate2", - "float-cmp", - "fnv", - "form_urlencoded", - "fragile", - "fs_extra", - "funty", - "futures", - "futures-channel", - "futures-core", - "futures-executor", - "futures-io", - "futures-lite", - "futures-macro", - "futures-sink", - "futures-task", - "futures-timer", - "futures-util", - "generic-array", - "getrandom 0.1.16", - "getrandom 0.2.9", - "ghash", - "gimli", - "git-version", - "git-version-macro", - "glob", - "globset", - "globwalk", - "gloo-net", - "gloo-timers", - "gloo-utils", - "governor", - "group 0.12.1", - "group 0.13.0", - "guppy", - "guppy-summaries", - "guppy-workspace-hack", - "h2", - "hakari", - "half", - "hashbrown 0.12.3", - "hashbrown 0.13.2", - "hdrhistogram", - "headers", - "headers-core", - "heck 0.3.3", - "heck 0.4.1", - "hex", - "hex-literal", - "hkdf", - "hmac", - "hmac-sha512", - "home", - "http", - "http-body", - "http-range-header", - "httparse", - "httpdate", - "humansize", - "humantime", - "hyper", - "hyper-rustls", - "hyper-timeout", - "iana-time-zone", - "ident_case", - "idna", - "if_chain", - "ignore", - "im", - "impl-codec", - "impl-serde", - "impl-trait-for-tuples", - "include_dir", - "include_dir_macros", - "indenter", - "indexmap", - "indicatif", - "inferno", - "inout", - "inquire", - "insta", - "instant", - "internment", - "io-lifetimes", - "ipnet", - "iri-string", - "is-terminal", - "itertools", - "itoa", - "jemalloc-ctl", - "jemalloc-sys", - "jobserver", - "js-sys", - "jsonrpsee", - "jsonrpsee-client-transport", - "jsonrpsee-core", - "jsonrpsee-http-client", - "jsonrpsee-proc-macros", - "jsonrpsee-server", - "jsonrpsee-types", - "jsonrpsee-wasm-client", - "jsonrpsee-ws-client", - "k256", - "keccak", - "lazy_static 0.2.11", - "lazy_static 1.4.0", - "lazycell", - "leb128", - "lexical-core", - "libc", - "libloading", - "libm", - "librocksdb-sys", - "libtest-mimic", - "libz-sys", - "linked-hash-map", - "linux-raw-sys 0.1.4", - "linux-raw-sys 0.3.6", - "lock_api", - "log", - "lru", - "lz4-sys", - "mach", - "match_opt", - "matchers", - "matchit 0.5.0", - "matchit 0.7.0", - "md-5", - "memchr", - "memmap2", - "memoffset 0.6.5", - "memoffset 0.7.1", - "merlin", - "migrations_internals", - "migrations_macros", - "mime", - "mime_guess", - "minimal-lexical", - "miniz_oxide 0.6.2", - "mio 0.7.14", - "mio 0.8.6", - "mockall", - "mockall_derive", - "more-asserts", - "move-abigen", - "move-binary-format", - "move-borrow-graph", - "move-bytecode-source-map", - "move-bytecode-utils", - "move-bytecode-verifier", - "move-bytecode-viewer", - "move-cli", - "move-command-line-common", - "move-compiler", - "move-core-types", - "move-coverage", - "move-disassembler", - "move-docgen", - "move-errmapgen", - "move-ir-compiler", - "move-ir-to-bytecode", - "move-ir-to-bytecode-syntax", - "move-ir-types", - "move-model", - "move-package", - "move-prover", - "move-prover-boogie-backend", - "move-read-write-set-types", - "move-resource-viewer", - "move-stackless-bytecode", - "move-stackless-bytecode-interpreter", - "move-stdlib", - "move-symbol-pool", - "move-table-extension", - "move-transactional-test-runner", - "move-unit-test", - "move-vm-runtime", - "move-vm-test-utils", - "move-vm-types", - "multiaddr", - "multibase", - "multihash", - "multihash-derive", - "multimap", - "named-lock", - "nested", - "newline-converter", - "nexlint", - "nexlint-lints", - "nibble_vec", - "nix 0.23.2", - "nix 0.24.3", - "no-std-compat", - "nom 5.1.3", - "nom 7.1.3", - "nonzero_ext", - "normalize-line-endings", - "ntapi 0.4.1", - "ntest", - "ntest_test_cases", - "ntest_timeout", - "nu-ansi-term", - "num", - "num-bigint", - "num-bigint-dig", - "num-complex", - "num-format", - "num-integer", - "num-iter", - "num-rational", - "num-traits 0.1.43", - "num-traits 0.2.15", - "num_cpus", - "number_prefix", - "object", - "oid-registry", - "once_cell", - "oorandom", - "opaque-debug", - "openssl-probe", - "ordered-float", - "os_str_bytes", - "ouroboros 0.15.6", - "ouroboros 0.9.5", - "ouroboros_macro 0.15.6", - "ouroboros_macro 0.9.5", - "output_vt100", - "overload", - "owo-colors", - "p256", - "parity-scale-codec", - "parity-scale-codec-derive", - "parking", - "parking_lot 0.11.2", - "parking_lot 0.12.1", - "parking_lot_core 0.8.6", - "parking_lot_core 0.9.7", - "parse-zoneinfo", - "paste", - "pathdiff", - "pbkdf2", - "peeking_take_while", - "pem", - "pem-rfc7468 0.6.0", - "pem-rfc7468 0.7.0", - "percent-encoding", - "pest", - "pest_derive", - "pest_generator", - "pest_meta", - "petgraph 0.5.1", - "petgraph 0.6.3", - "phf", - "phf_codegen", - "phf_generator", - "phf_shared", - "pin-project", - "pin-project-internal", - "pin-project-lite", - "pin-utils", - "pkcs1", - "pkcs8 0.10.2", - "pkcs8 0.9.0", - "pkg-config", - "plotters", - "plotters-backend", - "plotters-svg", - "polyval", - "portable-atomic", - "postgres-protocol", - "postgres-types", - "pprof", - "ppv-lite86", - "pq-sys", - "predicates 2.1.5", - "predicates-core", - "predicates-tree", - "pretty", - "pretty_assertions", - "prettyplease", - "prettytable-rs", - "primeorder", - "primitive-types", - "proc-macro-crate", - "proc-macro-error", - "proc-macro-error-attr", - "proc-macro-hack", - "proc-macro2 0.4.30", - "proc-macro2 1.0.56", - "prometheus", - "proptest", - "proptest-derive", - "prost", - "prost-build", - "prost-derive", - "prost-types", - "protobuf", - "protobuf-src", - "ptree", - "quanta", - "quick-error 1.2.3", - "quick-error 2.0.1", - "quick-xml 0.26.0", - "quinn", - "quinn-proto", - "quinn-udp", - "quote 0.6.13", - "quote 1.0.26", - "r2d2", - "radium", - "radix_trie", - "rand 0.7.3", - "rand 0.8.5", - "rand_chacha 0.2.2", - "rand_chacha 0.3.1", - "rand_core 0.5.1", - "rand_core 0.6.4", - "rand_xorshift", - "rand_xoshiro", - "raw-cpuid", - "rayon", - "rayon-core", - "rcgen", - "read-write-set", - "read-write-set-dynamic", - "readonly", - "ref-cast", - "ref-cast-impl", - "regex", - "regex-automata", - "regex-syntax 0.6.29", - "reqwest", - "retain_mut", - "rfc6979 0.3.1", - "rfc6979 0.4.0", - "rgb", - "ring", - "ripemd", - "roaring", - "rocksdb", - "ron", - "rsa", - "rstest", - "rstest_macros", - "rust-ini", - "rust_decimal", - "rustc-demangle", - "rustc-hash", - "rustc-hex", - "rustc_version", - "rusticata-macros", - "rustix 0.36.13", - "rustix 0.37.18", - "rustls", - "rustls-native-certs", - "rustls-pemfile", - "rustversion", - "rusty-fork", - "rustyline", - "rustyline-derive", - "ryu", - "same-file", - "schannel", - "scheduled-thread-pool", - "schemars", - "schemars_derive", - "scoped-futures", - "scopeguard", - "sct", - "sec1 0.3.0", - "sec1 0.7.2", - "secp256k1", - "secp256k1-sys", - "security-framework", - "security-framework-sys", - "semver 0.11.0", - "semver 1.0.17", - "semver-parser", - "send_wrapper", - "serde 0.8.23", - "serde 1.0.160", - "serde-hjson", - "serde-name", - "serde-reflection", - "serde-value", - "serde_bytes", - "serde_derive", - "serde_derive_internals", - "serde_json", - "serde_path_to_error", - "serde_repr", - "serde_test", - "serde_urlencoded", - "serde_with", - "serde_with_macros", - "serde_yaml", - "sha-1 0.10.1", - "sha-1 0.9.8", - "sha1", - "sha2 0.10.6", - "sha2 0.9.9", - "sha3 0.10.7", - "sha3 0.9.1", - "sharded-slab", - "shell-words", - "shellexpand", - "shlex", - "signal-hook", - "signal-hook-mio", - "signal-hook-registry", - "signature 1.6.4", - "signature 2.1.0", - "similar", - "simplelog", - "siphasher", - "sized-chunks", - "slab", - "slip10_ed25519", - "slug", - "smallvec", - "snap", - "socket2 0.4.9", - "soketto", - "spin", - "spki 0.6.0", - "spki 0.7.1", - "stable_deref_trait", - "static_assertions", - "str-buf", - "str_stack", - "stringprep", - "strip-ansi-escapes", - "strsim 0.10.0", - "strsim 0.8.0", - "structopt", - "structopt-derive", - "strum", - "strum_macros", - "subprocess", - "subtle", - "subtle-ng", - "symbolic-common", - "symbolic-demangle", - "syn 0.15.44", - "syn 1.0.109", - "syn 2.0.15", - "sync_wrapper", - "synstructure", - "sysinfo", - "tabular", - "tap", - "target-lexicon", - "target-spec", - "tempfile", - "tera", - "term", - "termcolor", - "termtree", - "test-fuzz", - "test-fuzz-internal", - "test-fuzz-macro", - "test-fuzz-runtime", - "textwrap 0.11.0", - "textwrap 0.16.0", - "thiserror", - "thiserror-impl", - "thread_local", - "threadpool", - "time 0.1.45", - "time 0.3.20", - "time-core", - "time-macros", - "tint", - "tiny-bip39", - "tinytemplate", - "tinyvec", - "tinyvec_macros", - "tokio", - "tokio-io-timeout", - "tokio-macros 2.1.0", - "tokio-postgres", - "tokio-postgres-rustls", - "tokio-retry", - "tokio-rustls", - "tokio-stream", - "tokio-util 0.7.8", - "toml", - "toml_datetime", - "toml_edit 0.14.4", - "toml_edit 0.15.0", - "tonic", - "tonic-build", - "tonic-health", - "toolchain_find", - "tower", - "tower-http 0.3.5", - "tower-http 0.4.0", - "tower-layer", - "tower-service", - "tracing", - "tracing-appender", - "tracing-attributes", - "tracing-core", - "tracing-futures", - "tracing-serde", - "tracing-subscriber 0.2.25", - "tracing-subscriber 0.3.17", - "try-lock", - "tui", - "twox-hash", - "typed-arena", - "typenum", - "ucd-trie", - "uint", - "unarray", - "uncased", - "unescape", - "unic-char-property", - "unic-char-range", - "unic-common", - "unic-segment", - "unic-ucd-segment", - "unic-ucd-version", - "unicase", - "unicode-bidi", - "unicode-ident", - "unicode-normalization", - "unicode-segmentation", - "unicode-width", - "unicode-xid 0.1.0", - "unicode-xid 0.2.4", - "universal-hash", - "unsigned-varint", - "untrusted", - "unzip-n", - "url", - "utf8parse", - "uuid", - "variant_count", - "vcpkg", - "vec_map", - "version_check", - "versions", - "vte", - "vte_generate_state_changes", - "wait-timeout", - "waker-fn", - "walkdir", - "want", - "wasm-bindgen", - "wasm-bindgen-backend", - "wasm-bindgen-futures", - "wasm-bindgen-macro", - "wasm-bindgen-macro-support", - "wasm-bindgen-shared", - "web-sys", - "webpki", - "webpki-roots", - "which", - "whoami", - "widestring", - "winapi", - "winapi-util", - "windows-sys 0.42.0", - "windows-sys 0.45.0", - "windows-sys 0.48.0", - "windows-targets 0.42.2", - "windows-targets 0.48.0", - "windows_x86_64_msvc 0.42.2", - "windows_x86_64_msvc 0.48.0", - "winreg", - "wyz", - "x509-parser", - "yaml-rust", - "yansi", - "yasna", - "zeroize", - "zeroize_derive", - "zstd-sys", -] - -[[package]] -name = "wyz" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85e60b0d1b5f99db2556934e21937020776a5d31520bf169e851ac44e6420214" - -[[package]] -name = "x509-parser" -version = "0.14.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e0ecbeb7b67ce215e40e3cc7f2ff902f94a223acf44995934763467e7b1febc8" -dependencies = [ - "asn1-rs", - "base64 0.13.1", - "data-encoding", - "der-parser", - "lazy_static 1.4.0", - "nom 7.1.3", - "oid-registry", - "rusticata-macros", - "thiserror", - "time 0.3.20", -] - -[[package]] -name = "xmlparser" -version = "0.13.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4d25c75bf9ea12c4040a97f829154768bbbce366287e2dc044af160cd79a13fd" - -[[package]] -name = "yaml-rust" -version = "0.4.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "56c1936c4cc7a1c9ab21a1ebb602eb942ba868cbd44a99cb7cdc5892335e1c85" -dependencies = [ - "linked-hash-map", -] - -[[package]] -name = "yansi" -version = "0.5.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" - -[[package]] -name = "yasna" -version = "0.5.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e17bb3549cc1321ae1296b9cdc2698e2b6cb1992adfa19a8c72e5b7a738f44cd" -dependencies = [ - "time 0.3.20", -] - -[[package]] -name = "zeroize" -version = "1.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a0956f1ba7c7909bfb66c2e9e4124ab6f6482560f6628b5aaeba39207c9aad9" -dependencies = [ - "zeroize_derive", -] - -[[package]] -name = "zeroize_derive" -version = "1.4.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ce36e65b0d2999d2aafac989fb249189a141aee1f53c612c1f37d72631959f69" -dependencies = [ - "proc-macro2 1.0.56", - "quote 1.0.26", - "syn 2.0.15", -] - -[[package]] -name = "zstd-sys" -version = "2.0.8+zstd.1.5.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5556e6ee25d32df2586c098bbfa278803692a20d0ab9565e049480d52707ec8c" -dependencies = [ - "cc", - "libc", - "pkg-config", -] diff --git a/target_chains/sui/scripts/rust/Cargo.toml b/target_chains/sui/scripts/rust/Cargo.toml deleted file mode 100644 index a6bdc6ac89..0000000000 --- a/target_chains/sui/scripts/rust/Cargo.toml +++ /dev/null @@ -1,28 +0,0 @@ -[package] -name = "monkey" -version = "0.1.0" -edition = "2021" - -# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html - -[dependencies] -sui-sdk = { git = "https://github.com/MystenLabs/sui", branch = "main" } -sui-framework = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-json-rpc = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-transaction-builder = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-json-rpc-types = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-types = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-json = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-core = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-config = { git = "https://github.com/MystenLabs/sui", branch = "main"} -sui-keys = { git = "https://github.com/MystenLabs/sui", branch = "main"} -shared-crypto = { git = "https://github.com/MystenLabs/sui", branch = "main"} -fastcrypto = { git = "https://github.com/MystenLabs/fastcrypto", rev = "84fd7c7428c5f59185aecc56a2e0a006e8e07de1" } - -bcs = "0.1.4" - -dirs = "5.0.0" -anyhow = "1.0.64" -tokio = { version = "1", features = ["full"] } -futures = "0.3.23" -hex = "0.4.3" \ No newline at end of file diff --git a/target_chains/sui/scripts/rust/src/main.rs b/target_chains/sui/scripts/rust/src/main.rs deleted file mode 100644 index cb475fa129..0000000000 --- a/target_chains/sui/scripts/rust/src/main.rs +++ /dev/null @@ -1,153 +0,0 @@ -#![allow(unused_imports)] -#![allow(unused_variables)] -#![allow(dead_code)] - -mod programmable; - -use dirs; -use fastcrypto::{encoding::Base64, hash::HashFunction}; -use futures::StreamExt; -use shared_crypto::intent::Intent; -use std::env; -use std::str::FromStr; -use sui_json::call_args; -use sui_json::type_args; -use sui_json_rpc_types::SuiTransactionBlockEffects; -use sui_json_rpc_types::SuiTypeTag; -use sui_keys::keystore::{AccountKeystore, FileBasedKeystore, Keystore}; -use sui_sdk::json::SuiJsonValue; -use sui_sdk::rpc_types::{ - EventFilter, SuiObjectDataOptions, SuiObjectResponse, SuiTransactionBlockResponseOptions, - SuiTransactionBlockResponseQuery, -}; -use sui_sdk::types::base_types::{ObjectID, SuiAddress}; -use sui_sdk::types::messages::{ - ExecuteTransactionRequestType, GasData, ProgrammableTransaction, Transaction, TransactionData, - TransactionDataV1, TransactionExpiration, TransactionKind, -}; -use sui_sdk::{SuiClient, SuiClientBuilder}; -use sui_types::digests::TransactionDigest; -use sui_types::query::TransactionFilter; - -use crate::programmable::*; - -async fn get_object(sui: &SuiClient, object_id: ObjectID) -> anyhow::Result<()> { - println!("!!! get_single_object:"); - let options = SuiObjectDataOptions { - show_type: false, - show_owner: false, - show_previous_transaction: false, - show_display: false, - show_content: false, - show_bcs: true, - show_storage_rebate: false, - }; - let object = sui - .read_api() - .get_object_with_options(object_id, options) - .await?; - println!("{:#?}", object.data); - println!("======================"); - Ok(()) -} - -#[tokio::main] -async fn main() -> Result<(), anyhow::Error> { - let argv: Vec = env::args().collect(); - - // In Rust, WS and HTTTP endpoints need to be specified separately. - let sui = SuiClientBuilder::default() - //.ws_url("ws://127.0.0.1:9000") // localnet - //.ws_url("wss://fullnode.devnet.sui.io:443") // devnet - .ws_url("wss://fullnode.testnet.sui.io:443") // testnet - //.build("http://127.0.0.1:9000") // localnet - // .build("http://127.0.0.1:3000") // "proxynet" (Run httpproxy/main.go for this to work) - // .build("https://fullnode.devnet.sui.io:443") // devnet - .build("https://fullnode.testnet.sui.io:443") // testnet - .await - .unwrap(); - let my_address1 = - SuiAddress::from_str("0x8c09dd5350d8e1d13d1a36ba4e8cfb5b3382f47d5545455310ef8ec180e76af7")?; - let my_address1_gas_object = - ObjectID::from_str("0x088ed2dbb8cf2c6da083bff5c46c7b55a2c235361cadd63a7bbb01f7ffe2ee20")?; - let my_address2 = - SuiAddress::from_str("0x4ed01b6abcc271a5c7a1e05ee9344d6eb72d0c1f2483a1c600b46d73a22ba764")?; - - if argv.contains(&String::from("--objects")) { - get_owned_objects(&sui, my_address1).await?; - } else { - println!("!!! skipping objects since --objects was not provided"); - } - - if argv.contains(&String::from("--get-object")) { - let some_object = ObjectID::from_str( - "0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8", - )?; - get_object(&sui, some_object).await?; - } else { - println!("!!! skipping get-object since --get-object was not provided"); - } - - if argv.contains(&String::from("--get-transaction")) { - let interesting_transaction = - TransactionDigest::from_str("8iEbjTWv8Hj5WZiTncJm2rMRJoJoQLRtGkDAXX4mBaAF")?; - get_transaction(&sui, interesting_transaction).await?; - } else { - println!("!!! skipping get-transaction since --get-transaction was not provided"); - } - - if argv.contains(&String::from("--my-transactions")) { - query_my_transactions(&sui, my_address1).await?; - } else { - println!("!!! skipping my transactions since --my-transactions was not provided"); - } - - if argv.contains(&String::from("--transfer")) { - make_sui_transfer(&sui, my_address1, my_address1_gas_object, my_address2).await?; - } else { - println!("!!! skipping transfer since --transfer was not provided"); - } - - if argv.contains(&String::from("--events")) { - // This address has called the 8192 game on testnet. - let some_address = SuiAddress::from_str( - "0xdd6dca6d248a48bc6591edce1754ecb78f793c1c963aebc28ed7b26aaea99198", - )?; - query_events(&sui, some_address).await?; - } else { - println!("!!! skipping transfer since --events was not provided"); - } - - if argv.contains(&String::from("--move")) { - call_move_function(&sui).await?; - } else { - println!("!!! skipping move call since --move was not provided"); - } - - if argv.contains(&String::from("--programmable")) { - call_programmable_transaction(&sui).await?; - } else { - println!( - "!!! skipping programmable transaction call since --programmable was not provided" - ); - } - - if argv.contains(&String::from("--subscribe")) { - println!("!!! subscribing to events:"); - let mut subscribe_all = sui - .event_api() - .subscribe_event(EventFilter::All(vec![])) - .await?; - loop { - let next = subscribe_all.next().await; - println!("{:?}", next); - if next.is_none() { - break; - } - } - } else { - println!("!!! skipping subscribing to events since --subscribe was not provided"); - } - - Ok(()) -} diff --git a/target_chains/sui/scripts/tsconfig.json b/target_chains/sui/scripts/tsconfig.json index d7af25b4d8..62217cba65 100644 --- a/target_chains/sui/scripts/tsconfig.json +++ b/target_chains/sui/scripts/tsconfig.json @@ -5,8 +5,8 @@ "lib": ["es2020", "DOM"], "module": "commonjs", "target": "es2020", - "strict": true, "resolveJsonModule": true, - "esModuleInterop": true + "esModuleInterop": true, + "allowJs": true } } diff --git a/target_chains/sui/scripts/yarn.lock b/target_chains/sui/scripts/yarn.lock new file mode 100644 index 0000000000..4633fa4d43 --- /dev/null +++ b/target_chains/sui/scripts/yarn.lock @@ -0,0 +1,3760 @@ +# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. +# yarn lockfile v1 + + +"@apollo/client@^3.5.8": + version "3.7.13" + resolved "https://registry.yarnpkg.com/@apollo/client/-/client-3.7.13.tgz#2cd3508d8030f7cb0c3d357dc3f57b5cf8390c66" + integrity sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ== + dependencies: + "@graphql-typed-document-node/core" "^3.1.1" + "@wry/context" "^0.7.0" + "@wry/equality" "^0.5.0" + "@wry/trie" "^0.3.0" + graphql-tag "^2.12.6" + hoist-non-react-statics "^3.3.2" + optimism "^0.16.2" + prop-types "^15.7.2" + response-iterator "^0.2.6" + symbol-observable "^4.0.0" + ts-invariant "^0.10.3" + tslib "^2.3.0" + zen-observable-ts "^1.2.5" + +"@babel/runtime@7.20.13": + version "7.20.13" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.20.13.tgz#7055ab8a7cff2b8f6058bf6ae45ff84ad2aded4b" + integrity sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA== + dependencies: + regenerator-runtime "^0.13.11" + +"@babel/runtime@^7.12.5", "@babel/runtime@^7.15.4", "@babel/runtime@^7.17.2": + version "7.21.5" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.21.5.tgz#8492dddda9644ae3bda3b45eabe87382caee7200" + integrity sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q== + dependencies: + regenerator-runtime "^0.13.11" + +"@certusone/wormhole-sdk-proto-web@0.0.6": + version "0.0.6" + resolved "https://registry.yarnpkg.com/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz#cd26f724b39e565cde5573e20f0a29e659d146d3" + integrity sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ== + dependencies: + "@improbable-eng/grpc-web" "^0.15.0" + protobufjs "^7.0.0" + rxjs "^7.5.6" + +"@certusone/wormhole-sdk-wasm@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz#05f0c05acba3df5bd025eaa9c7a3d55e017a771f" + integrity sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w== + dependencies: + "@types/long" "^4.0.2" + "@types/node" "^18.0.3" + +"@certusone/wormhole-sdk@^0.9.12": + version "0.9.16" + resolved "https://registry.yarnpkg.com/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.16.tgz#26c84c8ec2f82e975ce5e163a22cb44e01aa707b" + integrity sha512-UFcGvMW6yku0Qz4hyFw0H4IKKlUJ2VHrHo0PnSUOfbBf7RfXHKPE9VxsVeCKILbhBzBmECVVP4xF7WlrBBn8/Q== + dependencies: + "@certusone/wormhole-sdk-proto-web" "0.0.6" + "@certusone/wormhole-sdk-wasm" "^0.0.1" + "@coral-xyz/borsh" "0.2.6" + "@injectivelabs/networks" "1.10.7" + "@injectivelabs/sdk-ts" "1.10.47" + "@injectivelabs/utils" "1.10.5" + "@mysten/sui.js" "0.32.2" + "@project-serum/anchor" "^0.25.0" + "@solana/spl-token" "^0.3.5" + "@solana/web3.js" "^1.66.2" + "@terra-money/terra.js" "^3.1.3" + "@xpla/xpla.js" "^0.2.1" + algosdk "^1.15.0" + aptos "1.5.0" + axios "^0.24.0" + bech32 "^2.0.0" + binary-parser "^2.2.1" + bs58 "^4.0.1" + elliptic "^6.5.4" + js-base64 "^3.6.1" + near-api-js "^1.0.0" + +"@classic-terra/terra.proto@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz#e314d89f59b49e79a04db25f66f658e5e5aa1890" + integrity sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw== + dependencies: + "@improbable-eng/grpc-web" "^0.14.1" + google-protobuf "^3.17.3" + long "^4.0.0" + protobufjs "~6.11.2" + +"@confio/ics23@^0.6.8": + version "0.6.8" + resolved "https://registry.yarnpkg.com/@confio/ics23/-/ics23-0.6.8.tgz#2a6b4f1f2b7b20a35d9a0745bb5a446e72930b3d" + integrity sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w== + dependencies: + "@noble/hashes" "^1.0.0" + protobufjs "^6.8.8" + +"@coral-xyz/anchor@^0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@coral-xyz/anchor/-/anchor-0.26.0.tgz#c8e4f7177e93441afd030f22d777d54d0194d7d1" + integrity sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg== + dependencies: + "@coral-xyz/borsh" "^0.26.0" + "@solana/web3.js" "^1.68.0" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^6.3.0" + cross-fetch "^3.1.5" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + superstruct "^0.15.4" + toml "^3.0.0" + +"@coral-xyz/borsh@0.2.6": + version "0.2.6" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.2.6.tgz#0f11b223bf2967574310705afd3c53ce26688ada" + integrity sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + +"@coral-xyz/borsh@^0.26.0": + version "0.26.0" + resolved "https://registry.yarnpkg.com/@coral-xyz/borsh/-/borsh-0.26.0.tgz#d054f64536d824634969e74138f9f7c52bbbc0d5" + integrity sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + +"@cosmjs/amino@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/amino/-/amino-0.30.1.tgz#7c18c14627361ba6c88e3495700ceea1f76baace" + integrity sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w== + dependencies: + "@cosmjs/crypto" "^0.30.1" + "@cosmjs/encoding" "^0.30.1" + "@cosmjs/math" "^0.30.1" + "@cosmjs/utils" "^0.30.1" + +"@cosmjs/crypto@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/crypto/-/crypto-0.30.1.tgz#21e94d5ca8f8ded16eee1389d2639cb5c43c3eb5" + integrity sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ== + dependencies: + "@cosmjs/encoding" "^0.30.1" + "@cosmjs/math" "^0.30.1" + "@cosmjs/utils" "^0.30.1" + "@noble/hashes" "^1" + bn.js "^5.2.0" + elliptic "^6.5.4" + libsodium-wrappers "^0.7.6" + +"@cosmjs/encoding@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/encoding/-/encoding-0.30.1.tgz#b5c4e0ef7ceb1f2753688eb96400ed70f35c6058" + integrity sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ== + dependencies: + base64-js "^1.3.0" + bech32 "^1.1.4" + readonly-date "^1.0.0" + +"@cosmjs/json-rpc@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz#16f21305fc167598c8a23a45549b85106b2372bc" + integrity sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ== + dependencies: + "@cosmjs/stream" "^0.30.1" + xstream "^11.14.0" + +"@cosmjs/math@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/math/-/math-0.30.1.tgz#8b816ef4de5d3afa66cb9fdfb5df2357a7845b8a" + integrity sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q== + dependencies: + bn.js "^5.2.0" + +"@cosmjs/proto-signing@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz#f0dda372488df9cd2677150b89b3e9c72b3cb713" + integrity sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ== + dependencies: + "@cosmjs/amino" "^0.30.1" + "@cosmjs/crypto" "^0.30.1" + "@cosmjs/encoding" "^0.30.1" + "@cosmjs/math" "^0.30.1" + "@cosmjs/utils" "^0.30.1" + cosmjs-types "^0.7.1" + long "^4.0.0" + +"@cosmjs/socket@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/socket/-/socket-0.30.1.tgz#00b22f4b5e2ab01f4d82ccdb7b2e59536bfe5ce0" + integrity sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow== + dependencies: + "@cosmjs/stream" "^0.30.1" + isomorphic-ws "^4.0.1" + ws "^7" + xstream "^11.14.0" + +"@cosmjs/stargate@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/stargate/-/stargate-0.30.1.tgz#e1b22e1226cffc6e93914a410755f1f61057ba04" + integrity sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog== + dependencies: + "@confio/ics23" "^0.6.8" + "@cosmjs/amino" "^0.30.1" + "@cosmjs/encoding" "^0.30.1" + "@cosmjs/math" "^0.30.1" + "@cosmjs/proto-signing" "^0.30.1" + "@cosmjs/stream" "^0.30.1" + "@cosmjs/tendermint-rpc" "^0.30.1" + "@cosmjs/utils" "^0.30.1" + cosmjs-types "^0.7.1" + long "^4.0.0" + protobufjs "~6.11.3" + xstream "^11.14.0" + +"@cosmjs/stream@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/stream/-/stream-0.30.1.tgz#ba038a2aaf41343696b1e6e759d8e03a9516ec1a" + integrity sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ== + dependencies: + xstream "^11.14.0" + +"@cosmjs/tendermint-rpc@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz#c16378892ba1ac63f72803fdf7567eab9d4f0aa0" + integrity sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ== + dependencies: + "@cosmjs/crypto" "^0.30.1" + "@cosmjs/encoding" "^0.30.1" + "@cosmjs/json-rpc" "^0.30.1" + "@cosmjs/math" "^0.30.1" + "@cosmjs/socket" "^0.30.1" + "@cosmjs/stream" "^0.30.1" + "@cosmjs/utils" "^0.30.1" + axios "^0.21.2" + readonly-date "^1.0.0" + xstream "^11.14.0" + +"@cosmjs/utils@^0.30.1": + version "0.30.1" + resolved "https://registry.yarnpkg.com/@cosmjs/utils/-/utils-0.30.1.tgz#6d92582341be3c2ec8d82090253cfa4b7f959edb" + integrity sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g== + +"@cspotcode/source-map-support@^0.8.0": + version "0.8.1" + resolved "https://registry.yarnpkg.com/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz#00629c35a688e05a88b1cda684fb9d5e73f000a1" + integrity sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw== + dependencies: + "@jridgewell/trace-mapping" "0.3.9" + +"@ethereumjs/common@^2.6.4": + version "2.6.5" + resolved "https://registry.yarnpkg.com/@ethereumjs/common/-/common-2.6.5.tgz#0a75a22a046272579d91919cb12d84f2756e8d30" + integrity sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA== + dependencies: + crc-32 "^1.2.0" + ethereumjs-util "^7.1.5" + +"@ethereumjs/tx@3.5.2": + version "3.5.2" + resolved "https://registry.yarnpkg.com/@ethereumjs/tx/-/tx-3.5.2.tgz#197b9b6299582ad84f9527ca961466fce2296c1c" + integrity sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw== + dependencies: + "@ethereumjs/common" "^2.6.4" + ethereumjs-util "^7.1.5" + +"@ethersproject/abi@5.7.0", "@ethersproject/abi@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abi/-/abi-5.7.0.tgz#b3f3e045bbbeed1af3947335c247ad625a44e449" + integrity sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/abstract-provider@5.7.0", "@ethersproject/abstract-provider@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz#b0a8550f88b6bf9d51f90e4795d48294630cb9ef" + integrity sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + +"@ethersproject/abstract-signer@5.7.0", "@ethersproject/abstract-signer@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz#13f4f32117868452191a4649723cb086d2b596b2" + integrity sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/address@5.7.0", "@ethersproject/address@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/address/-/address-5.7.0.tgz#19b56c4d74a3b0a46bfdbb6cfcc0a153fc697f37" + integrity sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + +"@ethersproject/base64@5.7.0", "@ethersproject/base64@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/base64/-/base64-5.7.0.tgz#ac4ee92aa36c1628173e221d0d01f53692059e1c" + integrity sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + +"@ethersproject/basex@5.7.0", "@ethersproject/basex@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/basex/-/basex-5.7.0.tgz#97034dc7e8938a8ca943ab20f8a5e492ece4020b" + integrity sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + +"@ethersproject/bignumber@5.7.0", "@ethersproject/bignumber@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bignumber/-/bignumber-5.7.0.tgz#e2f03837f268ba655ffba03a57853e18a18dc9c2" + integrity sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + bn.js "^5.2.1" + +"@ethersproject/bytes@5.7.0", "@ethersproject/bytes@^5.6.1", "@ethersproject/bytes@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/bytes/-/bytes-5.7.0.tgz#a00f6ea8d7e7534d6d87f47188af1148d71f155d" + integrity sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/constants@5.7.0", "@ethersproject/constants@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/constants/-/constants-5.7.0.tgz#df80a9705a7e08984161f09014ea012d1c75295e" + integrity sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + +"@ethersproject/contracts@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/contracts/-/contracts-5.7.0.tgz#c305e775abd07e48aa590e1a877ed5c316f8bd1e" + integrity sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg== + dependencies: + "@ethersproject/abi" "^5.7.0" + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + +"@ethersproject/hash@5.7.0", "@ethersproject/hash@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hash/-/hash-5.7.0.tgz#eb7aca84a588508369562e16e514b539ba5240a7" + integrity sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/hdnode@5.7.0", "@ethersproject/hdnode@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/hdnode/-/hdnode-5.7.0.tgz#e627ddc6b466bc77aebf1a6b9e47405ca5aef9cf" + integrity sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/json-wallets@5.7.0", "@ethersproject/json-wallets@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz#5e3355287b548c32b368d91014919ebebddd5360" + integrity sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g== + dependencies: + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/pbkdf2" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + aes-js "3.0.0" + scrypt-js "3.0.1" + +"@ethersproject/keccak256@5.7.0", "@ethersproject/keccak256@^5.6.1", "@ethersproject/keccak256@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/keccak256/-/keccak256-5.7.0.tgz#3186350c6e1cd6aba7940384ec7d6d9db01f335a" + integrity sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + js-sha3 "0.8.0" + +"@ethersproject/logger@5.7.0", "@ethersproject/logger@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/logger/-/logger-5.7.0.tgz#6ce9ae168e74fecf287be17062b590852c311892" + integrity sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig== + +"@ethersproject/networks@5.7.1", "@ethersproject/networks@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/networks/-/networks-5.7.1.tgz#118e1a981d757d45ccea6bb58d9fd3d9db14ead6" + integrity sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/pbkdf2@5.7.0", "@ethersproject/pbkdf2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz#d2267d0a1f6e123f3771007338c47cccd83d3102" + integrity sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + +"@ethersproject/properties@5.7.0", "@ethersproject/properties@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/properties/-/properties-5.7.0.tgz#a6e12cb0439b878aaf470f1902a176033067ed30" + integrity sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw== + dependencies: + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/providers@5.7.2": + version "5.7.2" + resolved "https://registry.yarnpkg.com/@ethersproject/providers/-/providers-5.7.2.tgz#f8b1a4f275d7ce58cf0a2eec222269a08beb18cb" + integrity sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/base64" "^5.7.0" + "@ethersproject/basex" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/networks" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/web" "^5.7.0" + bech32 "1.1.4" + ws "7.4.6" + +"@ethersproject/random@5.7.0", "@ethersproject/random@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/random/-/random-5.7.0.tgz#af19dcbc2484aae078bb03656ec05df66253280c" + integrity sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/rlp@5.7.0", "@ethersproject/rlp@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/rlp/-/rlp-5.7.0.tgz#de39e4d5918b9d74d46de93af80b7685a9c21304" + integrity sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/sha2@5.7.0", "@ethersproject/sha2@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/sha2/-/sha2-5.7.0.tgz#9a5f7a7824ef784f7f7680984e593a800480c9fb" + integrity sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + hash.js "1.1.7" + +"@ethersproject/signing-key@5.7.0", "@ethersproject/signing-key@^5.6.2", "@ethersproject/signing-key@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/signing-key/-/signing-key-5.7.0.tgz#06b2df39411b00bc57c7c09b01d1e41cf1b16ab3" + integrity sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + bn.js "^5.2.1" + elliptic "6.5.4" + hash.js "1.1.7" + +"@ethersproject/solidity@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/solidity/-/solidity-5.7.0.tgz#5e9c911d8a2acce2a5ebb48a5e2e0af20b631cb8" + integrity sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/sha2" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/strings@5.7.0", "@ethersproject/strings@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/strings/-/strings-5.7.0.tgz#54c9d2a7c57ae8f1205c88a9d3a56471e14d5ed2" + integrity sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/transactions@5.7.0", "@ethersproject/transactions@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/transactions/-/transactions-5.7.0.tgz#91318fc24063e057885a6af13fdb703e1f993d3b" + integrity sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ== + dependencies: + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/rlp" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + +"@ethersproject/units@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/units/-/units-5.7.0.tgz#637b563d7e14f42deeee39245275d477aae1d8b1" + integrity sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg== + dependencies: + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/constants" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + +"@ethersproject/wallet@5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wallet/-/wallet-5.7.0.tgz#4e5d0790d96fe21d61d38fb40324e6c7ef350b2d" + integrity sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA== + dependencies: + "@ethersproject/abstract-provider" "^5.7.0" + "@ethersproject/abstract-signer" "^5.7.0" + "@ethersproject/address" "^5.7.0" + "@ethersproject/bignumber" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/hdnode" "^5.7.0" + "@ethersproject/json-wallets" "^5.7.0" + "@ethersproject/keccak256" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/random" "^5.7.0" + "@ethersproject/signing-key" "^5.7.0" + "@ethersproject/transactions" "^5.7.0" + "@ethersproject/wordlists" "^5.7.0" + +"@ethersproject/web@5.7.1", "@ethersproject/web@^5.7.0": + version "5.7.1" + resolved "https://registry.yarnpkg.com/@ethersproject/web/-/web-5.7.1.tgz#de1f285b373149bee5928f4eb7bcb87ee5fbb4ae" + integrity sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w== + dependencies: + "@ethersproject/base64" "^5.7.0" + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@ethersproject/wordlists@5.7.0", "@ethersproject/wordlists@^5.7.0": + version "5.7.0" + resolved "https://registry.yarnpkg.com/@ethersproject/wordlists/-/wordlists-5.7.0.tgz#8fb2c07185d68c3e09eb3bfd6e779ba2774627f5" + integrity sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA== + dependencies: + "@ethersproject/bytes" "^5.7.0" + "@ethersproject/hash" "^5.7.0" + "@ethersproject/logger" "^5.7.0" + "@ethersproject/properties" "^5.7.0" + "@ethersproject/strings" "^5.7.0" + +"@graphql-typed-document-node/core@^3.1.1": + version "3.2.0" + resolved "https://registry.yarnpkg.com/@graphql-typed-document-node/core/-/core-3.2.0.tgz#5f3d96ec6b2354ad6d8a28bf216a1d97b5426861" + integrity sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ== + +"@improbable-eng/grpc-web@^0.14.1": + version "0.14.1" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz#f4662f64dc89c0f956a94bb8a3b576556c74589c" + integrity sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw== + dependencies: + browser-headers "^0.4.1" + +"@improbable-eng/grpc-web@^0.15.0": + version "0.15.0" + resolved "https://registry.yarnpkg.com/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz#3e47e9fdd90381a74abd4b7d26e67422a2a04bef" + integrity sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg== + dependencies: + browser-headers "^0.4.1" + +"@injectivelabs/core-proto-ts@^0.0.12": + version "0.0.12" + resolved "https://registry.yarnpkg.com/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.12.tgz#77dd5e774ed2591f6f41156db33a281a3522c588" + integrity sha512-axdL+KWuv4aORIdYqJQy5k9H+bPsi5Y4KWNcYPxrFQ0FAu+sjpvm5PmbIzBSgv/hnIB2cHcLuKvE3BtEa3vJ/w== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + google-protobuf "^3.14.0" + protobufjs "^7.0.0" + rxjs "^7.4.0" + +"@injectivelabs/exceptions@^1.10.12", "@injectivelabs/exceptions@^1.10.5": + version "1.10.12" + resolved "https://registry.yarnpkg.com/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz#b3855a0a0feb8e4ebe9adb8554e2d1fc934c74d1" + integrity sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + "@injectivelabs/ts-types" "^1.10.12" + http-status-codes "^2.2.0" + link-module-alias "^1.2.0" + shx "^0.3.2" + +"@injectivelabs/grpc-web-node-http-transport@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz#87c9bbd4db1f70cf18d6a55b54b2cf17d3cf30c0" + integrity sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA== + +"@injectivelabs/grpc-web-react-native-transport@^0.0.2": + version "0.0.2" + resolved "https://registry.yarnpkg.com/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz#07601b76bf1f165c7a9b97ee42d0d42b9e2b76fa" + integrity sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow== + +"@injectivelabs/grpc-web@^0.0.1": + version "0.0.1" + resolved "https://registry.yarnpkg.com/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz#24c028f6db50e589e30505efd2077110c8b492ba" + integrity sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw== + dependencies: + browser-headers "^0.4.1" + +"@injectivelabs/indexer-proto-ts@1.10.8-rc.4": + version "1.10.8-rc.4" + resolved "https://registry.yarnpkg.com/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz#ab8424cd713bb5a69ab130b64bf0b3f9f9089946" + integrity sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + google-protobuf "^3.14.0" + protobufjs "^7.0.0" + rxjs "^7.4.0" + +"@injectivelabs/mito-proto-ts@1.0.4": + version "1.0.4" + resolved "https://registry.yarnpkg.com/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.4.tgz#788146b5b0194fb5df91b903fa982a70427194a5" + integrity sha512-8raVmZnaXVbpikMTmnc+OtViBPzgyx2ilezUTZFCNcQzZM01lbJlpd0NbF6K5tG76eJ3Wjwj+YpAdRPNuayZ4A== + dependencies: + "@injectivelabs/grpc-web" "^0.0.1" + google-protobuf "^3.14.0" + protobufjs "^7.0.0" + rxjs "^7.4.0" + +"@injectivelabs/networks@1.10.7": + version "1.10.7" + resolved "https://registry.yarnpkg.com/@injectivelabs/networks/-/networks-1.10.7.tgz#34d16414dd77f49639e579a69bbab1990a0eef9c" + integrity sha512-qnU3A7FgTVi4bGEMaSsSIN2wTBhKZfV+3fiwU09aX8ZNcWAilMx8d/mlE1naZFAHs7Kf5hFBxzgeSRZa1GJqiA== + dependencies: + "@injectivelabs/exceptions" "^1.10.5" + "@injectivelabs/ts-types" "^1.10.4" + "@injectivelabs/utils" "^1.10.5" + link-module-alias "^1.2.0" + shx "^0.3.2" + +"@injectivelabs/networks@^1.10.12", "@injectivelabs/networks@^1.10.7": + version "1.10.12" + resolved "https://registry.yarnpkg.com/@injectivelabs/networks/-/networks-1.10.12.tgz#8c3fcf96a8930c28dcd44d779e1ef31e68ec7b0b" + integrity sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA== + dependencies: + "@injectivelabs/exceptions" "^1.10.12" + "@injectivelabs/ts-types" "^1.10.12" + "@injectivelabs/utils" "^1.10.12" + link-module-alias "^1.2.0" + shx "^0.3.2" + +"@injectivelabs/sdk-ts@1.10.47": + version "1.10.47" + resolved "https://registry.yarnpkg.com/@injectivelabs/sdk-ts/-/sdk-ts-1.10.47.tgz#9f2beca13b005a451551ee5f7c003e7bf92f9a74" + integrity sha512-G11Cdf5iO6is0qWzQRdfiUJLI8IPF4VtD5mVfBwnakrk78syN/Dy492trL7hispDSQaCJaP6a/fa6HnMPCsvzA== + dependencies: + "@apollo/client" "^3.5.8" + "@cosmjs/amino" "^0.30.1" + "@cosmjs/proto-signing" "^0.30.1" + "@cosmjs/stargate" "^0.30.1" + "@ethersproject/bytes" "^5.7.0" + "@injectivelabs/core-proto-ts" "^0.0.12" + "@injectivelabs/exceptions" "^1.10.5" + "@injectivelabs/grpc-web" "^0.0.1" + "@injectivelabs/grpc-web-node-http-transport" "^0.0.2" + "@injectivelabs/grpc-web-react-native-transport" "^0.0.2" + "@injectivelabs/indexer-proto-ts" "1.10.8-rc.4" + "@injectivelabs/mito-proto-ts" "1.0.4" + "@injectivelabs/networks" "^1.10.7" + "@injectivelabs/test-utils" "^1.10.2" + "@injectivelabs/token-metadata" "^1.10.25" + "@injectivelabs/ts-types" "^1.10.4" + "@injectivelabs/utils" "^1.10.5" + "@metamask/eth-sig-util" "^4.0.0" + axios "^0.27.2" + bech32 "^2.0.0" + bip39 "^3.0.4" + cosmjs-types "^0.7.1" + eth-crypto "^2.6.0" + ethereumjs-util "^7.1.4" + ethers "^5.7.2" + google-protobuf "^3.21.0" + graphql "^16.3.0" + http-status-codes "^2.2.0" + js-sha3 "^0.8.0" + jscrypto "^1.0.3" + keccak256 "^1.0.6" + link-module-alias "^1.2.0" + rxjs "^7.8.0" + secp256k1 "^4.0.3" + shx "^0.3.2" + snakecase-keys "^5.4.1" + +"@injectivelabs/test-utils@^1.10.2": + version "1.10.12" + resolved "https://registry.yarnpkg.com/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz#da2234b73547a409d2c21ad4cc0e2eac02894f4f" + integrity sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A== + dependencies: + axios "^0.21.1" + bignumber.js "^9.0.1" + link-module-alias "^1.2.0" + shx "^0.3.2" + snakecase-keys "^5.1.2" + store2 "^2.12.0" + +"@injectivelabs/token-metadata@^1.10.25": + version "1.10.42" + resolved "https://registry.yarnpkg.com/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz#f3576f1f5381be5f0abeb1958b837f087ba0f95b" + integrity sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA== + dependencies: + "@injectivelabs/exceptions" "^1.10.12" + "@injectivelabs/networks" "^1.10.12" + "@injectivelabs/ts-types" "^1.10.12" + "@injectivelabs/utils" "^1.10.12" + "@types/lodash.values" "^4.3.6" + copyfiles "^2.4.1" + jsonschema "^1.4.0" + link-module-alias "^1.2.0" + lodash "^4.17.21" + lodash.values "^4.3.0" + shx "^0.3.2" + +"@injectivelabs/ts-types@^1.10.12", "@injectivelabs/ts-types@^1.10.4": + version "1.10.12" + resolved "https://registry.yarnpkg.com/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz#24c38db74e3536c5a1b5f5e14c4307ffca2ff589" + integrity sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw== + dependencies: + link-module-alias "^1.2.0" + shx "^0.3.2" + +"@injectivelabs/utils@1.10.5": + version "1.10.5" + resolved "https://registry.yarnpkg.com/@injectivelabs/utils/-/utils-1.10.5.tgz#ea3f9f809c64b60f62e419f08b9a5ddb3bc35d7b" + integrity sha512-9t+9xOh8wQWs/kuUrfWjGAJMVbtgwu20AWdDQl5qeoNxstE7uKTM0hJWCn+OhF5WYloZH7kwfqEUSNZ84G/VpA== + dependencies: + "@injectivelabs/exceptions" "^1.10.5" + "@injectivelabs/ts-types" "^1.10.4" + axios "^0.21.1" + bignumber.js "^9.0.1" + http-status-codes "^2.2.0" + link-module-alias "^1.2.0" + shx "^0.3.2" + snakecase-keys "^5.1.2" + store2 "^2.12.0" + +"@injectivelabs/utils@^1.10.12", "@injectivelabs/utils@^1.10.5": + version "1.10.12" + resolved "https://registry.yarnpkg.com/@injectivelabs/utils/-/utils-1.10.12.tgz#063835b25c11182945881e82a2cbad50f6ca10b3" + integrity sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw== + dependencies: + "@injectivelabs/exceptions" "^1.10.12" + "@injectivelabs/ts-types" "^1.10.12" + axios "^0.21.1" + bignumber.js "^9.0.1" + http-status-codes "^2.2.0" + link-module-alias "^1.2.0" + shx "^0.3.2" + snakecase-keys "^5.1.2" + store2 "^2.12.0" + +"@jridgewell/resolve-uri@^3.0.3": + version "3.1.1" + resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz#c08679063f279615a3326583ba3a90d1d82cc721" + integrity sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA== + +"@jridgewell/sourcemap-codec@^1.4.10": + version "1.4.15" + resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz#d7c6e6755c78567a951e04ab52ef0fd26de59f32" + integrity sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg== + +"@jridgewell/trace-mapping@0.3.9": + version "0.3.9" + resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9" + integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ== + dependencies: + "@jridgewell/resolve-uri" "^3.0.3" + "@jridgewell/sourcemap-codec" "^1.4.10" + +"@metamask/eth-sig-util@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz#3ad61f6ea9ad73ba5b19db780d40d9aae5157088" + integrity sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ== + dependencies: + ethereumjs-abi "^0.6.8" + ethereumjs-util "^6.2.1" + ethjs-util "^0.1.6" + tweetnacl "^1.0.3" + tweetnacl-util "^0.15.1" + +"@mysten/bcs@0.7.1", "@mysten/bcs@workspace:*": + version "0.7.1" + resolved "https://registry.yarnpkg.com/@mysten/bcs/-/bcs-0.7.1.tgz#e8db25718143e2a15688ea858470970b743f7248" + integrity sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA== + dependencies: + bs58 "^5.0.0" + +"@mysten/sui.js@0.32.2", "@mysten/sui.js@^0.32.2": + version "0.32.2" + resolved "https://registry.yarnpkg.com/@mysten/sui.js/-/sui.js-0.32.2.tgz#dff953a336c787465af181d8158f34a65700a74f" + integrity sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A== + dependencies: + "@mysten/bcs" "0.7.1" + "@noble/curves" "^1.0.0" + "@noble/hashes" "^1.3.0" + "@scure/bip32" "^1.3.0" + "@scure/bip39" "^1.2.0" + "@suchipi/femver" "^1.0.0" + jayson "^4.0.0" + rpc-websockets "^7.5.1" + superstruct "^1.0.3" + tweetnacl "^1.0.3" + +"@noble/curves@^1.0.0", "@noble/curves@~1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@noble/curves/-/curves-1.0.0.tgz#e40be8c7daf088aaf291887cbc73f43464a92932" + integrity sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw== + dependencies: + "@noble/hashes" "1.3.0" + +"@noble/ed25519@^1.7.0": + version "1.7.3" + resolved "https://registry.yarnpkg.com/@noble/ed25519/-/ed25519-1.7.3.tgz#57e1677bf6885354b466c38e2b620c62f45a7123" + integrity sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ== + +"@noble/hashes@1.1.3": + version "1.1.3" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.3.tgz#360afc77610e0a61f3417e497dcf36862e4f8111" + integrity sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A== + +"@noble/hashes@1.3.0", "@noble/hashes@^1", "@noble/hashes@^1.0.0", "@noble/hashes@^1.1.2", "@noble/hashes@^1.2.0", "@noble/hashes@^1.3.0", "@noble/hashes@~1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.3.0.tgz#085fd70f6d7d9d109671090ccae1d3bec62554a1" + integrity sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg== + +"@noble/hashes@~1.1.1": + version "1.1.5" + resolved "https://registry.yarnpkg.com/@noble/hashes/-/hashes-1.1.5.tgz#1a0377f3b9020efe2fae03290bd2a12140c95c11" + integrity sha512-LTMZiiLc+V4v1Yi16TD6aX2gmtKszNye0pQgbaLqkvhIqP7nVsSaJsWloGQjJfJ8offaoP5GtX3yY5swbcJxxQ== + +"@noble/secp256k1@^1.6.3": + version "1.7.1" + resolved "https://registry.yarnpkg.com/@noble/secp256k1/-/secp256k1-1.7.1.tgz#b251c70f824ce3ca7f8dc3df08d58f005cc0507c" + integrity sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw== + +"@optke3/sui.js@0.33.0": + version "0.33.0" + resolved "https://registry.yarnpkg.com/@optke3/sui.js/-/sui.js-0.33.0.tgz#92fcf71cdd1a08f743f7b155d91a176c528b8efc" + integrity sha512-drVi0X2UPoA1NuhtUSUNwAmbx8BlG/qnX+0dqoBZkXjSemMmpS47Sfw+ad3TIG22z4nI8MLYng40N9tXqQ8UAw== + dependencies: + "@mysten/bcs" "workspace:*" + "@noble/curves" "^1.0.0" + "@noble/hashes" "^1.3.0" + "@scure/bip32" "^1.3.0" + "@scure/bip39" "^1.2.0" + "@suchipi/femver" "^1.0.0" + jayson "^4.0.0" + rpc-websockets "^7.5.1" + superstruct "^1.0.3" + tweetnacl "^1.0.3" + +"@project-serum/anchor@^0.25.0": + version "0.25.0" + resolved "https://registry.yarnpkg.com/@project-serum/anchor/-/anchor-0.25.0.tgz#88ee4843336005cf5a64c80636ce626f0996f503" + integrity sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A== + dependencies: + "@project-serum/borsh" "^0.2.5" + "@solana/web3.js" "^1.36.0" + base64-js "^1.5.1" + bn.js "^5.1.2" + bs58 "^4.0.1" + buffer-layout "^1.2.2" + camelcase "^5.3.1" + cross-fetch "^3.1.5" + crypto-hash "^1.3.0" + eventemitter3 "^4.0.7" + js-sha256 "^0.9.0" + pako "^2.0.3" + snake-case "^3.0.4" + superstruct "^0.15.4" + toml "^3.0.0" + +"@project-serum/borsh@^0.2.5": + version "0.2.5" + resolved "https://registry.yarnpkg.com/@project-serum/borsh/-/borsh-0.2.5.tgz#6059287aa624ecebbfc0edd35e4c28ff987d8663" + integrity sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q== + dependencies: + bn.js "^5.1.2" + buffer-layout "^1.2.0" + +"@protobufjs/aspromise@^1.1.1", "@protobufjs/aspromise@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/aspromise/-/aspromise-1.1.2.tgz#9b8b0cc663d669a7d8f6f5d0893a14d348f30fbf" + integrity sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ== + +"@protobufjs/base64@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/base64/-/base64-1.1.2.tgz#4c85730e59b9a1f1f349047dbf24296034bb2735" + integrity sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg== + +"@protobufjs/codegen@^2.0.4": + version "2.0.4" + resolved "https://registry.yarnpkg.com/@protobufjs/codegen/-/codegen-2.0.4.tgz#7ef37f0d010fb028ad1ad59722e506d9262815cb" + integrity sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg== + +"@protobufjs/eventemitter@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz#355cbc98bafad5978f9ed095f397621f1d066b70" + integrity sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q== + +"@protobufjs/fetch@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/fetch/-/fetch-1.1.0.tgz#ba99fb598614af65700c1619ff06d454b0d84c45" + integrity sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ== + dependencies: + "@protobufjs/aspromise" "^1.1.1" + "@protobufjs/inquire" "^1.1.0" + +"@protobufjs/float@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@protobufjs/float/-/float-1.0.2.tgz#5e9e1abdcb73fc0a7cb8b291df78c8cbd97b87d1" + integrity sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ== + +"@protobufjs/inquire@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/inquire/-/inquire-1.1.0.tgz#ff200e3e7cf2429e2dcafc1140828e8cc638f089" + integrity sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q== + +"@protobufjs/path@^1.1.2": + version "1.1.2" + resolved "https://registry.yarnpkg.com/@protobufjs/path/-/path-1.1.2.tgz#6cc2b20c5c9ad6ad0dccfd21ca7673d8d7fbf68d" + integrity sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA== + +"@protobufjs/pool@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/pool/-/pool-1.1.0.tgz#09fd15f2d6d3abfa9b65bc366506d6ad7846ff54" + integrity sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw== + +"@protobufjs/utf8@^1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@protobufjs/utf8/-/utf8-1.1.0.tgz#a777360b5b39a1a2e5106f8e858f2fd2d060c570" + integrity sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw== + +"@pythnetwork/client@^2.17.0": + version "2.17.0" + resolved "https://registry.yarnpkg.com/@pythnetwork/client/-/client-2.17.0.tgz#b155af06958f4b729bfee1c07130c556598cf168" + integrity sha512-hv285vehmLH6N762Z4jqvPTM+hCYnXQaUp6DMgLUpDHvE0mTbwW9PvlxYoUJZGtyeCDkgn9HrTWXPtnaXTRr+Q== + dependencies: + "@coral-xyz/anchor" "^0.26.0" + "@coral-xyz/borsh" "^0.26.0" + buffer "^6.0.1" + +"@pythnetwork/price-service-client@^1.4.0": + version "1.4.1" + resolved "https://registry.yarnpkg.com/@pythnetwork/price-service-client/-/price-service-client-1.4.1.tgz#518087cf2ceb418c67b4329feaa58e332d47abce" + integrity sha512-yD+Vvh/SlqoCCBt7W6oMG0WYatofWmhh9odihWOUEZzLp2a1Vn3IGd1Kcn9P/57h6So60yVzYrRzEMMfi/jvMQ== + dependencies: + "@pythnetwork/price-service-sdk" "*" + "@types/ws" "^8.5.3" + axios "=1.1.0" + axios-retry "~3.3.0" + isomorphic-ws "^4.0.1" + ts-log "^2.2.4" + ws "^8.6.0" + +"@pythnetwork/price-service-sdk@*", "@pythnetwork/price-service-sdk@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@pythnetwork/price-service-sdk/-/price-service-sdk-1.2.0.tgz#c53a189f428577f94b2b2ea9bdce232e4b45e453" + integrity sha512-h4HcUwBPFEZwa5nLMTz9YnwdLE5m+Bfctzqbj09vpSJo2DyPHCyEXScFUuizWBbfofxB/pF+OnZXjU3pJxtm/w== + +"@scure/base@~1.1.0": + version "1.1.1" + resolved "https://registry.yarnpkg.com/@scure/base/-/base-1.1.1.tgz#ebb651ee52ff84f420097055f4bf46cfba403938" + integrity sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA== + +"@scure/bip32@^1.3.0": + version "1.3.0" + resolved "https://registry.yarnpkg.com/@scure/bip32/-/bip32-1.3.0.tgz#6c8d980ef3f290987736acd0ee2e0f0d50068d87" + integrity sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q== + dependencies: + "@noble/curves" "~1.0.0" + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + +"@scure/bip39@1.1.0": + version "1.1.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.1.0.tgz#92f11d095bae025f166bef3defcc5bf4945d419a" + integrity sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w== + dependencies: + "@noble/hashes" "~1.1.1" + "@scure/base" "~1.1.0" + +"@scure/bip39@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@scure/bip39/-/bip39-1.2.0.tgz#a207e2ef96de354de7d0002292ba1503538fc77b" + integrity sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg== + dependencies: + "@noble/hashes" "~1.3.0" + "@scure/base" "~1.1.0" + +"@solana/buffer-layout-utils@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz#b45a6cab3293a2eb7597cceb474f229889d875ca" + integrity sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/web3.js" "^1.32.0" + bigint-buffer "^1.1.5" + bignumber.js "^9.0.1" + +"@solana/buffer-layout@^4.0.0": + version "4.0.1" + resolved "https://registry.yarnpkg.com/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz#b996235eaec15b1e0b5092a8ed6028df77fa6c15" + integrity sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA== + dependencies: + buffer "~6.0.3" + +"@solana/spl-token@^0.3.5": + version "0.3.7" + resolved "https://registry.yarnpkg.com/@solana/spl-token/-/spl-token-0.3.7.tgz#6f027f9ad8e841f792c32e50920d9d2e714fc8da" + integrity sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg== + dependencies: + "@solana/buffer-layout" "^4.0.0" + "@solana/buffer-layout-utils" "^0.2.0" + buffer "^6.0.3" + +"@solana/web3.js@^1.32.0", "@solana/web3.js@^1.36.0", "@solana/web3.js@^1.66.2", "@solana/web3.js@^1.68.0": + version "1.75.0" + resolved "https://registry.yarnpkg.com/@solana/web3.js/-/web3.js-1.75.0.tgz#824c6f78865007bca758ca18f268d6f7363b42e5" + integrity sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg== + dependencies: + "@babel/runtime" "^7.12.5" + "@noble/ed25519" "^1.7.0" + "@noble/hashes" "^1.1.2" + "@noble/secp256k1" "^1.6.3" + "@solana/buffer-layout" "^4.0.0" + agentkeepalive "^4.2.1" + bigint-buffer "^1.1.5" + bn.js "^5.0.0" + borsh "^0.7.0" + bs58 "^4.0.1" + buffer "6.0.3" + fast-stable-stringify "^1.0.0" + jayson "^3.4.4" + node-fetch "^2.6.7" + rpc-websockets "^7.5.1" + superstruct "^0.14.2" + +"@suchipi/femver@^1.0.0": + version "1.0.0" + resolved "https://registry.yarnpkg.com/@suchipi/femver/-/femver-1.0.0.tgz#4909dcc069695e07bd23a64c4bfe411d11d9692f" + integrity sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg== + +"@terra-money/legacy.proto@npm:@terra-money/terra.proto@^0.1.7": + version "0.1.7" + resolved "https://registry.yarnpkg.com/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz#59c18f30da10d43200bab3ba8feb5b17e43a365f" + integrity sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ== + dependencies: + google-protobuf "^3.17.3" + long "^4.0.0" + protobufjs "~6.11.2" + +"@terra-money/terra.js@^3.1.3": + version "3.1.8" + resolved "https://registry.yarnpkg.com/@terra-money/terra.js/-/terra.js-3.1.8.tgz#71525703cb04d863c549e13fc56cc81e508e85f0" + integrity sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw== + dependencies: + "@classic-terra/terra.proto" "^1.1.0" + "@terra-money/terra.proto" "^2.1.0" + axios "^0.27.2" + bech32 "^2.0.0" + bip32 "^2.0.6" + bip39 "^3.0.3" + bufferutil "^4.0.3" + decimal.js "^10.2.1" + jscrypto "^1.0.1" + readable-stream "^3.6.0" + secp256k1 "^4.0.2" + tmp "^0.2.1" + utf-8-validate "^5.0.5" + ws "^7.5.9" + +"@terra-money/terra.proto@^2.1.0": + version "2.1.0" + resolved "https://registry.yarnpkg.com/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz#5a2ed85fc8146a346d6095adfc5d205b6fb6d387" + integrity sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw== + dependencies: + "@improbable-eng/grpc-web" "^0.14.1" + google-protobuf "^3.17.3" + long "^4.0.0" + protobufjs "~6.11.2" + +"@tsconfig/node10@^1.0.7": + version "1.0.9" + resolved "https://registry.yarnpkg.com/@tsconfig/node10/-/node10-1.0.9.tgz#df4907fc07a886922637b15e02d4cebc4c0021b2" + integrity sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA== + +"@tsconfig/node12@^1.0.7": + version "1.0.11" + resolved "https://registry.yarnpkg.com/@tsconfig/node12/-/node12-1.0.11.tgz#ee3def1f27d9ed66dac6e46a295cffb0152e058d" + integrity sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag== + +"@tsconfig/node14@^1.0.0": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node14/-/node14-1.0.3.tgz#e4386316284f00b98435bf40f72f75a09dabf6c1" + integrity sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow== + +"@tsconfig/node16@^1.0.2": + version "1.0.3" + resolved "https://registry.yarnpkg.com/@tsconfig/node16/-/node16-1.0.3.tgz#472eaab5f15c1ffdd7f8628bd4c4f753995ec79e" + integrity sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ== + +"@types/bn.js@5.1.1", "@types/bn.js@^5.1.0": + version "5.1.1" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-5.1.1.tgz#b51e1b55920a4ca26e9285ff79936bbdec910682" + integrity sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g== + dependencies: + "@types/node" "*" + +"@types/bn.js@^4.11.3": + version "4.11.6" + resolved "https://registry.yarnpkg.com/@types/bn.js/-/bn.js-4.11.6.tgz#c306c70d9358aaea33cd4eda092a742b9505967c" + integrity sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg== + dependencies: + "@types/node" "*" + +"@types/chai@^4.3.4": + version "4.3.5" + resolved "https://registry.yarnpkg.com/@types/chai/-/chai-4.3.5.tgz#ae69bcbb1bebb68c4ac0b11e9d8ed04526b3562b" + integrity sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng== + +"@types/connect@^3.4.33": + version "3.4.35" + resolved "https://registry.yarnpkg.com/@types/connect/-/connect-3.4.35.tgz#5fcf6ae445e4021d1fc2219a4873cc73a3bb2ad1" + integrity sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ== + dependencies: + "@types/node" "*" + +"@types/json5@^0.0.29": + version "0.0.29" + resolved "https://registry.yarnpkg.com/@types/json5/-/json5-0.0.29.tgz#ee28707ae94e11d2b827bcbe5270bcea7f3e71ee" + integrity sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ== + +"@types/lodash.values@^4.3.6": + version "4.3.7" + resolved "https://registry.yarnpkg.com/@types/lodash.values/-/lodash.values-4.3.7.tgz#9da9c6cf5941ff8b8f98bde9cb9f2cf7fd64eceb" + integrity sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA== + dependencies: + "@types/lodash" "*" + +"@types/lodash@*": + version "4.14.194" + resolved "https://registry.yarnpkg.com/@types/lodash/-/lodash-4.14.194.tgz#b71eb6f7a0ff11bff59fc987134a093029258a76" + integrity sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g== + +"@types/long@^4.0.1", "@types/long@^4.0.2": + version "4.0.2" + resolved "https://registry.yarnpkg.com/@types/long/-/long-4.0.2.tgz#b74129719fc8d11c01868010082d483b7545591a" + integrity sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA== + +"@types/mocha@^10.0.1": + version "10.0.1" + resolved "https://registry.yarnpkg.com/@types/mocha/-/mocha-10.0.1.tgz#2f4f65bb08bc368ac39c96da7b2f09140b26851b" + integrity sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q== + +"@types/node@*", "@types/node@>=13.7.0", "@types/node@^18.0.3", "@types/node@^18.16.3": + version "18.16.3" + resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.3.tgz#6bda7819aae6ea0b386ebc5b24bdf602f1b42b01" + integrity sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q== + +"@types/node@10.12.18": + version "10.12.18" + resolved "https://registry.yarnpkg.com/@types/node/-/node-10.12.18.tgz#1d3ca764718915584fcd9f6344621b7672665c67" + integrity sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ== + +"@types/node@^12.12.54": + version "12.20.55" + resolved "https://registry.yarnpkg.com/@types/node/-/node-12.20.55.tgz#c329cbd434c42164f846b909bd6f85b5537f6240" + integrity sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ== + +"@types/pbkdf2@^3.0.0": + version "3.1.0" + resolved "https://registry.yarnpkg.com/@types/pbkdf2/-/pbkdf2-3.1.0.tgz#039a0e9b67da0cdc4ee5dab865caa6b267bb66b1" + integrity sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ== + dependencies: + "@types/node" "*" + +"@types/secp256k1@^4.0.1": + version "4.0.3" + resolved "https://registry.yarnpkg.com/@types/secp256k1/-/secp256k1-4.0.3.tgz#1b8e55d8e00f08ee7220b4d59a6abe89c37a901c" + integrity sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w== + dependencies: + "@types/node" "*" + +"@types/ws@^7.4.4": + version "7.4.7" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-7.4.7.tgz#f7c390a36f7a0679aa69de2d501319f4f8d9b702" + integrity sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww== + dependencies: + "@types/node" "*" + +"@types/ws@^8.5.3": + version "8.5.4" + resolved "https://registry.yarnpkg.com/@types/ws/-/ws-8.5.4.tgz#bb10e36116d6e570dd943735f86c933c1587b8a5" + integrity sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg== + dependencies: + "@types/node" "*" + +"@wry/context@^0.7.0": + version "0.7.0" + resolved "https://registry.yarnpkg.com/@wry/context/-/context-0.7.0.tgz#be88e22c0ddf62aeb0ae9f95c3d90932c619a5c8" + integrity sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ== + dependencies: + tslib "^2.3.0" + +"@wry/equality@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@wry/equality/-/equality-0.5.3.tgz#fafebc69561aa2d40340da89fa7dc4b1f6fb7831" + integrity sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g== + dependencies: + tslib "^2.3.0" + +"@wry/trie@^0.3.0": + version "0.3.2" + resolved "https://registry.yarnpkg.com/@wry/trie/-/trie-0.3.2.tgz#a06f235dc184bd26396ba456711f69f8c35097e6" + integrity sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ== + dependencies: + tslib "^2.3.0" + +"@xpla/xpla.js@^0.2.1": + version "0.2.3" + resolved "https://registry.yarnpkg.com/@xpla/xpla.js/-/xpla.js-0.2.3.tgz#c614d98e599fe03f9edc425f50f66481983e8dac" + integrity sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA== + dependencies: + "@ethersproject/bytes" "^5.6.1" + "@ethersproject/keccak256" "^5.6.1" + "@ethersproject/signing-key" "^5.6.2" + "@terra-money/legacy.proto" "npm:@terra-money/terra.proto@^0.1.7" + "@terra-money/terra.proto" "^2.1.0" + axios "^0.26.1" + bech32 "^2.0.0" + bip32 "^2.0.6" + bip39 "^3.0.3" + bufferutil "^4.0.3" + crypto-addr-codec "^0.1.7" + decimal.js "^10.2.1" + elliptic "^6.5.4" + ethereumjs-util "^7.1.5" + jscrypto "^1.0.1" + readable-stream "^3.6.0" + secp256k1 "^4.0.2" + tmp "^0.2.1" + utf-8-validate "^5.0.5" + ws "^7.5.8" + +JSONStream@^1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/JSONStream/-/JSONStream-1.3.5.tgz#3208c1f08d3a4d99261ab64f92302bc15e111ca0" + integrity sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ== + dependencies: + jsonparse "^1.2.0" + through ">=2.2.7 <3" + +acorn-walk@^8.1.1: + version "8.2.0" + resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" + integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== + +acorn@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.1.1.tgz#e35668de0b402f359de515c5482a1ab9f89a69bf" + integrity sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg== + +acorn@^8.4.1: + version "8.8.2" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a" + integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw== + +aes-js@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/aes-js/-/aes-js-3.0.0.tgz#e21df10ad6c2053295bcbb8dab40b09dbea87e4d" + integrity sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw== + +agentkeepalive@^4.2.1: + version "4.3.0" + resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.3.0.tgz#bb999ff07412653c1803b3ced35e50729830a255" + integrity sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg== + dependencies: + debug "^4.1.0" + depd "^2.0.0" + humanize-ms "^1.2.1" + +algo-msgpack-with-bigint@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz#38bb717220525b3ff42232eefdcd9efb9ad405d6" + integrity sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ== + +algosdk@^1.15.0: + version "1.24.1" + resolved "https://registry.yarnpkg.com/algosdk/-/algosdk-1.24.1.tgz#afc4102457ae0c38a32de6b84f4d713aedfc9e89" + integrity sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww== + dependencies: + algo-msgpack-with-bigint "^2.1.1" + buffer "^6.0.2" + cross-fetch "^3.1.5" + hi-base32 "^0.5.1" + js-sha256 "^0.9.0" + js-sha3 "^0.8.0" + js-sha512 "^0.8.0" + json-bigint "^1.0.0" + tweetnacl "^1.0.3" + vlq "^2.0.4" + +ansi-colors@4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.1.tgz#cbb9ae256bf750af1eab344f229aa27fe94ba348" + integrity sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA== + +ansi-regex@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" + integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== + +ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== + dependencies: + color-convert "^1.9.0" + +ansi-styles@^4.0.0, ansi-styles@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" + integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== + dependencies: + color-convert "^2.0.1" + +anymatch@~3.1.2: + version "3.1.3" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-3.1.3.tgz#790c58b19ba1720a84205b57c618d5ad8524973e" + integrity sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw== + dependencies: + normalize-path "^3.0.0" + picomatch "^2.0.4" + +aptos@1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/aptos/-/aptos-1.5.0.tgz#43263b13c878d2497d875d50aaee10355932c2e6" + integrity sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g== + dependencies: + "@noble/hashes" "1.1.3" + "@scure/bip39" "1.1.0" + axios "0.27.2" + form-data "4.0.0" + tweetnacl "1.0.3" + +arg@^4.1.0: + version "4.1.3" + resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089" + integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA== + +argparse@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-2.0.1.tgz#246f50f3ca78a3240f6c997e8a9bd1eac49e4b38" + integrity sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q== + +arrify@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + integrity sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA== + +assertion-error@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/assertion-error/-/assertion-error-1.1.0.tgz#e60b6b0e8f301bd97e5375215bda406c85118c0b" + integrity sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw== + +asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + integrity sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q== + +axios-retry@~3.3.0: + version "3.3.1" + resolved "https://registry.yarnpkg.com/axios-retry/-/axios-retry-3.3.1.tgz#47624646138aedefbad2ac32f226f4ee94b6dcab" + integrity sha512-RohAUQTDxBSWLFEnoIG/6bvmy8l3TfpkclgStjl5MDCMBDgapAWCmr1r/9harQfWC8bzLC8job6UcL1A1Yc+/Q== + dependencies: + "@babel/runtime" "^7.15.4" + is-retry-allowed "^2.2.0" + +axios@0.27.2, axios@^0.27.2: + version "0.27.2" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972" + integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ== + dependencies: + follow-redirects "^1.14.9" + form-data "^4.0.0" + +axios@=1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.0.tgz#94d25e6524743c7fc33954dd536687bbb957793a" + integrity sha512-hsJgcqz4JY7f+HZ4cWTrPZ6tZNCNFPTRx1MjRqu/hbpgpHdSCUpLVuplc+jE/h7dOvyANtw/ERA3HC2Rz/QoMg== + dependencies: + follow-redirects "^1.15.0" + form-data "^4.0.0" + proxy-from-env "^1.1.0" + +axios@^0.21.1, axios@^0.21.2: + version "0.21.4" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" + integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== + dependencies: + follow-redirects "^1.14.0" + +axios@^0.24.0: + version "0.24.0" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.24.0.tgz#804e6fa1e4b9c5288501dd9dff56a7a0940d20d6" + integrity sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA== + dependencies: + follow-redirects "^1.14.4" + +axios@^0.26.1: + version "0.26.1" + resolved "https://registry.yarnpkg.com/axios/-/axios-0.26.1.tgz#1ede41c51fcf51bbbd6fd43669caaa4f0495aaa9" + integrity sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA== + dependencies: + follow-redirects "^1.14.8" + +balanced-match@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" + integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== + +base-x@^3.0.2, base-x@^3.0.8: + version "3.0.9" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-3.0.9.tgz#6349aaabb58526332de9f60995e548a53fe21320" + integrity sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ== + dependencies: + safe-buffer "^5.0.1" + +base-x@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/base-x/-/base-x-4.0.0.tgz#d0e3b7753450c73f8ad2389b5c018a4af7b2224a" + integrity sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw== + +base64-js@^1.3.0, base64-js@^1.3.1, base64-js@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" + integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== + +bech32@1.1.4, bech32@^1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-1.1.4.tgz#e38c9f37bf179b8eb16ae3a772b40c356d4832e9" + integrity sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ== + +bech32@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/bech32/-/bech32-2.0.0.tgz#078d3686535075c8c79709f054b1b226a133b355" + integrity sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg== + +big-integer@1.6.36: + version "1.6.36" + resolved "https://registry.yarnpkg.com/big-integer/-/big-integer-1.6.36.tgz#78631076265d4ae3555c04f85e7d9d2f3a071a36" + integrity sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg== + +bigint-buffer@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bigint-buffer/-/bigint-buffer-1.1.5.tgz#d038f31c8e4534c1f8d0015209bf34b4fa6dd442" + integrity sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA== + dependencies: + bindings "^1.3.0" + +bignumber.js@^9.0.0, bignumber.js@^9.0.1: + version "9.1.1" + resolved "https://registry.yarnpkg.com/bignumber.js/-/bignumber.js-9.1.1.tgz#c4df7dc496bd849d4c9464344c1aa74228b4dac6" + integrity sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig== + +binary-extensions@^2.0.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d" + integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA== + +binary-parser@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/binary-parser/-/binary-parser-2.2.1.tgz#4edc6da2dc56db73fa5ba450dfe6382ede8294ce" + integrity sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA== + +bindings@^1.3.0, bindings@^1.5.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/bindings/-/bindings-1.5.0.tgz#10353c9e945334bc0511a6d90b38fbc7c9c504df" + integrity sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ== + dependencies: + file-uri-to-path "1.0.0" + +bip32@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/bip32/-/bip32-2.0.6.tgz#6a81d9f98c4cd57d05150c60d8f9e75121635134" + integrity sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA== + dependencies: + "@types/node" "10.12.18" + bs58check "^2.1.1" + create-hash "^1.2.0" + create-hmac "^1.1.7" + tiny-secp256k1 "^1.1.3" + typeforce "^1.11.5" + wif "^2.0.6" + +bip39@^3.0.3, bip39@^3.0.4: + version "3.1.0" + resolved "https://registry.yarnpkg.com/bip39/-/bip39-3.1.0.tgz#c55a418deaf48826a6ceb34ac55b3ee1577e18a3" + integrity sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A== + dependencies: + "@noble/hashes" "^1.2.0" + +bip66@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/bip66/-/bip66-1.1.5.tgz#01fa8748785ca70955d5011217d1b3139969ca22" + integrity sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw== + dependencies: + safe-buffer "^5.0.1" + +blakejs@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/blakejs/-/blakejs-1.2.1.tgz#5057e4206eadb4a97f7c0b6e197a505042fc3814" + integrity sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ== + +bn.js@5.2.1, bn.js@^5.0.0, bn.js@^5.1.2, bn.js@^5.2.0, bn.js@^5.2.1: + version "5.2.1" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.2.1.tgz#0bc527a6a0d18d0aa8d5b0538ce4a77dccfa7b70" + integrity sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ== + +bn.js@^4.11.0, bn.js@^4.11.8, bn.js@^4.11.9: + version "4.12.0" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.12.0.tgz#775b3f278efbb9718eec7361f483fb36fbbfea88" + integrity sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA== + +borsh@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/borsh/-/borsh-0.7.0.tgz#6e9560d719d86d90dc589bca60ffc8a6c51fec2a" + integrity sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA== + dependencies: + bn.js "^5.2.0" + bs58 "^4.0.0" + text-encoding-utf-8 "^1.0.2" + +brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA== + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + +brace-expansion@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" + integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== + dependencies: + balanced-match "^1.0.0" + +braces@~3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" + integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A== + dependencies: + fill-range "^7.0.1" + +brorand@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + integrity sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w== + +browser-headers@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/browser-headers/-/browser-headers-0.4.1.tgz#4308a7ad3b240f4203dbb45acedb38dc2d65dd02" + integrity sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg== + +browser-stdout@1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/browser-stdout/-/browser-stdout-1.3.1.tgz#baa559ee14ced73452229bad7326467c61fabd60" + integrity sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw== + +browserify-aes@^1.0.6, browserify-aes@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + integrity sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA== + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + +bs58@^4.0.0, bs58@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-4.0.1.tgz#be161e76c354f6f788ae4071f63f34e8c4f0a42a" + integrity sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw== + dependencies: + base-x "^3.0.2" + +bs58@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/bs58/-/bs58-5.0.0.tgz#865575b4d13c09ea2a84622df6c8cbeb54ffc279" + integrity sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ== + dependencies: + base-x "^4.0.0" + +bs58check@<3.0.0, bs58check@^2.1.1, bs58check@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/bs58check/-/bs58check-2.1.2.tgz#53b018291228d82a5aa08e7d796fdafda54aebfc" + integrity sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA== + dependencies: + bs58 "^4.0.0" + create-hash "^1.1.0" + safe-buffer "^5.1.2" + +buffer-from@^1.0.0, buffer-from@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" + integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== + +buffer-layout@^1.2.0, buffer-layout@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/buffer-layout/-/buffer-layout-1.2.2.tgz#b9814e7c7235783085f9ca4966a0cfff112259d5" + integrity sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA== + +buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + integrity sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ== + +buffer@6.0.3, buffer@^6.0.1, buffer@^6.0.2, buffer@^6.0.3, buffer@~6.0.3: + version "6.0.3" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6" + integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA== + dependencies: + base64-js "^1.3.1" + ieee754 "^1.2.1" + +bufferutil@^4.0.1, bufferutil@^4.0.3: + version "4.0.7" + resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad" + integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw== + dependencies: + node-gyp-build "^4.3.0" + +camelcase@^5.3.1: + version "5.3.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" + integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== + +camelcase@^6.0.0, camelcase@^6.3.0: + version "6.3.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-6.3.0.tgz#5685b95eb209ac9c0c177467778c9c84df58ba9a" + integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA== + +capability@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/capability/-/capability-0.2.5.tgz#51ad87353f1936ffd77f2f21c74633a4dea88801" + integrity sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg== + +chai@^4.3.7: + version "4.3.7" + resolved "https://registry.yarnpkg.com/chai/-/chai-4.3.7.tgz#ec63f6df01829088e8bf55fca839bcd464a8ec51" + integrity sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A== + dependencies: + assertion-error "^1.1.0" + check-error "^1.0.2" + deep-eql "^4.1.2" + get-func-name "^2.0.0" + loupe "^2.3.1" + pathval "^1.1.1" + type-detect "^4.0.5" + +chalk@^2.4.1: + version "2.4.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" + integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + +chalk@^4.1.0: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + +check-error@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/check-error/-/check-error-1.0.2.tgz#574d312edd88bb5dd8912e9286dd6c0aed4aac82" + integrity sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA== + +chokidar@3.5.3: + version "3.5.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" + integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== + dependencies: + anymatch "~3.1.2" + braces "~3.0.2" + glob-parent "~5.1.2" + is-binary-path "~2.1.0" + is-glob "~4.0.1" + normalize-path "~3.0.0" + readdirp "~3.6.0" + optionalDependencies: + fsevents "~2.3.2" + +cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + integrity sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +cliui@^7.0.2: + version "7.0.4" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" + integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== + dependencies: + string-width "^4.2.0" + strip-ansi "^6.0.0" + wrap-ansi "^7.0.0" + +color-convert@^1.9.0: + version "1.9.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" + integrity sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg== + dependencies: + color-name "1.1.3" + +color-convert@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" + integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== + dependencies: + color-name "~1.1.4" + +color-name@1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + integrity sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw== + +color-name@~1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" + integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== + +combined-stream@^1.0.8: + version "1.0.8" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" + integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== + dependencies: + delayed-stream "~1.0.0" + +commander@^2.20.3: + version "2.20.3" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" + integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== + +concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + integrity sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg== + +copyfiles@^2.4.1: + version "2.4.1" + resolved "https://registry.yarnpkg.com/copyfiles/-/copyfiles-2.4.1.tgz#d2dcff60aaad1015f09d0b66e7f0f1c5cd3c5da5" + integrity sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg== + dependencies: + glob "^7.0.5" + minimatch "^3.0.3" + mkdirp "^1.0.4" + noms "0.0.0" + through2 "^2.0.1" + untildify "^4.0.0" + yargs "^16.1.0" + +core-util-is@~1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" + integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== + +cosmjs-types@^0.7.1: + version "0.7.2" + resolved "https://registry.yarnpkg.com/cosmjs-types/-/cosmjs-types-0.7.2.tgz#a757371abd340949c5bd5d49c6f8379ae1ffd7e2" + integrity sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA== + dependencies: + long "^4.0.0" + protobufjs "~6.11.2" + +crc-32@^1.2.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/crc-32/-/crc-32-1.2.2.tgz#3cad35a934b8bf71f25ca524b6da51fb7eace2ff" + integrity sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ== + +create-hash@^1.1.0, create-hash@^1.1.2, create-hash@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + integrity sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg== + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + +create-hmac@^1.1.4, create-hmac@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + integrity sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg== + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +create-require@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/create-require/-/create-require-1.1.1.tgz#c1d7e8f1e5f6cfc9ff65f9cd352d37348756c333" + integrity sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ== + +cross-fetch@^3.1.5: + version "3.1.5" + resolved "https://registry.yarnpkg.com/cross-fetch/-/cross-fetch-3.1.5.tgz#e1389f44d9e7ba767907f7af8454787952ab534f" + integrity sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw== + dependencies: + node-fetch "2.6.7" + +crypto-addr-codec@^0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz#e16cea892730178fe25a38f6d15b680cab3124ae" + integrity sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg== + dependencies: + base-x "^3.0.8" + big-integer "1.6.36" + blakejs "^1.1.0" + bs58 "^4.0.1" + ripemd160-min "0.0.6" + safe-buffer "^5.2.0" + sha3 "^2.1.1" + +crypto-hash@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/crypto-hash/-/crypto-hash-1.3.0.tgz#b402cb08f4529e9f4f09346c3e275942f845e247" + integrity sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg== + +debug@4.3.4, debug@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" + integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== + dependencies: + ms "2.1.2" + +decamelize@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-4.0.0.tgz#aa472d7bf660eb15f3494efd531cab7f2a709837" + integrity sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ== + +decimal.js@^10.2.1: + version "10.4.3" + resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" + integrity sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA== + +deep-eql@^4.1.2: + version "4.1.3" + resolved "https://registry.yarnpkg.com/deep-eql/-/deep-eql-4.1.3.tgz#7c7775513092f7df98d8df9996dd085eb668cc6d" + integrity sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw== + dependencies: + type-detect "^4.0.0" + +define-properties@^1.1.3: + version "1.2.0" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.0.tgz#52988570670c9eacedd8064f4a990f2405849bd5" + integrity sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA== + dependencies: + has-property-descriptors "^1.0.0" + object-keys "^1.1.1" + +delay@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/delay/-/delay-5.0.0.tgz#137045ef1b96e5071060dd5be60bf9334436bd1d" + integrity sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw== + +delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + integrity sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ== + +depd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/depd/-/depd-2.0.0.tgz#b696163cc757560d09cf22cc8fad1571b79e76df" + integrity sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw== + +depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + integrity sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ== + +diff@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-5.0.0.tgz#7ed6ad76d859d030787ec35855f5b1daf31d852b" + integrity sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w== + +diff@^3.1.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/diff/-/diff-3.5.0.tgz#800c0dd1e0a8bfbc95835c202ad220fe317e5a12" + integrity sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA== + +diff@^4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d" + integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A== + +dot-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/dot-case/-/dot-case-3.0.4.tgz#9b2b670d00a431667a8a75ba29cd1b98809ce751" + integrity sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w== + dependencies: + no-case "^3.0.4" + tslib "^2.0.3" + +dotenv@^16.0.3: + version "16.0.3" + resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07" + integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ== + +drbg.js@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/drbg.js/-/drbg.js-1.0.1.tgz#3e36b6c42b37043823cdbc332d58f31e2445480b" + integrity sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g== + dependencies: + browserify-aes "^1.0.6" + create-hash "^1.1.2" + create-hmac "^1.1.4" + +eccrypto@1.1.6: + version "1.1.6" + resolved "https://registry.yarnpkg.com/eccrypto/-/eccrypto-1.1.6.tgz#846bd1222323036f7a3515613704386399702bd3" + integrity sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A== + dependencies: + acorn "7.1.1" + elliptic "6.5.4" + es6-promise "4.2.8" + nan "2.14.0" + optionalDependencies: + secp256k1 "3.7.1" + +elliptic@6.5.4, elliptic@^6.4.0, elliptic@^6.4.1, elliptic@^6.5.2, elliptic@^6.5.4: + version "6.5.4" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.5.4.tgz#da37cebd31e79a1367e941b592ed1fbebd58abbb" + integrity sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ== + dependencies: + bn.js "^4.11.9" + brorand "^1.1.0" + hash.js "^1.0.0" + hmac-drbg "^1.0.1" + inherits "^2.0.4" + minimalistic-assert "^1.0.1" + minimalistic-crypto-utils "^1.0.1" + +emoji-regex@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" + integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== + +error-polyfill@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/error-polyfill/-/error-polyfill-0.1.3.tgz#df848b61ad8834f7a5db69a70b9913df86721d15" + integrity sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg== + dependencies: + capability "^0.2.5" + o3 "^1.0.3" + u3 "^0.1.1" + +es6-promise@4.2.8, es6-promise@^4.0.3: + version "4.2.8" + resolved "https://registry.yarnpkg.com/es6-promise/-/es6-promise-4.2.8.tgz#4eb21594c972bc40553d276e510539143db53e0a" + integrity sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w== + +es6-promisify@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/es6-promisify/-/es6-promisify-5.0.0.tgz#5109d62f3e56ea967c4b63505aef08291c8a5203" + integrity sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ== + dependencies: + es6-promise "^4.0.3" + +escalade@^3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" + integrity sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw== + +escape-string-regexp@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz#14ba83a5d373e3d311e5afca29cf5bfad965bf34" + integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA== + +escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + integrity sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg== + +eth-crypto@^2.6.0: + version "2.6.0" + resolved "https://registry.yarnpkg.com/eth-crypto/-/eth-crypto-2.6.0.tgz#b777f367ae8c70e5917b3b7d52adab6b34841e29" + integrity sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug== + dependencies: + "@babel/runtime" "7.20.13" + "@ethereumjs/tx" "3.5.2" + "@types/bn.js" "5.1.1" + eccrypto "1.1.6" + ethereumjs-util "7.1.5" + ethers "5.7.2" + secp256k1 "5.0.0" + +ethereum-cryptography@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz#8d6143cfc3d74bf79bbd8edecdf29e4ae20dd191" + integrity sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ== + dependencies: + "@types/pbkdf2" "^3.0.0" + "@types/secp256k1" "^4.0.1" + blakejs "^1.1.0" + browserify-aes "^1.2.0" + bs58check "^2.1.2" + create-hash "^1.2.0" + create-hmac "^1.1.7" + hash.js "^1.1.7" + keccak "^3.0.0" + pbkdf2 "^3.0.17" + randombytes "^2.1.0" + safe-buffer "^5.1.2" + scrypt-js "^3.0.0" + secp256k1 "^4.0.1" + setimmediate "^1.0.5" + +ethereumjs-abi@^0.6.8: + version "0.6.8" + resolved "https://registry.yarnpkg.com/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz#71bc152db099f70e62f108b7cdfca1b362c6fcae" + integrity sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA== + dependencies: + bn.js "^4.11.8" + ethereumjs-util "^6.0.0" + +ethereumjs-util@7.1.5, ethereumjs-util@^7.1.4, ethereumjs-util@^7.1.5: + version "7.1.5" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz#9ecf04861e4fbbeed7465ece5f23317ad1129181" + integrity sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg== + dependencies: + "@types/bn.js" "^5.1.0" + bn.js "^5.1.2" + create-hash "^1.1.2" + ethereum-cryptography "^0.1.3" + rlp "^2.2.4" + +ethereumjs-util@^6.0.0, ethereumjs-util@^6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz#fcb4e4dd5ceacb9d2305426ab1a5cd93e3163b69" + integrity sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw== + dependencies: + "@types/bn.js" "^4.11.3" + bn.js "^4.11.0" + create-hash "^1.1.2" + elliptic "^6.5.2" + ethereum-cryptography "^0.1.3" + ethjs-util "0.1.6" + rlp "^2.2.3" + +ethers@5.7.2, ethers@^5.7.2: + version "5.7.2" + resolved "https://registry.yarnpkg.com/ethers/-/ethers-5.7.2.tgz#3a7deeabbb8c030d4126b24f84e525466145872e" + integrity sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg== + dependencies: + "@ethersproject/abi" "5.7.0" + "@ethersproject/abstract-provider" "5.7.0" + "@ethersproject/abstract-signer" "5.7.0" + "@ethersproject/address" "5.7.0" + "@ethersproject/base64" "5.7.0" + "@ethersproject/basex" "5.7.0" + "@ethersproject/bignumber" "5.7.0" + "@ethersproject/bytes" "5.7.0" + "@ethersproject/constants" "5.7.0" + "@ethersproject/contracts" "5.7.0" + "@ethersproject/hash" "5.7.0" + "@ethersproject/hdnode" "5.7.0" + "@ethersproject/json-wallets" "5.7.0" + "@ethersproject/keccak256" "5.7.0" + "@ethersproject/logger" "5.7.0" + "@ethersproject/networks" "5.7.1" + "@ethersproject/pbkdf2" "5.7.0" + "@ethersproject/properties" "5.7.0" + "@ethersproject/providers" "5.7.2" + "@ethersproject/random" "5.7.0" + "@ethersproject/rlp" "5.7.0" + "@ethersproject/sha2" "5.7.0" + "@ethersproject/signing-key" "5.7.0" + "@ethersproject/solidity" "5.7.0" + "@ethersproject/strings" "5.7.0" + "@ethersproject/transactions" "5.7.0" + "@ethersproject/units" "5.7.0" + "@ethersproject/wallet" "5.7.0" + "@ethersproject/web" "5.7.1" + "@ethersproject/wordlists" "5.7.0" + +ethjs-util@0.1.6, ethjs-util@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/ethjs-util/-/ethjs-util-0.1.6.tgz#f308b62f185f9fe6237132fb2a9818866a5cd536" + integrity sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w== + dependencies: + is-hex-prefixed "1.0.0" + strip-hex-prefix "1.0.0" + +eventemitter3@^4.0.7: + version "4.0.7" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" + integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== + +evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + integrity sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA== + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + +eyes@^0.1.8: + version "0.1.8" + resolved "https://registry.yarnpkg.com/eyes/-/eyes-0.1.8.tgz#62cf120234c683785d902348a800ef3e0cc20bc0" + integrity sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ== + +fast-stable-stringify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz#5c5543462b22aeeefd36d05b34e51c78cb86d313" + integrity sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag== + +file-uri-to-path@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd" + integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw== + +fill-range@^7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" + integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ== + dependencies: + to-regex-range "^5.0.1" + +find-up@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-5.0.0.tgz#4c92819ecb7083561e4f4a240a86be5198f536fc" + integrity sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng== + dependencies: + locate-path "^6.0.0" + path-exists "^4.0.0" + +flat@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" + integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== + +follow-redirects@^1.14.0, follow-redirects@^1.14.4, follow-redirects@^1.14.8, follow-redirects@^1.14.9, follow-redirects@^1.15.0: + version "1.15.2" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13" + integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA== + +form-data@4.0.0, form-data@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452" + integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww== + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.8" + mime-types "^2.1.12" + +fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== + +fsevents@~2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a" + integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA== + +function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + integrity sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A== + +get-caller-file@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" + integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg== + +get-func-name@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/get-func-name/-/get-func-name-2.0.0.tgz#ead774abee72e20409433a066366023dd6887a41" + integrity sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig== + +get-intrinsic@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.0.tgz#7ad1dc0535f3a2904bba075772763e5051f6d05f" + integrity sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q== + dependencies: + function-bind "^1.1.1" + has "^1.0.3" + has-symbols "^1.0.3" + +glob-parent@~5.1.2: + version "5.1.2" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" + integrity sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow== + dependencies: + is-glob "^4.0.1" + +glob@7.2.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023" + integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + +glob@^7.0.0, glob@^7.0.5, glob@^7.1.3: + version "7.2.3" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" + integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.1.1" + once "^1.3.0" + path-is-absolute "^1.0.0" + +globalthis@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/globalthis/-/globalthis-1.0.3.tgz#5852882a52b80dc301b0660273e1ed082f0b6ccf" + integrity sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA== + dependencies: + define-properties "^1.1.3" + +google-protobuf@^3.14.0, google-protobuf@^3.17.3, google-protobuf@^3.21.0: + version "3.21.2" + resolved "https://registry.yarnpkg.com/google-protobuf/-/google-protobuf-3.21.2.tgz#4580a2bea8bbb291ee579d1fefb14d6fa3070ea4" + integrity sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA== + +graphql-tag@^2.12.6: + version "2.12.6" + resolved "https://registry.yarnpkg.com/graphql-tag/-/graphql-tag-2.12.6.tgz#d441a569c1d2537ef10ca3d1633b48725329b5f1" + integrity sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg== + dependencies: + tslib "^2.1.0" + +graphql@^16.3.0: + version "16.6.0" + resolved "https://registry.yarnpkg.com/graphql/-/graphql-16.6.0.tgz#c2dcffa4649db149f6282af726c8c83f1c7c5fdb" + integrity sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw== + +has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + integrity sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw== + +has-flag@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" + integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== + +has-property-descriptors@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz#610708600606d36961ed04c196193b6a607fa861" + integrity sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ== + dependencies: + get-intrinsic "^1.1.1" + +has-symbols@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8" + integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A== + +has@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.3.tgz#722d7cbfc1f6aa8241f16dd814e011e1f41e8796" + integrity sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw== + dependencies: + function-bind "^1.1.1" + +hash-base@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.1.0.tgz#55c381d9e06e1d2997a883b4a3fddfe7f0d3af33" + integrity sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA== + dependencies: + inherits "^2.0.4" + readable-stream "^3.6.0" + safe-buffer "^5.2.0" + +hash.js@1.1.7, hash.js@^1.0.0, hash.js@^1.0.3, hash.js@^1.1.7: + version "1.1.7" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.7.tgz#0babca538e8d4ee4a0f8988d68866537a003cf42" + integrity sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA== + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.1" + +he@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" + integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== + +hi-base32@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/hi-base32/-/hi-base32-0.5.1.tgz#1279f2ddae2673219ea5870c2121d2a33132857e" + integrity sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA== + +hmac-drbg@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + integrity sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg== + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + +hoist-non-react-statics@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz#ece0acaf71d62c2969c2ec59feff42a4b1a85b45" + integrity sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw== + dependencies: + react-is "^16.7.0" + +http-errors@^1.7.2: + version "1.8.1" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.8.1.tgz#7c3f28577cbc8a207388455dbd62295ed07bd68c" + integrity sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g== + dependencies: + depd "~1.1.2" + inherits "2.0.4" + setprototypeof "1.2.0" + statuses ">= 1.5.0 < 2" + toidentifier "1.0.1" + +http-status-codes@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/http-status-codes/-/http-status-codes-2.2.0.tgz#bb2efe63d941dfc2be18e15f703da525169622be" + integrity sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng== + +humanize-ms@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/humanize-ms/-/humanize-ms-1.2.1.tgz#c46e3159a293f6b896da29316d8b6fe8bb79bbed" + integrity sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ== + dependencies: + ms "^2.0.0" + +ieee754@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352" + integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA== + +inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + integrity sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA== + dependencies: + once "^1.3.0" + wrappy "1" + +inherits@2, inherits@2.0.4, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.4" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c" + integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ== + +interpret@^1.0.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e" + integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA== + +is-binary-path@~2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-2.1.0.tgz#ea1f7f3b80f064236e83470f86c09c254fb45b09" + integrity sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw== + dependencies: + binary-extensions "^2.0.0" + +is-core-module@^2.11.0: + version "2.12.0" + resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.12.0.tgz#36ad62f6f73c8253fd6472517a12483cf03e7ec4" + integrity sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ== + dependencies: + has "^1.0.3" + +is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== + +is-fullwidth-code-point@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" + integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== + +is-glob@^4.0.1, is-glob@~4.0.1: + version "4.0.3" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" + integrity sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg== + dependencies: + is-extglob "^2.1.1" + +is-hex-prefixed@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz#7d8d37e6ad77e5d127148913c573e082d777f554" + integrity sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA== + +is-number@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" + integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng== + +is-plain-obj@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-2.1.0.tgz#45e42e37fccf1f40da8e5f76ee21515840c09287" + integrity sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA== + +is-retry-allowed@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz#88f34cbd236e043e71b6932d09b0c65fb7b4d71d" + integrity sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg== + +is-unicode-supported@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz#3f26c76a809593b52bfa2ecb5710ed2779b522a7" + integrity sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw== + +isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + integrity sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ== + +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + +isomorphic-ws@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz#55fd4cd6c5e6491e76dc125938dd863f5cd4f2dc" + integrity sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w== + +jayson@^3.4.4: + version "3.7.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-3.7.0.tgz#b735b12d06d348639ae8230d7a1e2916cb078f25" + integrity sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + lodash "^4.17.20" + uuid "^8.3.2" + ws "^7.4.5" + +jayson@^4.0.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/jayson/-/jayson-4.1.0.tgz#60dc946a85197317f2b1439d672a8b0a99cea2f9" + integrity sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A== + dependencies: + "@types/connect" "^3.4.33" + "@types/node" "^12.12.54" + "@types/ws" "^7.4.4" + JSONStream "^1.3.5" + commander "^2.20.3" + delay "^5.0.0" + es6-promisify "^5.0.0" + eyes "^0.1.8" + isomorphic-ws "^4.0.1" + json-stringify-safe "^5.0.1" + uuid "^8.3.2" + ws "^7.4.5" + +js-base64@^3.6.1: + version "3.7.5" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-3.7.5.tgz#21e24cf6b886f76d6f5f165bfcd69cc55b9e3fca" + integrity sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA== + +js-sha256@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/js-sha256/-/js-sha256-0.9.0.tgz#0b89ac166583e91ef9123644bd3c5334ce9d0966" + integrity sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA== + +js-sha3@0.8.0, js-sha3@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha3/-/js-sha3-0.8.0.tgz#b9b7a5da73afad7dedd0f8c463954cbde6818840" + integrity sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q== + +js-sha512@^0.8.0: + version "0.8.0" + resolved "https://registry.yarnpkg.com/js-sha512/-/js-sha512-0.8.0.tgz#dd22db8d02756faccf19f218e3ed61ec8249f7d4" + integrity sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ== + +"js-tokens@^3.0.0 || ^4.0.0": + version "4.0.0" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" + integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== + +js-yaml@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-4.1.0.tgz#c1fb65f8f5017901cdd2c951864ba18458a10602" + integrity sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA== + dependencies: + argparse "^2.0.1" + +jscrypto@^1.0.1, jscrypto@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/jscrypto/-/jscrypto-1.0.3.tgz#598febca2a939d6f679c54f56e1fe364cef30cc9" + integrity sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ== + +json-bigint@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/json-bigint/-/json-bigint-1.0.0.tgz#ae547823ac0cad8398667f8cd9ef4730f5b01ff1" + integrity sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ== + dependencies: + bignumber.js "^9.0.0" + +json-stringify-safe@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + integrity sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA== + +json5@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.2.tgz#63d98d60f21b313b77c4d6da18bfa69d80e1d593" + integrity sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA== + dependencies: + minimist "^1.2.0" + +jsonparse@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" + integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== + +jsonschema@^1.4.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsonschema/-/jsonschema-1.4.1.tgz#cc4c3f0077fb4542982973d8a083b6b34f482dab" + integrity sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ== + +keccak256@^1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/keccak256/-/keccak256-1.0.6.tgz#dd32fb771558fed51ce4e45a035ae7515573da58" + integrity sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw== + dependencies: + bn.js "^5.2.0" + buffer "^6.0.3" + keccak "^3.0.2" + +keccak@^3.0.0, keccak@^3.0.2: + version "3.0.3" + resolved "https://registry.yarnpkg.com/keccak/-/keccak-3.0.3.tgz#4bc35ad917be1ef54ff246f904c2bbbf9ac61276" + integrity sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ== + dependencies: + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + readable-stream "^3.6.0" + +libsodium-wrappers@^0.7.6: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz#53bd20606dffcc54ea2122133c7da38218f575f7" + integrity sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q== + dependencies: + libsodium "^0.7.11" + +libsodium@^0.7.11: + version "0.7.11" + resolved "https://registry.yarnpkg.com/libsodium/-/libsodium-0.7.11.tgz#cd10aae7bcc34a300cc6ad0ac88fcca674cfbc2e" + integrity sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A== + +link-module-alias@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/link-module-alias/-/link-module-alias-1.2.0.tgz#6a3b7b014cfe18b2759a1222fffce6a40fc120e4" + integrity sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw== + dependencies: + chalk "^2.4.1" + +locate-path@^6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-6.0.0.tgz#55321eb309febbc59c4801d931a72452a681d286" + integrity sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw== + dependencies: + p-locate "^5.0.0" + +lodash.values@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.values/-/lodash.values-4.3.0.tgz#a3a6c2b0ebecc5c2cba1c17e6e620fe81b53d347" + integrity sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q== + +lodash@^4.17.20, lodash@^4.17.21: + version "4.17.21" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" + integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== + +log-symbols@4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/log-symbols/-/log-symbols-4.1.0.tgz#3fbdbb95b4683ac9fc785111e792e558d4abd503" + integrity sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg== + dependencies: + chalk "^4.1.0" + is-unicode-supported "^0.1.0" + +long@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/long/-/long-4.0.0.tgz#9a7b71cfb7d361a194ea555241c92f7468d5bf28" + integrity sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA== + +long@^5.0.0: + version "5.2.3" + resolved "https://registry.yarnpkg.com/long/-/long-5.2.3.tgz#a3ba97f3877cf1d778eccbcb048525ebb77499e1" + integrity sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q== + +loose-envify@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.4.0.tgz#71ee51fa7be4caec1a63839f7e682d8132d30caf" + integrity sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q== + dependencies: + js-tokens "^3.0.0 || ^4.0.0" + +loupe@^2.3.1: + version "2.3.6" + resolved "https://registry.yarnpkg.com/loupe/-/loupe-2.3.6.tgz#76e4af498103c532d1ecc9be102036a21f787b53" + integrity sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA== + dependencies: + get-func-name "^2.0.0" + +lower-case@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-2.0.2.tgz#6fa237c63dbdc4a82ca0fd882e4722dc5e634e28" + integrity sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg== + dependencies: + tslib "^2.0.3" + +make-error@^1.1.1: + version "1.3.6" + resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2" + integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw== + +map-obj@^4.1.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-4.3.0.tgz#9304f906e93faae70880da102a9f1df0ea8bb05a" + integrity sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ== + +md5.js@^1.3.4: + version "1.3.5" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.5.tgz#b5d07b8e3216e3e27cd728d72f70d1e6a342005f" + integrity sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + safe-buffer "^5.1.2" + +mime-db@1.52.0: + version "1.52.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.52.0.tgz#bbabcdc02859f4987301c856e3387ce5ec43bf70" + integrity sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg== + +mime-types@^2.1.12: + version "2.1.35" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.35.tgz#381a871b62a734450660ae3deee44813f70d959a" + integrity sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw== + dependencies: + mime-db "1.52.0" + +minimalistic-assert@^1.0.0, minimalistic-assert@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== + +minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + integrity sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg== + +minimatch@5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-5.0.1.tgz#fb9022f7528125187c92bd9e9b6366be1cf3415b" + integrity sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g== + dependencies: + brace-expansion "^2.0.1" + +minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.1: + version "3.1.2" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b" + integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw== + dependencies: + brace-expansion "^1.1.7" + +minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.6: + version "1.2.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" + integrity sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA== + +mkdirp@^0.5.1: + version "0.5.6" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" + integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== + dependencies: + minimist "^1.2.6" + +mkdirp@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e" + integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw== + +mocha@^10.2.0: + version "10.2.0" + resolved "https://registry.yarnpkg.com/mocha/-/mocha-10.2.0.tgz#1fd4a7c32ba5ac372e03a17eef435bd00e5c68b8" + integrity sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg== + dependencies: + ansi-colors "4.1.1" + browser-stdout "1.3.1" + chokidar "3.5.3" + debug "4.3.4" + diff "5.0.0" + escape-string-regexp "4.0.0" + find-up "5.0.0" + glob "7.2.0" + he "1.2.0" + js-yaml "4.1.0" + log-symbols "4.1.0" + minimatch "5.0.1" + ms "2.1.3" + nanoid "3.3.3" + serialize-javascript "6.0.0" + strip-json-comments "3.1.1" + supports-color "8.1.1" + workerpool "6.2.1" + yargs "16.2.0" + yargs-parser "20.2.4" + yargs-unparser "2.0.0" + +ms@2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009" + integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w== + +ms@2.1.3, ms@^2.0.0: + version "2.1.3" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" + integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== + +mustache@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/mustache/-/mustache-4.2.0.tgz#e5892324d60a12ec9c2a73359edca52972bf6f64" + integrity sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ== + +nan@2.14.0: + version "2.14.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.0.tgz#7818f722027b2459a86f0295d434d1fc2336c52c" + integrity sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg== + +nan@^2.13.2, nan@^2.14.0: + version "2.17.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.17.0.tgz#c0150a2368a182f033e9aa5195ec76ea41a199cb" + integrity sha512-2ZTgtl0nJsO0KQCjEpxcIr5D+Yv90plTitZt9JBfQvVJDS5seMl3FOvsh3+9CoYWXf/1l5OaZzzF6nDm4cagaQ== + +nanoid@3.3.3: + version "3.3.3" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.3.tgz#fd8e8b7aa761fe807dba2d1b98fb7241bb724a25" + integrity sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w== + +near-api-js@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/near-api-js/-/near-api-js-1.1.0.tgz#907e807f052c1f043c6fbf28f61872de3c02235a" + integrity sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg== + dependencies: + bn.js "5.2.1" + borsh "^0.7.0" + bs58 "^4.0.0" + depd "^2.0.0" + error-polyfill "^0.1.3" + http-errors "^1.7.2" + js-sha256 "^0.9.0" + mustache "^4.0.0" + node-fetch "^2.6.1" + text-encoding-utf-8 "^1.0.2" + tweetnacl "^1.0.1" + +no-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" + integrity sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg== + dependencies: + lower-case "^2.0.2" + tslib "^2.0.3" + +node-addon-api@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-2.0.2.tgz#432cfa82962ce494b132e9d72a15b29f71ff5d32" + integrity sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA== + +node-addon-api@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-5.1.0.tgz#49da1ca055e109a23d537e9de43c09cca21eb762" + integrity sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA== + +node-fetch@2.6.7: + version "2.6.7" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad" + integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ== + dependencies: + whatwg-url "^5.0.0" + +node-fetch@^2.6.1, node-fetch@^2.6.7: + version "2.6.9" + resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.9.tgz#7c7f744b5cc6eb5fd404e0c7a9fec630a55657e6" + integrity sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg== + dependencies: + whatwg-url "^5.0.0" + +node-gyp-build@^4.2.0, node-gyp-build@^4.3.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/node-gyp-build/-/node-gyp-build-4.6.0.tgz#0c52e4cbf54bbd28b709820ef7b6a3c2d6209055" + integrity sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ== + +noms@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/noms/-/noms-0.0.0.tgz#da8ebd9f3af9d6760919b27d9cdc8092a7332859" + integrity sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow== + dependencies: + inherits "^2.0.1" + readable-stream "~1.0.31" + +normalize-path@^3.0.0, normalize-path@~3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-3.0.0.tgz#0dcd69ff23a1c9b11fd0978316644a0388216a65" + integrity sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA== + +o3@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/o3/-/o3-1.0.3.tgz#192ce877a882dfa6751f0412a865fafb2da1dac0" + integrity sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ== + dependencies: + capability "^0.2.5" + +object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== + +object-keys@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" + integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== + +once@^1.3.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + integrity sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w== + dependencies: + wrappy "1" + +optimism@^0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/optimism/-/optimism-0.16.2.tgz#519b0c78b3b30954baed0defe5143de7776bf081" + integrity sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ== + dependencies: + "@wry/context" "^0.7.0" + "@wry/trie" "^0.3.0" + +p-limit@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b" + integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ== + dependencies: + yocto-queue "^0.1.0" + +p-locate@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-5.0.0.tgz#83c8315c6785005e3bd021839411c9e110e6d834" + integrity sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw== + dependencies: + p-limit "^3.0.2" + +pako@^2.0.3: + version "2.1.0" + resolved "https://registry.yarnpkg.com/pako/-/pako-2.1.0.tgz#266cc37f98c7d883545d11335c00fbd4062c9a86" + integrity sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug== + +path-exists@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-4.0.0.tgz#513bdbe2d3b95d7762e8c1137efa195c6c61b5b3" + integrity sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w== + +path-is-absolute@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== + +path-parse@^1.0.7: + version "1.0.7" + resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" + integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== + +pathval@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/pathval/-/pathval-1.1.1.tgz#8534e77a77ce7ac5a2512ea21e0fdb8fcf6c3d8d" + integrity sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ== + +pbkdf2@^3.0.17: + version "3.1.2" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.1.2.tgz#dd822aa0887580e52f1a039dc3eda108efae3075" + integrity sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA== + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + +picomatch@^2.0.4, picomatch@^2.2.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42" + integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA== + +prettier@^2.8.7: + version "2.8.8" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.8.8.tgz#e8c5d7e98a4305ffe3de2e1fc4aca1a71c28b1da" + integrity sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q== + +process-nextick-args@~2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2" + integrity sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag== + +prop-types@^15.7.2: + version "15.8.1" + resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.8.1.tgz#67d87bf1a694f48435cf332c24af10214a3140b5" + integrity sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg== + dependencies: + loose-envify "^1.4.0" + object-assign "^4.1.1" + react-is "^16.13.1" + +protobufjs@^6.8.8, protobufjs@~6.11.2, protobufjs@~6.11.3: + version "6.11.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-6.11.3.tgz#637a527205a35caa4f3e2a9a4a13ddffe0e7af74" + integrity sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/long" "^4.0.1" + "@types/node" ">=13.7.0" + long "^4.0.0" + +protobufjs@^7.0.0: + version "7.2.3" + resolved "https://registry.yarnpkg.com/protobufjs/-/protobufjs-7.2.3.tgz#01af019e40d9c6133c49acbb3ff9e30f4f0f70b2" + integrity sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg== + dependencies: + "@protobufjs/aspromise" "^1.1.2" + "@protobufjs/base64" "^1.1.2" + "@protobufjs/codegen" "^2.0.4" + "@protobufjs/eventemitter" "^1.1.0" + "@protobufjs/fetch" "^1.1.0" + "@protobufjs/float" "^1.0.2" + "@protobufjs/inquire" "^1.1.0" + "@protobufjs/path" "^1.1.2" + "@protobufjs/pool" "^1.1.0" + "@protobufjs/utf8" "^1.1.0" + "@types/node" ">=13.7.0" + long "^5.0.0" + +proxy-from-env@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2" + integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg== + +randombytes@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" + integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== + dependencies: + safe-buffer "^5.1.0" + +react-is@^16.13.1, react-is@^16.7.0: + version "16.13.1" + resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4" + integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ== + +readable-stream@^3.6.0: + version "3.6.2" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-3.6.2.tgz#56a9b36ea965c00c5a93ef31eb111a0f11056967" + integrity sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA== + dependencies: + inherits "^2.0.3" + string_decoder "^1.1.1" + util-deprecate "^1.0.1" + +readable-stream@~1.0.31: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + integrity sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + +readable-stream@~2.3.6: + version "2.3.8" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.8.tgz#91125e8042bba1b9887f49345f6277027ce8be9b" + integrity sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA== + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + +readdirp@~3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-3.6.0.tgz#74a370bd857116e245b29cc97340cd431a02a6c7" + integrity sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA== + dependencies: + picomatch "^2.2.1" + +readonly-date@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/readonly-date/-/readonly-date-1.0.0.tgz#5af785464d8c7d7c40b9d738cbde8c646f97dcd9" + integrity sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ== + +rechoir@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/rechoir/-/rechoir-0.6.2.tgz#85204b54dba82d5742e28c96756ef43af50e3384" + integrity sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw== + dependencies: + resolve "^1.1.6" + +regenerator-runtime@^0.13.11: + version "0.13.11" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz#f6dca3e7ceec20590d07ada785636a90cdca17f9" + integrity sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg== + +require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + integrity sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q== + +resolve@^1.1.6: + version "1.22.2" + resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.2.tgz#0ed0943d4e301867955766c9f3e1ae6d01c6845f" + integrity sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g== + dependencies: + is-core-module "^2.11.0" + path-parse "^1.0.7" + supports-preserve-symlinks-flag "^1.0.0" + +response-iterator@^0.2.6: + version "0.2.6" + resolved "https://registry.yarnpkg.com/response-iterator/-/response-iterator-0.2.6.tgz#249005fb14d2e4eeb478a3f735a28fd8b4c9f3da" + integrity sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw== + +rimraf@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a" + integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA== + dependencies: + glob "^7.1.3" + +ripemd160-min@0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/ripemd160-min/-/ripemd160-min-0.0.6.tgz#a904b77658114474d02503e819dcc55853b67e62" + integrity sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A== + +ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.2.tgz#a1c1a6f624751577ba5d07914cbc92850585890c" + integrity sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA== + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + +rlp@^2.2.3, rlp@^2.2.4: + version "2.2.7" + resolved "https://registry.yarnpkg.com/rlp/-/rlp-2.2.7.tgz#33f31c4afac81124ac4b283e2bd4d9720b30beaf" + integrity sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ== + dependencies: + bn.js "^5.2.0" + +rpc-websockets@^7.5.1: + version "7.5.1" + resolved "https://registry.yarnpkg.com/rpc-websockets/-/rpc-websockets-7.5.1.tgz#e0a05d525a97e7efc31a0617f093a13a2e10c401" + integrity sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w== + dependencies: + "@babel/runtime" "^7.17.2" + eventemitter3 "^4.0.7" + uuid "^8.3.2" + ws "^8.5.0" + optionalDependencies: + bufferutil "^4.0.1" + utf-8-validate "^5.0.2" + +rxjs@^7.4.0, rxjs@^7.5.6, rxjs@^7.8.0: + version "7.8.1" + resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.8.1.tgz#6f6f3d99ea8044291efd92e7c7fcf562c4057543" + integrity sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg== + dependencies: + tslib "^2.1.0" + +safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@^5.1.2, safe-buffer@^5.2.0, safe-buffer@~5.2.0: + version "5.2.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" + integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== + +safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.2" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" + integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== + +scrypt-js@3.0.1, scrypt-js@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/scrypt-js/-/scrypt-js-3.0.1.tgz#d314a57c2aef69d1ad98a138a21fe9eafa9ee312" + integrity sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA== + +secp256k1@3.7.1: + version "3.7.1" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-3.7.1.tgz#12e473e0e9a7c2f2d4d4818e722ad0e14cc1e2f1" + integrity sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g== + dependencies: + bindings "^1.5.0" + bip66 "^1.1.5" + bn.js "^4.11.8" + create-hash "^1.2.0" + drbg.js "^1.0.1" + elliptic "^6.4.1" + nan "^2.14.0" + safe-buffer "^5.1.2" + +secp256k1@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-5.0.0.tgz#be6f0c8c7722e2481e9773336d351de8cddd12f7" + integrity sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^5.0.0" + node-gyp-build "^4.2.0" + +secp256k1@^4.0.1, secp256k1@^4.0.2, secp256k1@^4.0.3: + version "4.0.3" + resolved "https://registry.yarnpkg.com/secp256k1/-/secp256k1-4.0.3.tgz#c4559ecd1b8d3c1827ed2d1b94190d69ce267303" + integrity sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA== + dependencies: + elliptic "^6.5.4" + node-addon-api "^2.0.0" + node-gyp-build "^4.2.0" + +serialize-javascript@6.0.0: + version "6.0.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.0.tgz#efae5d88f45d7924141da8b5c3a7a7e663fefeb8" + integrity sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag== + dependencies: + randombytes "^2.1.0" + +setimmediate@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + integrity sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA== + +setprototypeof@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.2.0.tgz#66c9a24a73f9fc28cbe66b09fed3d33dcaf1b424" + integrity sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw== + +sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + integrity sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ== + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + +sha3@^2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/sha3/-/sha3-2.1.4.tgz#000fac0fe7c2feac1f48a25e7a31b52a6492cc8f" + integrity sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg== + dependencies: + buffer "6.0.3" + +shelljs@^0.8.5: + version "0.8.5" + resolved "https://registry.yarnpkg.com/shelljs/-/shelljs-0.8.5.tgz#de055408d8361bed66c669d2f000538ced8ee20c" + integrity sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow== + dependencies: + glob "^7.0.0" + interpret "^1.0.0" + rechoir "^0.6.2" + +shx@^0.3.2: + version "0.3.4" + resolved "https://registry.yarnpkg.com/shx/-/shx-0.3.4.tgz#74289230b4b663979167f94e1935901406e40f02" + integrity sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g== + dependencies: + minimist "^1.2.3" + shelljs "^0.8.5" + +snake-case@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/snake-case/-/snake-case-3.0.4.tgz#4f2bbd568e9935abdfd593f34c691dadb49c452c" + integrity sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg== + dependencies: + dot-case "^3.0.4" + tslib "^2.0.3" + +snakecase-keys@^5.1.2, snakecase-keys@^5.4.1: + version "5.4.5" + resolved "https://registry.yarnpkg.com/snakecase-keys/-/snakecase-keys-5.4.5.tgz#1d452c1557faf8d68f17f04a4991ccfd27afa239" + integrity sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A== + dependencies: + map-obj "^4.1.0" + snake-case "^3.0.4" + type-fest "^2.5.2" + +source-map-support@^0.5.6: + version "0.5.21" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" + integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== + dependencies: + buffer-from "^1.0.0" + source-map "^0.6.0" + +source-map@^0.6.0: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== + +"statuses@>= 1.5.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== + +store2@^2.12.0: + version "2.14.2" + resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" + integrity sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w== + +string-width@^4.1.0, string-width@^4.2.0: + version "4.2.3" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" + integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== + dependencies: + emoji-regex "^8.0.0" + is-fullwidth-code-point "^3.0.0" + strip-ansi "^6.0.1" + +string_decoder@^1.1.1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.3.0.tgz#42f114594a46cf1a8e30b0a84f56c78c3edac21e" + integrity sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA== + dependencies: + safe-buffer "~5.2.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + integrity sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ== + +string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + integrity sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg== + dependencies: + safe-buffer "~5.1.0" + +strip-ansi@^6.0.0, strip-ansi@^6.0.1: + version "6.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" + integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== + dependencies: + ansi-regex "^5.0.1" + +strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + integrity sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA== + +strip-hex-prefix@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz#0c5f155fef1151373377de9dbb588da05500e36f" + integrity sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A== + dependencies: + is-hex-prefixed "1.0.0" + +strip-json-comments@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" + integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== + +superstruct@^0.14.2: + version "0.14.2" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.14.2.tgz#0dbcdf3d83676588828f1cf5ed35cda02f59025b" + integrity sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ== + +superstruct@^0.15.4: + version "0.15.5" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-0.15.5.tgz#0f0a8d3ce31313f0d84c6096cd4fa1bfdedc9dab" + integrity sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ== + +superstruct@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/superstruct/-/superstruct-1.0.3.tgz#de626a5b49c6641ff4d37da3c7598e7a87697046" + integrity sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg== + +supports-color@8.1.1: + version "8.1.1" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-8.1.1.tgz#cd6fc17e28500cff56c1b86c0a7fd4a54a73005c" + integrity sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q== + dependencies: + has-flag "^4.0.0" + +supports-color@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.5.0.tgz#e2e69a44ac8772f78a1ec0b35b689df6530efc8f" + integrity sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow== + dependencies: + has-flag "^3.0.0" + +supports-color@^7.1.0: + version "7.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" + integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== + dependencies: + has-flag "^4.0.0" + +supports-preserve-symlinks-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" + integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== + +symbol-observable@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-2.0.3.tgz#5b521d3d07a43c351055fa43b8355b62d33fd16a" + integrity sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA== + +symbol-observable@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/symbol-observable/-/symbol-observable-4.0.0.tgz#5b425f192279e87f2f9b937ac8540d1984b39205" + integrity sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ== + +text-encoding-utf-8@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz#585b62197b0ae437e3c7b5d0af27ac1021e10d13" + integrity sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg== + +through2@^2.0.1: + version "2.0.5" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.5.tgz#01c1e39eb31d07cb7d03a96a70823260b23132cd" + integrity sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ== + dependencies: + readable-stream "~2.3.6" + xtend "~4.0.1" + +"through@>=2.2.7 <3": + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== + +tiny-secp256k1@^1.1.3: + version "1.1.6" + resolved "https://registry.yarnpkg.com/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz#7e224d2bee8ab8283f284e40e6b4acb74ffe047c" + integrity sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA== + dependencies: + bindings "^1.3.0" + bn.js "^4.11.8" + create-hmac "^1.1.7" + elliptic "^6.4.0" + nan "^2.13.2" + +tmp@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14" + integrity sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ== + dependencies: + rimraf "^3.0.0" + +to-regex-range@^5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" + integrity sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ== + dependencies: + is-number "^7.0.0" + +toidentifier@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35" + integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA== + +toml@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/toml/-/toml-3.0.0.tgz#342160f1af1904ec9d204d03a5d61222d762c5ee" + integrity sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w== + +tr46@~0.0.3: + version "0.0.3" + resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" + integrity sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw== + +ts-invariant@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/ts-invariant/-/ts-invariant-0.10.3.tgz#3e048ff96e91459ffca01304dbc7f61c1f642f6c" + integrity sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ== + dependencies: + tslib "^2.1.0" + +ts-log@^2.2.4: + version "2.2.5" + resolved "https://registry.yarnpkg.com/ts-log/-/ts-log-2.2.5.tgz#aef3252f1143d11047e2cb6f7cfaac7408d96623" + integrity sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA== + +ts-mocha@^10.0.0: + version "10.0.0" + resolved "https://registry.yarnpkg.com/ts-mocha/-/ts-mocha-10.0.0.tgz#41a8d099ac90dbbc64b06976c5025ffaebc53cb9" + integrity sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw== + dependencies: + ts-node "7.0.1" + optionalDependencies: + tsconfig-paths "^3.5.0" + +ts-node@7.0.1: + version "7.0.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-7.0.1.tgz#9562dc2d1e6d248d24bc55f773e3f614337d9baf" + integrity sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw== + dependencies: + arrify "^1.0.0" + buffer-from "^1.1.0" + diff "^3.1.0" + make-error "^1.1.1" + minimist "^1.2.0" + mkdirp "^0.5.1" + source-map-support "^0.5.6" + yn "^2.0.0" + +ts-node@^10.9.1: + version "10.9.1" + resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-10.9.1.tgz#e73de9102958af9e1f0b168a6ff320e25adcff4b" + integrity sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw== + dependencies: + "@cspotcode/source-map-support" "^0.8.0" + "@tsconfig/node10" "^1.0.7" + "@tsconfig/node12" "^1.0.7" + "@tsconfig/node14" "^1.0.0" + "@tsconfig/node16" "^1.0.2" + acorn "^8.4.1" + acorn-walk "^8.1.1" + arg "^4.1.0" + create-require "^1.1.0" + diff "^4.0.1" + make-error "^1.1.1" + v8-compile-cache-lib "^3.0.1" + yn "3.1.1" + +tsconfig-paths@^3.5.0: + version "3.14.2" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" + integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== + dependencies: + "@types/json5" "^0.0.29" + json5 "^1.0.2" + minimist "^1.2.6" + strip-bom "^3.0.0" + +tslib@^2.0.3, tslib@^2.1.0, tslib@^2.3.0: + version "2.5.0" + resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.5.0.tgz#42bfed86f5787aeb41d031866c8f402429e0fddf" + integrity sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg== + +tweetnacl-util@^0.15.1: + version "0.15.1" + resolved "https://registry.yarnpkg.com/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz#b80fcdb5c97bcc508be18c44a4be50f022eea00b" + integrity sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw== + +tweetnacl@1.0.3, tweetnacl@^1.0.1, tweetnacl@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-1.0.3.tgz#ac0af71680458d8a6378d0d0d050ab1407d35596" + integrity sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw== + +type-detect@^4.0.0, type-detect@^4.0.5: + version "4.0.8" + resolved "https://registry.yarnpkg.com/type-detect/-/type-detect-4.0.8.tgz#7646fb5f18871cfbb7749e69bd39a6388eb7450c" + integrity sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g== + +type-fest@^2.5.2: + version "2.19.0" + resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-2.19.0.tgz#88068015bb33036a598b952e55e9311a60fd3a9b" + integrity sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA== + +typeforce@^1.11.5: + version "1.18.0" + resolved "https://registry.yarnpkg.com/typeforce/-/typeforce-1.18.0.tgz#d7416a2c5845e085034d70fcc5b6cc4a90edbfdc" + integrity sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g== + +typescript@^5.0.4: + version "5.0.4" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.0.4.tgz#b217fd20119bd61a94d4011274e0ab369058da3b" + integrity sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw== + +u3@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/u3/-/u3-0.1.1.tgz#5f52044f42ee76cd8de33148829e14528494b73b" + integrity sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w== + +untildify@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" + integrity sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw== + +utf-8-validate@^5.0.2, utf-8-validate@^5.0.5: + version "5.0.10" + resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2" + integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ== + dependencies: + node-gyp-build "^4.3.0" + +util-deprecate@^1.0.1, util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== + +uuid@^8.3.2: + version "8.3.2" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" + integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== + +v8-compile-cache-lib@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz#6336e8d71965cb3d35a1bbb7868445a7c05264bf" + integrity sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg== + +vlq@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/vlq/-/vlq-2.0.4.tgz#6057b85729245b9829e3cc7755f95b228d4fe041" + integrity sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA== + +webidl-conversions@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871" + integrity sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ== + +whatwg-url@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d" + integrity sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw== + dependencies: + tr46 "~0.0.3" + webidl-conversions "^3.0.0" + +wif@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/wif/-/wif-2.0.6.tgz#08d3f52056c66679299726fade0d432ae74b4704" + integrity sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ== + dependencies: + bs58check "<3.0.0" + +workerpool@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/workerpool/-/workerpool-6.2.1.tgz#46fc150c17d826b86a008e5a4508656777e9c343" + integrity sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw== + +wrap-ansi@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" + integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== + dependencies: + ansi-styles "^4.0.0" + string-width "^4.1.0" + strip-ansi "^6.0.0" + +wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + integrity sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ== + +ws@7.4.6: + version "7.4.6" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c" + integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A== + +ws@^7, ws@^7.4.5, ws@^7.5.8, ws@^7.5.9: + version "7.5.9" + resolved "https://registry.yarnpkg.com/ws/-/ws-7.5.9.tgz#54fa7db29f4c7cec68b1ddd3a89de099942bb591" + integrity sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q== + +ws@^8.5.0, ws@^8.6.0: + version "8.13.0" + resolved "https://registry.yarnpkg.com/ws/-/ws-8.13.0.tgz#9a9fb92f93cf41512a0735c8f4dd09b8a1211cd0" + integrity sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA== + +xstream@^11.14.0: + version "11.14.0" + resolved "https://registry.yarnpkg.com/xstream/-/xstream-11.14.0.tgz#2c071d26b18310523b6877e86b4e54df068a9ae5" + integrity sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw== + dependencies: + globalthis "^1.0.1" + symbol-observable "^2.0.3" + +xtend@~4.0.1: + version "4.0.2" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" + integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== + +y18n@^5.0.5: + version "5.0.8" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" + integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== + +yargs-parser@20.2.4: + version "20.2.4" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.4.tgz#b42890f14566796f85ae8e3a25290d205f154a54" + integrity sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA== + +yargs-parser@^20.2.2: + version "20.2.9" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" + integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== + +yargs-unparser@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yargs-unparser/-/yargs-unparser-2.0.0.tgz#f131f9226911ae5d9ad38c432fe809366c2325eb" + integrity sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA== + dependencies: + camelcase "^6.0.0" + decamelize "^4.0.0" + flat "^5.0.2" + is-plain-obj "^2.1.0" + +yargs@16.2.0, yargs@^16.1.0: + version "16.2.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-16.2.0.tgz#1c82bf0f6b6a66eafce7ef30e376f49a12477f66" + integrity sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw== + dependencies: + cliui "^7.0.2" + escalade "^3.1.1" + get-caller-file "^2.0.5" + require-directory "^2.1.1" + string-width "^4.2.0" + y18n "^5.0.5" + yargs-parser "^20.2.2" + +yn@3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50" + integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q== + +yn@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/yn/-/yn-2.0.0.tgz#e5adabc8acf408f6385fc76495684c88e6af689a" + integrity sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ== + +yocto-queue@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b" + integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q== + +zen-observable-ts@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz#6c6d9ea3d3a842812c6e9519209365a122ba8b58" + integrity sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg== + dependencies: + zen-observable "0.8.15" + +zen-observable@0.8.15: + version "0.8.15" + resolved "https://registry.yarnpkg.com/zen-observable/-/zen-observable-0.8.15.tgz#96415c512d8e3ffd920afd3889604e30b9eaac15" + integrity sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ== From 9bb179a887441cb9c374d5a085e26cbc4f430f0f Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 04:37:31 +0000 Subject: [PATCH 074/140] add get_price_info_object_id function to pyth::state --- target_chains/sui/contracts/Move.lock | 2 +- target_chains/sui/contracts/Move.toml | 7 +++---- .../sui/contracts/sources/price_info.move | 18 ++++++++++++++++++ target_chains/sui/contracts/sources/state.move | 4 ++++ 4 files changed, 26 insertions(+), 5 deletions(-) diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index f3fd239382..de1bf93efd 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "760db3c81072a4290ca8fbca6dddd47f335f2028", subdir = "sui/wormhole" } +source = { local = "../../../../wormhole/sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 62f3e8aa6b..20dc89a0ab 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,12 +8,11 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] -git = "https://github.com/wormhole-foundation/wormhole.git" -subdir = "sui/wormhole" -rev = "760db3c81072a4290ca8fbca6dddd47f335f2028" +local = "../../../../wormhole/sui/wormhole" [addresses] -pyth = "_" +pyth = "0x0" +wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" [dev-addresses] pyth = "0x100" diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index b5f02d4f63..4857cef2ee 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -55,6 +55,8 @@ module pyth::price_info { ) } + + /// Returns ID of price info object corresponding to price_identifier as a byte vector. public fun get(parent_id: &UID, price_identifier: PriceIdentifier): vector { assert!( contains(parent_id, price_identifier), @@ -68,6 +70,22 @@ module pyth::price_info { ) } + /// Returns ID of price info object corresponding to price_identifier as an ID. + public fun get_id(parent_id: &UID, price_identifier: PriceIdentifier): ID { + assert!( + contains(parent_id, price_identifier), + E_PRICE_IDENTIFIER_NOT_REGISTERED + ); + object::id_from_bytes( + object::id_to_bytes( + table::borrow( + dynamic_object_field::borrow(parent_id, KEY), + price_identifier + ) + ) + ) + } + public fun contains(parent_id: &UID, price_identifier: PriceIdentifier): bool { let ref = dynamic_object_field::borrow(parent_id, KEY); table::contains(ref, price_identifier) diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 6429ef42ac..1b443dd32d 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -160,6 +160,10 @@ module pyth::state { data_source::emitter_address(&governance_data_source) } + public fun get_price_info_object_id(self: &State): ID { + price_info::get_price_info_object_id(&self.UID) + } + //////////////////////////////////////////////////////////////////////////// // // Privileged `State` Access From 63579eb4a4150e4c0abbceadb47a198d4e82444f Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 04:53:10 +0000 Subject: [PATCH 075/140] tests and build pass --- target_chains/sui/contracts/Move.toml | 6 +----- target_chains/sui/contracts/sources/price_info.move | 4 ++-- target_chains/sui/contracts/sources/state.move | 7 ++++--- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 20dc89a0ab..2657ea9483 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -11,9 +11,5 @@ rev = "09b2081498366df936abae26eea4b2d5cafb2788" local = "../../../../wormhole/sui/wormhole" [addresses] -pyth = "0x0" -wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" - -[dev-addresses] pyth = "0x100" -wormhole = "0x200" +wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index 4857cef2ee..6e93fd96d9 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -57,7 +57,7 @@ module pyth::price_info { /// Returns ID of price info object corresponding to price_identifier as a byte vector. - public fun get(parent_id: &UID, price_identifier: PriceIdentifier): vector { + public fun get_id_bytes(parent_id: &UID, price_identifier: PriceIdentifier): vector { assert!( contains(parent_id, price_identifier), E_PRICE_IDENTIFIER_NOT_REGISTERED @@ -132,7 +132,7 @@ module pyth::price_info { add(&mut uid, price_identifier, id); - let result = get(&uid, price_identifier); + let result = get_id_bytes(&uid, price_identifier); // Assert that ID matches original. assert!(result==x"19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba", 0); diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index 1b443dd32d..fb78edac1c 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -6,7 +6,7 @@ module pyth::state { use pyth::data_source::{Self, DataSource}; use pyth::price_info::{Self}; - use pyth::price_identifier::{PriceIdentifier}; + use pyth::price_identifier::{Self, PriceIdentifier}; use pyth::version_control::{Self}; use wormhole::consumed_vaas::{Self, ConsumedVAAs}; @@ -160,8 +160,9 @@ module pyth::state { data_source::emitter_address(&governance_data_source) } - public fun get_price_info_object_id(self: &State): ID { - price_info::get_price_info_object_id(&self.UID) + public fun get_price_info_object_id(self: &State, price_identifier_bytes: vector): ID { + let price_identifier = price_identifier::from_byte_vec(price_identifier_bytes); + price_info::get_id(&self.id, price_identifier) } //////////////////////////////////////////////////////////////////////////// From c72e9acc130b42ced76efd0ca24c8973250fbbcd Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 05:20:41 +0000 Subject: [PATCH 076/140] update scripts --- .../scripts/pyth_create_all_price_feeds.ts | 114 ++++++++++++++++++ .../sui/scripts/pyth_create_price_feed.ts | 15 ++- target_chains/sui/scripts/pyth_deploy.ts | 4 +- target_chains/sui/scripts/pyth_init_state.ts | 6 +- .../sui/scripts/pyth_update_price_feeds.ts | 51 ++++---- target_chains/sui/scripts/registry.ts | 4 +- 6 files changed, 159 insertions(+), 35 deletions(-) create mode 100644 target_chains/sui/scripts/pyth_create_all_price_feeds.ts diff --git a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts new file mode 100644 index 0000000000..2b08cb7342 --- /dev/null +++ b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts @@ -0,0 +1,114 @@ +/// We build a programmable txn to create a price feed. +import dotenv from "dotenv" +import axios from 'axios'; +import { PriceServiceConnection } from '@pythnetwork/price-service-client'; + +import { + RawSigner, + SUI_CLOCK_OBJECT_ID, + TransactionBlock, + fromB64, + normalizeSuiObjectId, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, + TypeTagSerializer +} from "@optke3/sui.js"; + +dotenv.config({"path":"~/.env"}) + +import {REGISTRY, NETWORK} from "./registry" + +let network = NETWORK.TESTNET +const registry = REGISTRY[network] +const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; + +const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", { + priceFeedRequestConfig: { + binary: true, + }, +}) + +async function main() { + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + network == "MAINNET" ? + Buffer.from(walletPrivateKey, "hex") + : + Buffer.from(walletPrivateKey, "base64").subarray(1) + ), + provider + ); + console.log(wallet.getAddress()) + + // Fetch all price IDs + let {data} = await axios.get("https://xc-testnet.pyth.network/api/price_feed_ids") + console.log("all price feed ids: ", data) + + console.log(data.slice(0, 3)) + const priceFeedVAAs = await connection.getLatestVaas(data.slice(0, 30)); + console.log("price feed VAAs: ", priceFeedVAAs) + + //create_price_feeds(wallet, registry, data.slice(0, 10)) +} + +main(); + +async function create_price_feeds( + signer: RawSigner, + registry: any, + priceFeedVAAs: Array +) { + const tx = new TransactionBlock(); + + let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] + let PYTH_STATE = registry["PYTH_STATE_ID"] + let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"] + let WORM_STATE = registry["WORMHOLE_STATE_ID"] + console.log("PYTH_PACKAGE: ", PYTH_PACKAGE) + console.log("PYTH_STATE: ", PYTH_STATE) + console.log("WORM_PACKAGE: ", WORM_PACKAGE) + console.log("WORM_STATE: ", WORM_STATE) + console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) + + // let [verified_vaa] = tx.moveCall({ + // target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + // arguments: [ + // tx.object(WORM_STATE), + // tx.pure([...Buffer.from(vaa_bytes, "base64")]), + // tx.object(SUI_CLOCK_OBJECT_ID), + // ], + // }); + + // tx.moveCall({ + // target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, + // arguments: [ + // tx.object(PYTH_STATE), + // //tx.makeMoveVec({ type: TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr('0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA')), objects: [verified_vaa] }), // has type vector + // //@ts-ignore + // tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, + // tx.object(SUI_CLOCK_OBJECT_ID) + // ], + // }); + + + tx.setGasBudget(1_000_000_000n); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result) + return result +} diff --git a/target_chains/sui/scripts/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth_create_price_feed.ts index 8881bcca61..3c7e474358 100644 --- a/target_chains/sui/scripts/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth_create_price_feed.ts @@ -37,7 +37,7 @@ async function main() { provider ); console.log(wallet.getAddress()) - const vaa_bytes = "AQAAAAABAD8FwBwewFlgIZEo0t7Dpu8mz9i+bPEJ5PfOWLUbxFX7AMvugmXM9tX9k+r/QxC8kIXNgMhL73KSydo2GSUstSAAZFHbwAAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAETHVsBUDJXSAADAAEAAQIABQCdKP4F0nCMZXEYKnydH/RXoiG0Ze316prxNz+VYtFrjRX5wBcroQ36TRkIjZT1v2HTtU1b10g6MiqYLhNz7o6jGwAAAphd6NU9AAAAAB6Wb4P////4AAACmAbWa0AAAAAAJefHvAEAAAABAAAAAgAAAABkUdvAAAAAAGRR28AAAAAAZFHbvwAAAphbwUynAAAAAB3wzlkAAAAAZFHbv4s423AOizRkDmgeyac+iWCL2ilBVUeiJPllhRkrS53HlLzkruiP36W1jYEJC9azeEcX+m34VBnZ8EQzuz1hXVwAAAAABWEWZgAAAAAAAKsd////+AAAAAAFXhNiAAAAAAAAw3EBAAAAAQAAAAIAAAAAZFHbwAAAAABkUdvAAAAAAGRR278AAAAABWEWZgAAAAAAAKsdAAAAAGRR2787aaPPB1ZGxf2BSLcFuBB+YaGiU9XYqENV3LYos/HRIDF3Xh1olxKeioTuupdXePtQAVuIA56bwUC72DlpSsCuAAAAAAB3mT0AAAAAAAAPk/////gAAAAAAHeFVwAAAAAAABJyAQAAAAEAAAACAAAAAGRR28AAAAAAZFHbwAAAAABkUdu/AAAAAAB3mTAAAAAAAAANrgAAAABkUdu/SGZ95ESKIEFTqpC4mv1o8FTA5ZWWxNrHr0W+iuWp6c0FqTTLO7re+TtSWXirW9PVzjuPxnF7nqGCpojF2O6OAgAAAAAO3VLRAAAAAAACEbH////4AAAAAA61qRQAAAAAAAGV1wEAAAABAAAAAgAAAABkUdvAAAAAAGRR278AAAAAZFHbvwAAAAAO3VLRAAAAAAACEbEAAAAAZFHbv1bQch5gfcAz/wK+4huZGOE7zOuX4nmi0fooiPAFat09tWItMvNtyCCvKIqrd5Ez7xIF0xI7viVmA4Sbgg3ki4cAAAAAH0BMAQAAAAAAAvAf////+AAAAAAfVHCKAAAAAAAC2YABAAAAAQAAAAIAAAAAZFHbwAAAAABkUdu/AAAAAGRR278AAAAAH0BMAQAAAAAAAvAfAAAAAGRR278=" + const vaa_bytes = "AQAAAAABAMN885gNTVEako6fczJq22AOFSRWdUsUOxPQVHSnxhj3ecU2gJVDBlAcY6G9FWmGCcGcdZ/5iVXQCm+0loHvfqwAZE/kXQAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAADugxEBUDJXSAADAAEAAQIABQCdWnl7akEQMaEEfYaw/fhuJFW+jn/vFq7yPbIJcj2vlB9hIm05vuoZ0zTxfC/rzifhJkbYRnWSTrsCuc2upocn4wAAAABBxD4gAAAAAAAJ2WD////4AAAAAEIrzm4AAAAAAAn/ewEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAABBxC0/AAAAAAAJi/EAAAAAZE/kXLWIXWbTUV6YNI7DMlk7XRbg/bhT77Ye1dzAvPgOkWCB11ZqO6f3KG7VT0rn6YP0QgrgseDziS4R+cSrEHu617kAAAAAZCplIAAAAAAAEu4I////+AAAAABkvzOKAAAAAAAQZDgBAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAAAZCplIAAAAAAAFIotAAAAAGRP5Fw3+21L/xkSgKfP+Av17aeofBUakdmoW6So+OLPlX5BjbMn2c8OzXk6F1+nCsjS3BCdRGJ1jlVpYsSoewLsTz8VAAAAAC1gXb0AAAAAAAdkLv////gAAAAALZa00gAAAAAABpwgAQAAAAEAAAACAAAAAGRP5F0AAAAAZE/kXQAAAABkT+RcAAAAAC1gXb0AAAAAAAdkLgAAAABkT+RcHNsaXh40VtKXfuDT1wdlI58IpChVuVCP1HnhXG3E0f7s9VN3DZsQll+Ptkdx6T9WkKGC7cMr5KMjbgyqpuBYGgAAAAewLri2AAAAAAEnq0n////4AAAAB7uEHmgAAAAAAV8hnAEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAAewBz2PAAAAAAE4kisAAAAAZE/kXGogZxwOP4yyGc4/RuWuCWpPL9+TbSvU2okl9wCH1R3YMAKUeVmHlykONjihcSwpveI2fQ7KeU93iyW1pHLxkt4AAAACtJQuKQAAAAAAn4lX////+AAAAAK3aIHUAAAAAACmrg4BAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAACtJOhZQAAAAAAnAlPAAAAAGRP5Fw="; create_price_feeds(wallet, registry, vaa_bytes) } @@ -69,13 +69,24 @@ async function create_price_feeds( ], }); + // console.log("parsed thing: ", TypeTagSerializer.tagToString( + // { vector: + // { + // address: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7', + // module: 'vaa', + // name: 'VAA' + // } + // } + // ) + // ) + tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, arguments: [ tx.object(PYTH_STATE), //tx.makeMoveVec({ type: TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr('0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA')), objects: [verified_vaa] }), // has type vector //@ts-ignore - tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, + tx.makeMoveVec({ type: `${WORM_STATE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, tx.object(SUI_CLOCK_OBJECT_ID) ], }); diff --git a/target_chains/sui/scripts/pyth_deploy.ts b/target_chains/sui/scripts/pyth_deploy.ts index 158c6eaef9..c42c33c21a 100644 --- a/target_chains/sui/scripts/pyth_deploy.ts +++ b/target_chains/sui/scripts/pyth_deploy.ts @@ -10,7 +10,7 @@ import { Ed25519Keypair, testnetConnection, Connection, - } from "@mysten/sui.js"; + } from "@optke3/sui.js"; import { execSync } from "child_process"; import fs from "fs"; import { resolve } from "path"; @@ -66,7 +66,7 @@ main() const transactionBlock = new TransactionBlock(); // important - transactionBlock.setGasBudget(5000000000); + transactionBlock.setGasBudget(2000000000); const [upgradeCap] = transactionBlock.publish({ modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), diff --git a/target_chains/sui/scripts/pyth_init_state.ts b/target_chains/sui/scripts/pyth_init_state.ts index 882793c693..b250591908 100644 --- a/target_chains/sui/scripts/pyth_init_state.ts +++ b/target_chains/sui/scripts/pyth_init_state.ts @@ -10,7 +10,7 @@ import { Ed25519Keypair, testnetConnection, Connection, -} from "@mysten/sui.js"; +} from "@optke3/sui.js"; import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "./registry" dotenv.config({"path":"~/.env"}) @@ -36,8 +36,8 @@ async function main() { const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] // Note: Set these before calling init_pyth - const upgradeCap = "0xf253b931426f2aba0b0150b86323a41061b6e6e34e7f88f07a80c01d8903d442" - const deployerCap = "0x26a3696ca84a81f0545c66093b63245cc32f2907c823d89d7eb1146ae12f27ca" + const upgradeCap = "0xf23ac8c9b43c96a1cfcd4b78929b1da0b2e184966e7ea81eaefb911eebae4196" + const deployerCap = "0xe9d0e33aea42915a82e8ac8a4dbf015b0410afe1fcfbbd700ed820670468c9fc" init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap) } diff --git a/target_chains/sui/scripts/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth_update_price_feeds.ts index a21b3aa699..7c9787d6ab 100644 --- a/target_chains/sui/scripts/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth_update_price_feeds.ts @@ -4,6 +4,7 @@ /// /// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet import dotenv from "dotenv" +import { PriceServiceConnection } from '@pythnetwork/price-service-client'; import { RawSigner, @@ -16,7 +17,7 @@ import { testnetConnection, Connection, TypeTag -} from "@mysten/sui.js"; +} from "@optke3/sui.js"; dotenv.config({"path":"~/.env"}) @@ -27,6 +28,12 @@ const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; +const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", { + priceFeedRequestConfig: { + binary: true, + }, +}) + async function main() { if (walletPrivateKey === undefined) { throw new Error("SUI_TESTNET unset in environment"); @@ -43,7 +50,7 @@ async function main() { console.log(wallet.getAddress()) // update a single price feed - let price_feed_id = "0x61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3"; // ATOM/USD + let price_feed_id = "0xf9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b"; // BTC/USD update_price_feeds(wallet, registry, price_feed_id) } @@ -66,43 +73,35 @@ async function update_price_feeds( console.log("WORM_STATE: ", WORM_STATE) console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) - let [price_info_object_id] = tx.moveCall({ - target: `${PYTH_PACKAGE}::pyth::`, + let [ID] = tx.moveCall({ + target: `${PYTH_PACKAGE}::state::get_price_info_object_id`, arguments: [ tx.object(PYTH_STATE), - tx.makeMoveVec({ type: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA', objects: [verified_vaa] }), // has type vector - tx.object(SUI_CLOCK_OBJECT_ID) + tx.pure([...Buffer.from(price_feed_id, "hex")]), // price identifier ], }); + // get VAA for price attestation + const priceFeedVAAs = await connection.getLatestVaas([price_feed_id]); + let [verified_vaa] = tx.moveCall({ - target: `${WORM_PACKAGE}::vaa::parse_and_verify`, - arguments: [ - tx.object(WORM_STATE), - tx.pure([...Buffer.from(vaa_bytes, "base64")]), - tx.object(SUI_CLOCK_OBJECT_ID), - ], + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(priceFeedVAAs[0], "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], }); - tx.moveCall({ - target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, + let [ID] = tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::update_price_feeds`, arguments: [ tx.object(PYTH_STATE), - tx.makeMoveVec({ type: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA', objects: [verified_vaa] }), // has type vector - tx.object(SUI_CLOCK_OBJECT_ID) + tx.pure([...Buffer.from(price_feed_id, "hex")]), // price identifier ], }); - // tx.moveCall({ - // target: `${PYTH_PACKAGE}::state::get_fee_recipient`, - // arguments: [ - // tx.pure(PYTH_STATE), - // //tx.makeMoveVec({ objects: [verified_vaa] }), // has type vector - // //tx.object(SUI_CLOCK_OBJECT_ID) - // ], - // }); - - tx.setGasBudget(1_000_000_000n); + tx.setGasBudget(2000000000); let result = await signer.signAndExecuteTransactionBlock({ transactionBlock: tx, diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index 8379139e6d..2899bccca7 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -14,8 +14,8 @@ export const REGISTRY = "RPC_URL": "http://0.0.0.0:9000" }, TESTNET: { - "PYTH_PACKAGE_ID": "0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73", - "PYTH_STATE_ID": "0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8", + "PYTH_PACKAGE_ID": "0xc9e69550ad36bd5e8ce39329ef05ad65c27a5820bd089f8588ae1d85ac991ed6", + "PYTH_STATE_ID": "0xb94f56f6439a723d25e37b6030a5c7da153ef2c786058b7dd0249de657933f64", "WORMHOLE_PACKAGE_ID": "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", "WORMHOLE_STATE_ID": "0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a", "RPC_URL": "https://fullnode.testnet.sui.io:443" From 40843f2281f8aa9c57fb9b16336c2b910bfbd86d Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 05:51:59 +0000 Subject: [PATCH 077/140] Pyth mainnet deploy, create all price feeds script --- target_chains/sui/README.md | 4 +- target_chains/sui/contracts/Move.toml | 6 +- .../scripts/pyth_create_all_price_feeds.ts | 78 +++++++++---------- target_chains/sui/scripts/pyth_deploy.ts | 9 ++- target_chains/sui/scripts/pyth_get_vaas.ts | 20 +++-- target_chains/sui/scripts/pyth_init_state.ts | 12 +-- target_chains/sui/scripts/registry.ts | 8 +- 7 files changed, 69 insertions(+), 68 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 418635eaa6..e79b8af191 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -60,8 +60,8 @@ $ make build ## 4. Contracts Registry ## Pyth on Testnet -- PYTH_PACKAGE_ID: [0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73](https://explorer.sui.io/object/0x6ab42a4799973ce95dfc3579b10343122da4e19108fbf1036d83fe0422192f73) -- PYTH_STATE_ID: [0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8](https://explorer.sui.io/object/0x35a0d5a868ca3612822045985cbb869354fa10b389e1816d065ebd2909cab6e8) +- PYTH_PACKAGE_ID: [0x7c017b047a3c9db5a8f4586d347c54869b761b6d6b0882a179823e8642faf7b9](https://explorer.sui.io/object/0x7c017b047a3c9db5a8f4586d347c54869b761b6d6b0882a179823e8642faf7b9) +- PYTH_STATE_ID: [0x3fc17e66d5ced3bf62f3fe8289cb2cb78c311a1e1c9700727ecd278d242e9e88](https://explorer.sui.io/object/0x3fc17e66d5ced3bf62f3fe8289cb2cb78c311a1e1c9700727ecd278d242e9e88) ## Wormhole on Testnet - WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7) diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 2657ea9483..ff5af27013 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -11,5 +11,9 @@ rev = "09b2081498366df936abae26eea4b2d5cafb2788" local = "../../../../wormhole/sui/wormhole" [addresses] +pyth = "0x0" +wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" + +[dev-addresses] pyth = "0x100" -wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" +wormhole = "0x200" \ No newline at end of file diff --git a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts index 2b08cb7342..ad96a9647d 100644 --- a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts @@ -50,11 +50,10 @@ async function main() { let {data} = await axios.get("https://xc-testnet.pyth.network/api/price_feed_ids") console.log("all price feed ids: ", data) - console.log(data.slice(0, 3)) - const priceFeedVAAs = await connection.getLatestVaas(data.slice(0, 30)); + const priceFeedVAAs = await connection.getLatestVaas(data); console.log("price feed VAAs: ", priceFeedVAAs) - //create_price_feeds(wallet, registry, data.slice(0, 10)) + create_price_feeds(wallet, registry, priceFeedVAAs) } main(); @@ -64,8 +63,6 @@ async function create_price_feeds( registry: any, priceFeedVAAs: Array ) { - const tx = new TransactionBlock(); - let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] let PYTH_STATE = registry["PYTH_STATE_ID"] let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"] @@ -76,39 +73,40 @@ async function create_price_feeds( console.log("WORM_STATE: ", WORM_STATE) console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) - // let [verified_vaa] = tx.moveCall({ - // target: `${WORM_PACKAGE}::vaa::parse_and_verify`, - // arguments: [ - // tx.object(WORM_STATE), - // tx.pure([...Buffer.from(vaa_bytes, "base64")]), - // tx.object(SUI_CLOCK_OBJECT_ID), - // ], - // }); - - // tx.moveCall({ - // target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, - // arguments: [ - // tx.object(PYTH_STATE), - // //tx.makeMoveVec({ type: TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr('0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA')), objects: [verified_vaa] }), // has type vector - // //@ts-ignore - // tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, - // tx.object(SUI_CLOCK_OBJECT_ID) - // ], - // }); - - - tx.setGasBudget(1_000_000_000n); - - let result = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(result) - return result + for (let vaa of priceFeedVAAs){ + // create new txn block for creating a price feed + const tx = new TransactionBlock(); + + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(vaa, "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, + arguments: [ + tx.object(PYTH_STATE), + tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, + tx.object(SUI_CLOCK_OBJECT_ID) + ], + }); + + tx.setGasBudget(1000000000); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result) + } } diff --git a/target_chains/sui/scripts/pyth_deploy.ts b/target_chains/sui/scripts/pyth_deploy.ts index c42c33c21a..1226e82ba1 100644 --- a/target_chains/sui/scripts/pyth_deploy.ts +++ b/target_chains/sui/scripts/pyth_deploy.ts @@ -21,14 +21,15 @@ import {REGISTRY, NETWORK} from "./registry" dotenv.config({"path":"~/.env"}) -let network = NETWORK.TESTNET +// ctrl+f network and replace with desired from [MAINNET, TESTNET, DEVNET] +let network = NETWORK.MAINNET const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_TESTNET; +const walletPrivateKey = process.env.SUI_MAINNET; async function main(){ if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); + throw new Error("SUI_MAINNET unset in environment"); } const wallet = new RawSigner( Ed25519Keypair.fromSecretKey( @@ -66,7 +67,7 @@ main() const transactionBlock = new TransactionBlock(); // important - transactionBlock.setGasBudget(2000000000); + transactionBlock.setGasBudget(4000000000); const [upgradeCap] = transactionBlock.publish({ modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), diff --git a/target_chains/sui/scripts/pyth_get_vaas.ts b/target_chains/sui/scripts/pyth_get_vaas.ts index 6d0eeb83ca..b93ce78a3c 100644 --- a/target_chains/sui/scripts/pyth_get_vaas.ts +++ b/target_chains/sui/scripts/pyth_get_vaas.ts @@ -2,23 +2,21 @@ /// price feed service. import { PriceServiceConnection } from '@pythnetwork/price-service-client'; import { Buffer } from 'buffer'; +import axios from 'axios'; + async function main(){ - const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", { + const connection = new PriceServiceConnection("https://xc-mainnet.pyth.network", { priceFeedRequestConfig: { binary: true, }, }) - // const priceIds = [ - // "0xff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace", - // "0xe62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43", - // "0xdcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" - // ]; - const priceIds = [ - "0xf9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" - ] - const priceFeedVAAs = await connection.getLatestVaas(priceIds); - console.log(priceFeedVAAs) + // Fetch all price IDs + let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") + console.log("number of all price feed ids: ", data.length) + + const priceFeedVAAs = await connection.getLatestVaas(data.slice(0, 100)); + console.log("number of VAAs: ", priceFeedVAAs.length) } main(); diff --git a/target_chains/sui/scripts/pyth_init_state.ts b/target_chains/sui/scripts/pyth_init_state.ts index b250591908..3547f3f6a8 100644 --- a/target_chains/sui/scripts/pyth_init_state.ts +++ b/target_chains/sui/scripts/pyth_init_state.ts @@ -15,20 +15,20 @@ import { import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "./registry" dotenv.config({"path":"~/.env"}) -let network = NETWORK.TESTNET // <= Update this when changing network +let network = NETWORK.MAINNET // <= Update this when changing network const registry = REGISTRY[network] const initial_data_sources = INITIAL_DATA_SOURCES[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"]})) -let walletPrivateKey = process.env.SUI_TESTNET_BASE_64; // <= Update this when changing network +let walletPrivateKey = process.env.SUI_MAINNET; // <= Update this when changing network async function main() { if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); + throw new Error("SUI_MAINNET unset in environment"); } const wallet = new RawSigner( Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "base64").subarray(1) + Buffer.from(walletPrivateKey, "hex") ), provider ); @@ -36,8 +36,8 @@ async function main() { const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] // Note: Set these before calling init_pyth - const upgradeCap = "0xf23ac8c9b43c96a1cfcd4b78929b1da0b2e184966e7ea81eaefb911eebae4196" - const deployerCap = "0xe9d0e33aea42915a82e8ac8a4dbf015b0410afe1fcfbbd700ed820670468c9fc" + const upgradeCap = "0x92d51150b762fd694877b23ecaba79a3fc1032bc24914d145a393b62e1e61894" + const deployerCap = "0x645ba70c9087d54a3e5e6abed0d506516dddb71d987b0ee503593de2677caefe" init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap) } diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index 2899bccca7..4956d830ef 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -21,10 +21,10 @@ export const REGISTRY = "RPC_URL": "https://fullnode.testnet.sui.io:443" }, MAINNET: { - "PYTH_PACKAGE_ID": "0x0", - "PYTH_STATE_ID": "0x0", - "WORMHOLE_PACKAGE_ID": "0x0", - "WORMHOLE_STATE_ID": "0x0", + "PYTH_PACKAGE_ID": "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861", + "PYTH_STATE_ID": "0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca", + "WORMHOLE_PACKAGE_ID": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a", + "WORMHOLE_STATE_ID": "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c", "RPC_URL": "https://fullnode.mainnet.sui.io:443" } } From 7e3250c45d081bb3386bc3691a5581fe012fff4c Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 06:01:52 +0000 Subject: [PATCH 078/140] clean up script imports --- .../scripts/pyth_create_all_price_feeds.ts | 33 +++++++++---------- .../sui/scripts/pyth_create_price_feed.ts | 30 ++--------------- target_chains/sui/scripts/pyth_deploy.ts | 2 -- target_chains/sui/scripts/pyth_get_vaas.ts | 1 - target_chains/sui/scripts/pyth_init_state.ts | 4 --- .../sui/scripts/pyth_update_price_feeds.ts | 4 --- 6 files changed, 18 insertions(+), 56 deletions(-) diff --git a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts index ad96a9647d..425b7c767d 100644 --- a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts @@ -7,25 +7,21 @@ import { RawSigner, SUI_CLOCK_OBJECT_ID, TransactionBlock, - fromB64, - normalizeSuiObjectId, JsonRpcProvider, Ed25519Keypair, - testnetConnection, - Connection, - TypeTagSerializer + Connection } from "@optke3/sui.js"; dotenv.config({"path":"~/.env"}) import {REGISTRY, NETWORK} from "./registry" -let network = NETWORK.TESTNET +let network = NETWORK.MAINNET const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; +const walletPrivateKey = process.env.SUI_MAINNET; -const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", { +const connection = new PriceServiceConnection("https://xc-mainnet.pyth.network", { priceFeedRequestConfig: { binary: true, }, @@ -33,27 +29,30 @@ const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", async function main() { if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); + throw new Error("SUI_MAINNET unset in environment"); } const wallet = new RawSigner( Ed25519Keypair.fromSecretKey( - network == "MAINNET" ? Buffer.from(walletPrivateKey, "hex") - : - Buffer.from(walletPrivateKey, "base64").subarray(1) ), provider ); console.log(wallet.getAddress()) // Fetch all price IDs - let {data} = await axios.get("https://xc-testnet.pyth.network/api/price_feed_ids") - console.log("all price feed ids: ", data) + let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") + const price_feed_ids = data; + console.log("num price feed ids: ", price_feed_ids.length) - const priceFeedVAAs = await connection.getLatestVaas(data); - console.log("price feed VAAs: ", priceFeedVAAs) + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(0, 50)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(50, 100)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(100, 150)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(150, 200)); + const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(200, 250)); - create_price_feeds(wallet, registry, priceFeedVAAs) + console.log("price feed VAAs len: ", priceFeedVAAs.length) + + //create_price_feeds(wallet, registry, priceFeedVAAs) } main(); diff --git a/target_chains/sui/scripts/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth_create_price_feed.ts index 3c7e474358..a898304f9b 100644 --- a/target_chains/sui/scripts/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth_create_price_feed.ts @@ -5,13 +5,9 @@ import { RawSigner, SUI_CLOCK_OBJECT_ID, TransactionBlock, - fromB64, - normalizeSuiObjectId, JsonRpcProvider, Ed25519Keypair, - testnetConnection, - Connection, - TypeTagSerializer + Connection } from "@optke3/sui.js"; dotenv.config({"path":"~/.env"}) @@ -69,38 +65,16 @@ async function create_price_feeds( ], }); - // console.log("parsed thing: ", TypeTagSerializer.tagToString( - // { vector: - // { - // address: '0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7', - // module: 'vaa', - // name: 'VAA' - // } - // } - // ) - // ) - tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, arguments: [ tx.object(PYTH_STATE), - //tx.makeMoveVec({ type: TypeTagSerializer.tagToString(TypeTagSerializer.parseFromStr('0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7::vaa::VAA')), objects: [verified_vaa] }), // has type vector - //@ts-ignore tx.makeMoveVec({ type: `${WORM_STATE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, tx.object(SUI_CLOCK_OBJECT_ID) ], }); - // tx.moveCall({ - // target: `${PYTH_PACKAGE}::state::get_fee_recipient`, - // arguments: [ - // tx.pure(PYTH_STATE), - // //tx.makeMoveVec({ objects: [verified_vaa] }), // has type vector - // //tx.object(SUI_CLOCK_OBJECT_ID) - // ], - // }); - - tx.setGasBudget(1_000_000_000n); + tx.setGasBudget(2000000000); let result = await signer.signAndExecuteTransactionBlock({ transactionBlock: tx, diff --git a/target_chains/sui/scripts/pyth_deploy.ts b/target_chains/sui/scripts/pyth_deploy.ts index 1226e82ba1..23e5ffd34a 100644 --- a/target_chains/sui/scripts/pyth_deploy.ts +++ b/target_chains/sui/scripts/pyth_deploy.ts @@ -5,10 +5,8 @@ import { normalizeSuiObjectId, RawSigner, TransactionBlock, - SUI_CLOCK_OBJECT_ID, JsonRpcProvider, Ed25519Keypair, - testnetConnection, Connection, } from "@optke3/sui.js"; import { execSync } from "child_process"; diff --git a/target_chains/sui/scripts/pyth_get_vaas.ts b/target_chains/sui/scripts/pyth_get_vaas.ts index b93ce78a3c..dbc2f04826 100644 --- a/target_chains/sui/scripts/pyth_get_vaas.ts +++ b/target_chains/sui/scripts/pyth_get_vaas.ts @@ -1,7 +1,6 @@ /// Fetch price feed VAAs of interest from the Pyth /// price feed service. import { PriceServiceConnection } from '@pythnetwork/price-service-client'; -import { Buffer } from 'buffer'; import axios from 'axios'; async function main(){ diff --git a/target_chains/sui/scripts/pyth_init_state.ts b/target_chains/sui/scripts/pyth_init_state.ts index 3547f3f6a8..253a1b049e 100644 --- a/target_chains/sui/scripts/pyth_init_state.ts +++ b/target_chains/sui/scripts/pyth_init_state.ts @@ -2,13 +2,9 @@ import dotenv from "dotenv" import { RawSigner, - SUI_CLOCK_OBJECT_ID, TransactionBlock, - fromB64, - normalizeSuiObjectId, JsonRpcProvider, Ed25519Keypair, - testnetConnection, Connection, } from "@optke3/sui.js"; diff --git a/target_chains/sui/scripts/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth_update_price_feeds.ts index 7c9787d6ab..9bcd613fc6 100644 --- a/target_chains/sui/scripts/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth_update_price_feeds.ts @@ -10,13 +10,9 @@ import { RawSigner, SUI_CLOCK_OBJECT_ID, TransactionBlock, - fromB64, - normalizeSuiObjectId, JsonRpcProvider, Ed25519Keypair, - testnetConnection, Connection, - TypeTag } from "@optke3/sui.js"; dotenv.config({"path":"~/.env"}) From cfd4549c085f82107a935872a2f97e2a6b802bc1 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 06:03:02 +0000 Subject: [PATCH 079/140] add mainnet addresses to readme --- target_chains/sui/README.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index e79b8af191..c3d0a64472 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -68,9 +68,9 @@ $ make build - WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a) ## Pyth on Mainnet -- PYTH_ID: TBA -- PYTH_STATE_ID: TBA +- PYTH_PACKAGE_ID: [0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861](https://explorer.sui.io/object/0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861) +- PYTH_STATE_ID: [0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca](https://explorer.sui.io/object/0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca) ## Wormhole on Mainnet -- WORMHOLE_ID: TBA -- WORMHOLE_STATE_ID: TBA +- WORMHOLE_PACKAGE_ID: [0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a](https://explorer.sui.io/object/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a) +- WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) From 1dab5b37d64adeb8545ff958f8d60fe513448b8f Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 06:08:04 +0000 Subject: [PATCH 080/140] correct Pyth Mainnet addresses --- target_chains/sui/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index c3d0a64472..b76ca7e7da 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -68,8 +68,8 @@ $ make build - WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a) ## Pyth on Mainnet -- PYTH_PACKAGE_ID: [0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861](https://explorer.sui.io/object/0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861) -- PYTH_STATE_ID: [0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca](https://explorer.sui.io/object/0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca) +- PYTH_PACKAGE_ID: [0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861](https://explorer.sui.io/object/0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) +- PYTH_STATE_ID: [0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca](https://explorer.sui.io/object/0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) ## Wormhole on Mainnet - WORMHOLE_PACKAGE_ID: [0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a](https://explorer.sui.io/object/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a) From 51cd4610fe84769746f2828d57c12f247e9c20f5 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 14:24:29 +0000 Subject: [PATCH 081/140] create price feeds on mainnet --- .../scripts/pyth_create_all_price_feeds.ts | 20 +++++++++++++------ .../sui/scripts/pyth_update_price_feeds.ts | 2 ++ 2 files changed, 16 insertions(+), 6 deletions(-) diff --git a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts index 425b7c767d..cfa14b57a3 100644 --- a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth_create_all_price_feeds.ts @@ -44,15 +44,23 @@ async function main() { const price_feed_ids = data; console.log("num price feed ids: ", price_feed_ids.length) - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(0, 50)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(50, 100)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(100, 150)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(150, 200)); - const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(200, 250)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(0, 20)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 21)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 40)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(40, 60)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(60, 80)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(80, 100)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(100, 120)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(120, 140)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(140, 160)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(160, 180)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(180, 200)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(200, 220)); + const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(220, 240)); console.log("price feed VAAs len: ", priceFeedVAAs.length) - //create_price_feeds(wallet, registry, priceFeedVAAs) + create_price_feeds(wallet, registry, priceFeedVAAs) } main(); diff --git a/target_chains/sui/scripts/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth_update_price_feeds.ts index 9bcd613fc6..d1dfb28238 100644 --- a/target_chains/sui/scripts/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth_update_price_feeds.ts @@ -77,6 +77,8 @@ async function update_price_feeds( ], }); + // TODO + // get VAA for price attestation const priceFeedVAAs = await connection.getLatestVaas([price_feed_id]); From cd89f9995ae3f23251c490378e01457ab33e5746 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 14:47:34 +0000 Subject: [PATCH 082/140] use git dependency in Move.toml --- target_chains/sui/contracts/Move.lock | 2 +- .../contracts/{Move.local.toml => Move.mainnet.toml} | 6 +++++- target_chains/sui/contracts/Move.toml | 12 +++++------- 3 files changed, 11 insertions(+), 9 deletions(-) rename target_chains/sui/contracts/{Move.local.toml => Move.mainnet.toml} (70%) diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index de1bf93efd..09f1ab0711 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { local = "../../../../wormhole/sui/wormhole" } +source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad", subdir = "sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.local.toml b/target_chains/sui/contracts/Move.mainnet.toml similarity index 70% rename from target_chains/sui/contracts/Move.local.toml rename to target_chains/sui/contracts/Move.mainnet.toml index 2e4b796cd8..ff5af27013 100644 --- a/target_chains/sui/contracts/Move.local.toml +++ b/target_chains/sui/contracts/Move.mainnet.toml @@ -12,4 +12,8 @@ local = "../../../../wormhole/sui/wormhole" [addresses] pyth = "0x0" -wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" \ No newline at end of file +wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" + +[dev-addresses] +pyth = "0x100" +wormhole = "0x200" \ No newline at end of file diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index ff5af27013..3804b982a6 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,12 +8,10 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] -local = "../../../../wormhole/sui/wormhole" +git = "https://github.com/wormhole-foundation/wormhole.git" +subdir = "sui/wormhole" +rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" [addresses] -pyth = "0x0" -wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" - -[dev-addresses] -pyth = "0x100" -wormhole = "0x200" \ No newline at end of file +pyth = "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861" +wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" \ No newline at end of file From 5a52171961631b165db9d42299f80fa1fdaa2033 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 16:42:45 +0000 Subject: [PATCH 083/140] edits --- .../sources/batch_price_attestation.move | 4 +- .../sources/governance/transfer_fee.move | 51 ------------------- .../sui/contracts/sources/state.move | 2 - 3 files changed, 2 insertions(+), 55 deletions(-) delete mode 100644 target_chains/sui/contracts/sources/governance/transfer_fee.move diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index c477c160b0..4ca84c595b 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -163,7 +163,7 @@ module pyth::batch_price_attestation { #[test] #[expected_failure] fun test_deserialize_batch_price_attestation_invalid_magic() { - use sui::test_scenario::{Self, take_shared, return_shared, ctx}; + use sui::test_scenario::{Self, ctx}; let test = test_scenario::begin(@0x1234); let test_clock = clock::create_for_testing(ctx(&mut test)); // A batch price attestation with a magic number of 0x50325749 @@ -175,7 +175,7 @@ module pyth::batch_price_attestation { #[test] fun test_deserialize_batch_price_attestation() { - use sui::test_scenario::{Self, take_shared, return_shared, ctx}; + use sui::test_scenario::{Self, ctx}; // Set the arrival time let test = test_scenario::begin(@0x1234); let test_clock = clock::create_for_testing(ctx(&mut test)); diff --git a/target_chains/sui/contracts/sources/governance/transfer_fee.move b/target_chains/sui/contracts/sources/governance/transfer_fee.move deleted file mode 100644 index f9361e539b..0000000000 --- a/target_chains/sui/contracts/sources/governance/transfer_fee.move +++ /dev/null @@ -1,51 +0,0 @@ -module pyth::transfer_fee { - - use sui::transfer::Self; - use sui::coin::Self; - use sui::tx_context::TxContext; - - use wormhole::cursor; - use wormhole::external_address::{Self}; - use wormhole::bytes32::{Self}; - - use pyth::state::{Self, State}; - use pyth::version_control::{TransferFee}; - - friend pyth::governance; - - struct PythFee { - amount: u64, - recipient: address - } - - public(friend) fun execute(state: &mut State, payload: vector, ctx: &mut TxContext) { - state::check_minimum_requirement(state); - - let PythFee { amount, recipient } = from_byte_vec(payload); - - transfer::public_transfer( - coin::from_balance( - state::withdraw_fee(state, amount), - ctx - ), - recipient - ); - } - - fun from_byte_vec(payload: vector): PythFee { - let cur = cursor::new(payload); - - // This amount cannot be greater than max u64. - let amount = bytes32::to_u64_be(bytes32::take_bytes(&mut cur)); - - // Recipient must be non-zero address. - let recipient = external_address::take_nonzero(&mut cur); - - cursor::destroy_empty(cur); - - PythFee { - amount: (amount as u64), - recipient: external_address::to_address(recipient) - } - } -} diff --git a/target_chains/sui/contracts/sources/state.move b/target_chains/sui/contracts/sources/state.move index b943561db0..fb78edac1c 100644 --- a/target_chains/sui/contracts/sources/state.move +++ b/target_chains/sui/contracts/sources/state.move @@ -63,8 +63,6 @@ module pyth::state { ): State { let uid = object::new(ctx); - field::add(&mut uid, MigrationControl {}, false); - // Create a set that contains all registered data sources and // attach it to uid as a dynamic field to minimize the // size of State. From b856d9e9fa76ffc154b124d49e913002be4c3cde Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 16:47:29 +0000 Subject: [PATCH 084/140] delete required contracts --- .../contracts/sources/required_version.move | 241 ------------------ 1 file changed, 241 deletions(-) delete mode 100644 target_chains/sui/contracts/sources/required_version.move diff --git a/target_chains/sui/contracts/sources/required_version.move b/target_chains/sui/contracts/sources/required_version.move deleted file mode 100644 index 4528c5d076..0000000000 --- a/target_chains/sui/contracts/sources/required_version.move +++ /dev/null @@ -1,241 +0,0 @@ -// SPDX-License-Identifier: Apache 2 - -/// Note: This module is based on the required_version module -/// from the Sui Wormhole package: -/// https://github.com/wormhole-foundation/wormhole/blob/sui/integration_v2/sui/wormhole/sources/resources/required_version.move - -/// This module implements a mechanism for version control. While keeping track -/// of the latest version of a package build, `RequiredVersion` manages the -/// minimum required version number for any method in that package. For any -/// upgrade where a particular method can have backward compatibility, the -/// minimum version would not have to change (because the method should work the -/// same way with the previous version or current version). -/// -/// If there happens to be a breaking change for a particular method, this -/// module can force that the method's minimum requirement be the latest build. -/// If a previous build were used, the method would abort if a check is in place -/// with `RequiredVersion`. -/// -/// There is no magic behind the way ths module works. `RequiredVersion` is -/// intended to live in a package's shared object that gets passed into its -/// methods (e.g. pyth's `State` object). -module pyth::required_version { - use sui::dynamic_field::{Self as field}; - use sui::object::{Self, UID}; - use sui::package::{Self, UpgradeCap}; - use sui::tx_context::{TxContext}; - - /// Build version passed does not meet method's minimum required version. - const E_OUTDATED_VERSION: u64 = 0; - - /// Container to keep track of latest build version. Dynamic fields are - /// associated with its `id`. - struct RequiredVersion has store { - id: UID, - latest_version: u64 - } - - struct Key has store, drop, copy {} - - /// Create new `RequiredVersion` with a configured starting version. - public fun new(version: u64, ctx: &mut TxContext): RequiredVersion { - RequiredVersion { - id: object::new(ctx), - latest_version: version - } - } - - /// Retrieve latest build version. - public fun current(self: &RequiredVersion): u64 { - self.latest_version - } - - /// Add specific method handling via custom `MethodType`. At the time a - /// method is added, the minimum build version associated with this method - /// by default is the latest version. - public fun add(self: &mut RequiredVersion) { - field::add(&mut self.id, Key {}, self.latest_version) - } - - /// This method will abort if the version for a particular `MethodType` is - /// not up-to-date with the version of the current build. - /// - /// For example, if the minimum requirement for `foobar` module (with an - /// appropriately named `MethodType` like `FooBar`) is `1` and the current - /// implementation version is `2`, this method will succeed because the - /// build meets the minimum required version of `1` in order for `foobar` to - /// work. So if someone were to use an older build like version `1`, this - /// method will succeed. - /// - /// But if `check_minimum_requirement` were invoked for `foobar` when the - /// minimum requirement is `2` and the current build is only version `1`, - /// then this method will abort because the build does not meet the minimum - /// version requirement for `foobar`. - /// - /// This method also assumes that the `MethodType` being checked for is - /// already a dynamic field (using `add`) during initialization. - public fun check_minimum_requirement( - self: &RequiredVersion, - build_version: u64 - ) { - assert!( - build_version >= minimum_for(self), - E_OUTDATED_VERSION - ); - } - - /// At `commit_upgrade`, use this method to update the tracker's knowledge - /// of the latest upgrade (build) version, which is obtained from the - /// `UpgradeCap` in `sui::package`. - public fun update_latest( - self: &mut RequiredVersion, - upgrade_cap: &UpgradeCap - ) { - self.latest_version = package::version(upgrade_cap); - } - - /// Once the global version is updated via `commit_upgrade` and there is a - /// particular method that has a breaking change, use this method to uptick - /// that method's minimum required version to the latest. - public fun require_current_version(self: &mut RequiredVersion) { - let min_version = field::borrow_mut(&mut self.id, Key {}); - *min_version = self.latest_version; - } - - /// Retrieve the minimum required version for a particular method (via - /// `MethodType`). - public fun minimum_for(self: &RequiredVersion): u64 { - *field::borrow(&self.id, Key {}) - } - - #[test_only] - public fun set_required_version( - self: &mut RequiredVersion, - version: u64 - ) { - *field::borrow_mut(&mut self.id, Key {}) = version; - } - - #[test_only] - public fun destroy(req: RequiredVersion) { - let RequiredVersion { id, latest_version: _} = req; - object::delete(id); - } -} - -#[test_only] -module pyth::required_version_test { - use sui::hash::{keccak256}; - use sui::object::{Self}; - use sui::package::{Self}; - use sui::tx_context::{Self}; - - use pyth::required_version::{Self}; - - struct SomeMethod {} - struct AnotherMethod {} - - #[test] - public fun test_check_minimum_requirement() { - let ctx = &mut tx_context::dummy(); - - let version = 1; - let req = required_version::new(version, ctx); - assert!(required_version::current(&req) == version, 0); - - required_version::add(&mut req); - assert!(required_version::minimum_for(&req) == version, 0); - - // Should not abort here. - required_version::check_minimum_requirement(&req, version); - - // And should not abort if the version is anything greater than the - // current. - let new_version = version + 1; - required_version::check_minimum_requirement( - &req, - new_version - ); - - // Uptick based on new upgrade. - let upgrade_cap = package::test_publish( - object::id_from_address(@pyth), - ctx - ); - let digest = keccak256(&x"DEADBEEF"); - let policy = package::upgrade_policy(&upgrade_cap); - let upgrade_ticket = - package::authorize_upgrade(&mut upgrade_cap, policy, digest); - let upgrade_receipt = package::test_upgrade(upgrade_ticket); - package::commit_upgrade(&mut upgrade_cap, upgrade_receipt); - assert!(package::version(&upgrade_cap) == new_version, 0); - - // Update to the latest version. - required_version::update_latest(&mut req, &upgrade_cap); - assert!(required_version::current(&req) == new_version, 0); - - // Should still not abort here. - required_version::check_minimum_requirement( - &req, - new_version - ); - - // Require new version for `SomeMethod` and show that - // `check_minimum_requirement` still succeeds. - required_version::require_current_version(&mut req); - assert!( - required_version::minimum_for(&req) == new_version, - 0 - ); - required_version::check_minimum_requirement( - &req, - new_version - ); - - // If another method gets added to the mix, it should automatically meet - // the minimum requirement because its version will be the latest. - required_version::add(&mut req); - assert!( - required_version::minimum_for(&req) == new_version, - 0 - ); - required_version::check_minimum_requirement( - &req, - new_version - ); - - // Clean up. - package::make_immutable(upgrade_cap); - required_version::destroy(req); - } - - #[test] - #[expected_failure(abort_code = required_version::E_OUTDATED_VERSION)] - public fun test_cannot_check_minimum_requirement_with_outdated_version() { - let ctx = &mut tx_context::dummy(); - - let version = 1; - let req = required_version::new(version, ctx); - assert!(required_version::current(&req) == version, 0); - - required_version::add(&mut req); - - // Should not abort here. - required_version::check_minimum_requirement(&req, version); - - // Uptick minimum requirement and fail at `check_minimum_requirement`. - let new_version = 10; - required_version::set_required_version( - &mut req, - new_version - ); - let old_version = new_version - 1; - required_version::check_minimum_requirement( - &req, - old_version - ); - - // Clean up. - required_version::destroy(req); - } -} From e936a401541738b7b070fb480bb96e6357ad9307 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 21:55:48 +0000 Subject: [PATCH 085/140] get price info object ids --- .../scripts/pyth_get_price_info_object_ids.ts | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 target_chains/sui/scripts/pyth_get_price_info_object_ids.ts diff --git a/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts new file mode 100644 index 0000000000..cdf9e14d9e --- /dev/null +++ b/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts @@ -0,0 +1,32 @@ +/// We build a programmable txn to create a price feed. +import dotenv from "dotenv" +import axios from 'axios'; + +import { Connection, JsonRpcProvider, JsonRpcClient} from '@mysten/sui.js'; + +const provider = new JsonRpcProvider( + new Connection({ fullnode: 'https://fullnode.mainnet.sui.io:443' }), +); + +async function main() { + const objectId = '0xc4a7182984a662b159a18a8754dbc15e11048b42494b2c4ddcf1ec3bcc7004fe'; + let nextCursor; + let hasNextPage = false; + let all_key_value_pairs; + do { + const dynamic_fields = await provider.getDynamicFields({ parentId: objectId, cursor: nextCursor}); + //console.log(dynamic_fields) + let promises = await Promise.all(dynamic_fields.data.map(x => provider.getObject({id: x.objectId, options: {showContent: true}}))) + all_key_value_pairs = all_key_value_pairs + promises; + nextCursor = dynamic_fields.nextCursor + hasNextPage = dynamic_fields.hasNextPage + + // Sleep to not hit rate limit + console.log("Going to sleep for 10 seconds to stay under rate limit...") + await new Promise(f => setTimeout(f, 1000)); + + } while(hasNextPage) + console.log(all_key_value_pairs.length) +} + +main(); From 2a9c2b0c57d9a3e385b0f5de7c296db7f2ecd2a0 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 22:23:00 +0000 Subject: [PATCH 086/140] get price info object IDs --- .../scripts/pyth_get_price_info_object_ids.ts | 27 ++++++++++++++----- 1 file changed, 20 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts index cdf9e14d9e..51f7fece12 100644 --- a/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts @@ -3,6 +3,7 @@ import dotenv from "dotenv" import axios from 'axios'; import { Connection, JsonRpcProvider, JsonRpcClient} from '@mysten/sui.js'; +import { setMaxIdleHTTPParsers } from "http"; const provider = new JsonRpcProvider( new Connection({ fullnode: 'https://fullnode.mainnet.sui.io:443' }), @@ -12,21 +13,33 @@ async function main() { const objectId = '0xc4a7182984a662b159a18a8754dbc15e11048b42494b2c4ddcf1ec3bcc7004fe'; let nextCursor; let hasNextPage = false; - let all_key_value_pairs; + let map = new Map(); do { const dynamic_fields = await provider.getDynamicFields({ parentId: objectId, cursor: nextCursor}); - //console.log(dynamic_fields) + console.log(dynamic_fields) + let promises = await Promise.all(dynamic_fields.data.map(x => provider.getObject({id: x.objectId, options: {showContent: true}}))) - all_key_value_pairs = all_key_value_pairs + promises; + + //@ts-ignore + let key_value_pairs = promises.map(x=>[Buffer.from(x.data.content.fields.name.fields.bytes).toString("hex"), x.data.content.fields.value]) + console.log("key value pairs: ", key_value_pairs) + for (let x of key_value_pairs){ + console.log("entry in key value pairs: ", x) + map.set(x[0], x[1]) + } + + // pagination nextCursor = dynamic_fields.nextCursor hasNextPage = dynamic_fields.hasNextPage - // Sleep to not hit rate limit - console.log("Going to sleep for 10 seconds to stay under rate limit...") - await new Promise(f => setTimeout(f, 1000)); + // Sleep to not hit rate limit. + console.log("Going to sleep for 10 seconds...") + await new Promise(f => setTimeout(f, 10000)); } while(hasNextPage) - console.log(all_key_value_pairs.length) + + console.log("map size: ", map.size) + console.log("map is: ", map) } main(); From fdda3de46db0eb7514da53362b5ac510da91a1e5 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 22:25:24 +0000 Subject: [PATCH 087/140] add json file containing price feed id to price info object id --- .../price_identifier_to_object_id.json | 198 ++++++++++++++++++ 1 file changed, 198 insertions(+) create mode 100644 target_chains/sui/scripts/price_identifier_to_object_id.json diff --git a/target_chains/sui/scripts/price_identifier_to_object_id.json b/target_chains/sui/scripts/price_identifier_to_object_id.json new file mode 100644 index 0000000000..37f0ba411a --- /dev/null +++ b/target_chains/sui/scripts/price_identifier_to_object_id.json @@ -0,0 +1,198 @@ +{ + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", + "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x813dab097dc9a913a37553dc21a51ec264c5b3018a9148530ee5d4131d9cd948", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x12cd27871301e7b10488d294b21fdca0e02208d60d966cc363137c432bce49dd", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0x8f011dc003102d272bcfb9a1423ed9ab16bf8720102888dbdf3481dc2b81fe52", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xbff692a9a42736393001e997f0895203c81a0b0d7d100177150d3ca2404c2264", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0x7b06c8e0204faba400a6b69c75b51fe84ef24c4251340f4b00eca37852ef9944", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0xc9c0f5b0c331f02792cf47a6136fdea01772aa6e8bcd0acd7927b2cbf0c9500b", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0x73198faa767ea791159fb8c64c71ff490793fbe1abec0af9d959653739b86242", + "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0x7786857b0713ec6b060c873ba9ebf70cdbe8770453214aa7129e0965d3a8725d", + "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xd9b07adaceffb21296de31b46ef0f1db8825a83098d22af07f60205c6394bdd7", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x2b9e4beab792ea64bf6dea7d1d4455a6ff70744602a73388b3d03fc58cc0eca4", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0xe6eb8bc3a9cdab5955a78ebf0dd3f5e4ed3458ab4491285345dd8a6d0aecd2af", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x29405b9f25ad9deb23357298732edb4383d3745ffd9a0373cf3028992d85cf99", + "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0x94223482aa78b4dc59f670ca42c8c9a93b90b0c21721f6a9d679e3f5a50e4434", + "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0x6f5059e755771ad838278b6407a769717b40629f4655bfe9c2afe781cce5d966", + "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x08eae5969d90a4f03e33582077407608f74df4ccc5273cae3236710f68dc348e", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0xe883778d404e7c9eb7ff6fa190e8ddaa26a1b175c02cb00b1b72a4390e38c5f7", + "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0x0ec8b3c28c4240c5acc6c7ff145310d6d2129e6b718189be9c36828d75cf136e", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0x72f36e3b229031b91718b533cde17bf48a3222f4821486f47801671f8d584308", + "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0x35f9fa1bc253e91cfb42396800a37886b7d5fda5e015a9a5d7eea24b4a516421", + "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0xc6e1c6307fa87aa0f3c8e33ce786c6a80ca4aa6de74b8e1a62d9e65ad1047aac", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0x75b7db1ba4946126fa9193d4d00216cd1a52a17087c35feda74905bd0386c076", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0x1666ee917cb925fd3d78da42bfb14c8aa2f51ba1fdfe7a424220fa709133426a", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x7ceb15c8e72d0b917103e43a695e94e40dc653bccbc0806bb71d3ea6539884da", + "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0x663c14c977c46b85b5ea3f1a97ebc5b93d8cf6cf2c94d01dbcfaef0d0ef9efdf", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0x8e812924daaf7dc02188976e71d20d86baaf90129d1c1f4470b7e79084fed804", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0x54499295661a8cfb2c4da4184e330ab5948c4ec7522cad5f96e923b97bc91e61", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0x3c90b83f0acb025336debeb37d6014cdc788d9bece7828eb1412ebe44a01d31f", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0x0ffe43da21a5d957c833d778b0f527b82980f1b210cafa592054f0a026b658b4", + "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0xb9792f919aebd4ce7eb2a4c4b400dc40c2260f81b516e62cd3bb16a2f1cdaec3", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0x784f3db957f968930f9ac749c9b61ef614716964d93e689a482e15c665cf210e", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x847b4e30707fbaedbe1ebf261a9c08299b53389def13b6268f0aaed06118b711", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0x243536ac6942683448eb0f0013540ee72a6d31dd4f6efebb44a0918de2234a67", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0x421f3e1cc42aa5cfd4dc87de41c16bde36a9dffb3392bf61c70d6b3f0ba73a99", + "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0xf6bcaef2cb75a98bf2c16af8e0b0a36127f865be99a456ebbbbcfc2d54632fc2", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0x2ef5a5df964ff7cecceb968fbe84e8e12e6048518ab3c24e9343b46f6d1dd011", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xc38286eec0a9bdc4f7f8ebff7070bf4441ddb06af48cca506cd5477f72a1ec56", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0x8190db687f806ebb5a85e19789a969680e0fd8380724c4f51353ed0fd57d0a35", + "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x3192a035740b7d8a9a2f34e87983f43052bda1a8df4f257dba38d0d021b5afe5", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0x7c9f660c492c80357be785fb2b2eeb37147343740244975bc9622311281c945c", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0x6535ece8ec0e0a6a6f1baf5b80f64bd8d5c18fa2f40b5023e495ad02a9564a49", + "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xe6638d450412b1934890a43d48606d91ad5c945a25ace66f211ccc9f606cf405", + "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0x25325258fd0fb6965aedf380cde6636109d6e3b6c2faa47ec91d2f976bbae702", + "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0x537d0fd5f9576506fce8c81f976a5e7dd183ef875585e78cde420baa9c2dc0cf", + "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0x342f11fa43dbe19d0d5097f28526f4c40a7c9e84097a59d66bb619bff59d971b", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x300a7f0a24b012be8b90b21761624f1da3109b33bf47d8b0e34816b824ce2472", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x88f936c9b272a119b80045783f70f119b5d7214242c2ffa1dab67c1d2645043c", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x3aa76ccda83a8025ad9d12ae64b8efff22fbefa2edee12ddb6a8ee62c15db628", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0x1e81c65a2bb74c8870cbf7620003dc978623b83da4f8ad0615d02a4c8ee9be71", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x6728f81af4b438713f0a6bafac0a9c5b19559fcb8c9c3da9107a5c5715c77150", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x4f8d4f109c805cf57b95add8534e96c2652cf80fc9d6b390797367361c6f9f87", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0x393e4f0af86f2b7c4f6cf87053a90fce28be9507462183c08112ab680f5b222b", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0x5e5f1fa6a90893daf6400a009781b4e146a9714c9e432719d3dd970d58782dbc", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0x25a108e8fabff628d547ade6e7fb5ffba5e3fc4a86d5563c7c9c3f7f89c2838d", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0x969a55ba2749858a67b5ac3740218859ff91958711a4726e4729b6358c592541", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0x3d4f0ed8ede749b0b7969a845a78a3e04052c5bd67632f9ca3e6b8c95e0471e0", + "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0xa2621adcdd0a0eb0856a4bbc95a7a29ac2576915025f1ffff42a0387c659bd0f", + "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0x7e427b11a67228418d02657537dbbe12e653fb6e25c0553e6cccfd93e09b62f9", + "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x6bc83acae136c07fb371388c5701aab8c4093719964434c48fcbb24fcd242302", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x6da106d1876e1ae75110398ba4b4170b8617fdfd7f765682fc2556cfd8fad477", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0xdc8c7a10228f753c4a806f00e624f6d5111bcb01fa1a25e49deb8eab5ef3b959", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x41810c3ebd3ff83df1d52fce4ae30ae393defeada8c35334f658b552e702a808", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0xa59919df888ea0a69aeeb865145ee208e0b5e96e744276097dc5d370ce12c937", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0x094c553dcaefa8daccac6512a27b6bd518962acac070c4a90fd4cbcc7d93cd2d", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x7cc9590c0632c06b336a729fb338855fa50a4c1f56f6bf19792607545ebfce75", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0x0beeaa7af57e04218e931c260a19f7cd5d73728ca9b992e7eaadda5a92352a6c", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x5be5a532a4234472bd42f648c860cc6ce505f4abba1d1ff280c307edaa91c6e5", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0x970d1a400036ee4ed970edc5fc28c1e1a063fd70abaa5635609f84fda603477c", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0xb9b0291e4443cf2919528d4f190963f59f73b2fa60d042ab6d3525ea747e012e", + "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0x84acdb9701e59d7fe938dafaf9d84161838cb862e84f307124a1b1e81e6b77d1", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0x9be7c21f6f7d2b6271fe5dfa45f71c067b0a680aa1ca46ff436afba19336059f", + "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0x4e959b3d766a38dd63a3dccadda27ee46608b13a0a17d66ba50f6c6b43794492", + "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0xfdbf22be9ca4e8be48886404f4eda806287824318d22fbd8bbea6a06ff21a749", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0x82f7cc493ac5c0c0e32c5797cb61372a985439b996ae320926df3eaf982255f9", + "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0x06e3b2601f985409297e81f89b64df8a22e4bda271630322b723c799b3ca558f", + "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0x60cf8eb3bb66b9f1ee5ad5971ce24f85750ed6d65357278cdd24508018c0fb77", + "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x2819077ee5dc736f75d74505f2686240d84618948ec7c94ac67139c8335c3dfa", + "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x0948ff7e93869e56cfa994a8611af061dab31d429017b64cbdbdec687807a4bd", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x59432d2fe5002ddeb6d4b245cfdc6ee8a0b441ff2fb5a9d154f12ef526f40d86", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0xc7dd91bb190bb6b918bcbc1671b8820088e5aab9502236f55ed204aae8d437c7", + "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0x97e8f6a69d1e3bd5a9aea5cbc12ebaf74a2268c21220306c5a4fcce978c3134e", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0xf8a94a60b67fc29212788ff0d125bd00a78873ce64a5f166989fa0a8a6051880", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0xfc6f0ecf57581be16f246383c1b0d39d27d47fd96097b77dd3d9a052f7efd9e5", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0x2121ae366fc6daf8a79c5420153e16a31b4c6a485666c11ef4ab20dcedfc1904", + "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xb6dfe8dd1f13f5db49e93909e8151cda0b3eb873950522e2c6dd9409057eea03", + "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0x397baeff4f1ad933330bff0101898d7dd376d33467bfee1fe4c8a13b6930c669", + "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0x6a2caf39dec7db0ca51e6cf1462756efc7b3637490920c3d111cd3d7da46a6e9", + "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0x5e0b5d2f55fe8ea36709508a4741219a009e32273daa8c43278a89b4c67112e4", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0xe2f01b5ad1edec664d3d646a708b26f85adde915999d56b2f15c0076a140cbd1", + "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x8274e4be99bf8117209b4cdcc963fc397b868f360d20ecf15233591a84da752c", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0x0e8d64923791a322a31ccc8a8c7e1da47622c776414cc2a57c73795dcdad7b88", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0x3f0a05354694d442310e2acba79deb48621a7ca32c170d5bc068fd85dbec760e", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0x3a552d9bcc7dbb8f9bb088f9fc81163a27aae54b79de7192a2ee88803a2c4598", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x262feca09bba056ee9b05c8d0e438c11862533bdabd42f8e79e37a03e994031e", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0x35988ff2b50960965250ccfc4a1be70ffa1a327e0cacfb7618db155d5a93d95f", + "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0xf21863beeed8d8213ad163a37547ca404879875838cefd773f45966140e03536", + "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x94538413241766c917b5837bc66a2f07201f9df610e985bc70f6f1a65bc8b824", + "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0xe477c82786dd5186a36ada1d0092522bc04422a133bee0882cbffebee74bdfaf", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0x83e3bcf94d15dd8246f343a0c3a25b531da1882a237e65d0e3afa8ccc29c2b53", + "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0xa6f4d72ebb3d8d3b847f560c0e1b9b53be59c61cb17905efcb78d9e59097eb61", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x2a2acf181c73055bfbce46e0bd01ffbb73b4481fee51d1442dd0fcfca7011ee1", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0x415149af9fd9d712a5c543d203f5e7a4647232c93291b51cc77dda27591acdf3", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0x3d537759f6eb0f5d8a0894ab553553e70c7526f15c026641ab457d6e600dd488", + "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0xf8bb072d7779c1f9eab2b5de52a0c7db7603cfc9076151bb5a2ba1ca2ed385b0", + "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0xede216a9f98d06bf4ebab1a696ae992590605bf9bbaf05f742b96ab5d6ba0426", + "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0xdc7f9dbd88b507e36df3737e44106b8594b75eb4324412e960d113f5f61e2f55", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0xb148065aef7a6902b5a56404db8dc728253cc3562d6a0c274de4d4db91746cd7", + "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0xd3261ba9e558eda4056861879ede295549b416c75f3b756ca59145552b43ed03", + "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0xa6241689d50ea973e4e0efa11e64f05d85255e18610bd094c6ee95efc2f670b7", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0xc9552aff3ed695958e7279ac930e5f4062fb3d9e0831c5fdcf1564019d2581b2", + "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0x1df777cf70c4741367735002de6dbbed06346194749d9825b8578587a139f964", + "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0x57bd3abe704df070c95bd142463c919f7eb8aab851f56a437429d40a2bcc5c04", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0x44b2efb1ffc530ee28b53ad75aba15d03beeac3d3ac00ab456a95e72b6e46e28", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0xfaa34d98d5776b63a0aa707cac04e3906a769c7b9822181e5831c3fdbe3852bc", + "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0xec8b5dc385c72e1925585a8809df24b1797663b362d7ee698e94c244d95c4502", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0xdd9518d23f6500d095760fe27b6be884cb729141828840501c745fbbb4077ac1", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x2ad5bca64988a60eb6c015984d86f896d7780f89ba4e17d239a8d18dd0ff3c62", + "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0xb1ce5c0bc015130411f74c52c69b17b34778beda878cf35582f4db10e1b37798", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0xf159bc6a781614afd84e7452a57afcea4b02c2a1d89e2af4b345d5704648274f", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0x17d6e86db99e31eec29b25faf06888bbb0cc5f5bad64d462c36c095384236eb8", + "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0x1f81a0a54c5acf8c6849d3555566ae3bcc078fac98ac44d95a248579e00254a6", + "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x0c51789af2ef3a02c1a8dd4a5e90898ae4ab495909a0dec337d2adbf641f9e14", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xc1ee9666521d2494288b3a4264e7428c4be31fbfd0412b7d3e480fa66cb7868e", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0x1e56055aa5510e42a522ac0d45baadeec54cb1ab4f80ed05fbcb01d6a63fe709", + "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0x6c9fce723d522ec708cd4ff6d363277b03fe48fafee79e2b53ce7dfd95838f72", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0x1d8e49343d812229fba1f2e7f04a6162224a566681d781c71b792fdc1b08947c", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0xce84576e03736d879f77af0652b62185234af2ccc4e2e21e276813fa0ca47dbd", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x30a78a430a10cae0d78913036d460eef5c6085c46f8ecf1ad7ba8dee76a12527", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xf261698164fef1649da47f846c6677648f524bc880b257fc771dd65ac540487d", + "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0xedbc661a883e5f47ea5fa4bf5a06374fb60827e5e0e2ac413a96187e3f39a1e3", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x65dfab50959d4f7a0e4bec441a6e0422d4dfcd0e23921c0069e35cc59cad38aa", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0x511286c4c9ce19b57a4ec47efd46f4a336175d36659a5b2741e611205b184853", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x6ed3ddec8444bee9863077d70a0e8ca506242de914f1b3b581c88aecfa67bae3", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0x7e1303e5cfb944c6b0d95e5f9fab038b305c8d80054394e24d8bf64b34b8553a", + "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x57f5289b1bb4008c2090b3e7401e8abdfdfb1bc5b6a4d649752bd537ddc04722", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x2eb3509bf33b5e29124d61b4affc78b271c5b13aa60d4be9ec1d659ff41eaaff", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c", + "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0x97faf2540a0b1ddff6e7f25bbfc7067eecad0334524a70e1caffdc519e2098d3", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x9e743ce40f1f5cad26d7b9a83dd1b7750d9637f13edcfa95ec45ffaaac81cf4d", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0x794047e361d3837b84a3941bb8fee704e083433404e68e20e6d54dbb5673cad5", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0xec956a3c13b3db5c34acc7a19b2d655886c25483254065c7f770ebe64c71b3a2", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0x6928f835a904ad05c54fc1eb9d1269d5396e62eac58cf53f7967dfe54c2e8ced", + "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0xf680a00084f0e61980327af92d5bd5f5eead25d5ad392c18669fe9db72ab1de8", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0x7b86aa064d0d8c77685fe76955f83ecc2c63d06bbdf5ee21273e6866243653f9", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0x2746e22f8f134808ba8332294d5687b975c8dbabca51f5e773483a8b5c006de9", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0xd698c1ab8cecb252cd6c05371b19885d7f3937ababd26250745bb1d9fa6ee019", + "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x70e632d62a24202debf5e4099010c5c360b26f8ce9bcfbd49d52789a3c45a9c5", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0xb5469f185e5a69f8591b4cc9d326eae8fddb86df381408d8ea428ad1001231b3", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x6acb3837b8b069d5af140c6ec99358c862d9af443aa87ca8dbdecdc4963dc83e", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0x43c1205fc3af779d6b9719327d60bc4cf61a2509264defcd7cbc104e731cf461", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0x104ef1548854fd68403152a4661360a484e116c8926d5435325684339e7a4792", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0x81879f4a1e9a6115d6a8f1cb02a13cd6bf9e2713ccd4518c39290ab0aab855bf", + "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0x4e960abf91b2868b8f7003d4c788f2971f17fdd673c552d8c6c7abdbcf1264f3", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x3b2e581f72613f5ca5845ecd97fa54133c4ef2edb41d4cee048050ae61352891", + "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xf7aa8fb0db1de5d2e102c3bac7c4b664c7c4f190100681e826d93784c76126f5", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0x838e80e58c62e04a7420ff13e450b65df38095aa51471975742b89a6c23e2e0a", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0xe42b1d1c8ee5efd399068416bf77f3f194e29a94406acc88a90dd8029bb706aa", + "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0xf5a4f393712a9dc7164f0decbf90af2594a4a7199ea0d380c8e4f265ca7ddd59", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0xc15d506b720e9e47f1ab76510eb0d8d93f1a8331a0edb71d30fe2a862693e607", + "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0x858a716e3b2e9e71be3120de427ebf5ec1b461721645c245f948274f13f87c33", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0x3736ba57e9fa1f82ba9dcdb63142c2871ab6664ec6d2bae0e185feb698b16211", + "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0xe3e1904ab43bab2a002c7cbfe2a25087211a92f163eb4f8f5ea89905fc0232e2", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0x300a46a6b7c9574270a6a261b1fe09765b1d186991b5a7f054b2fb6b89980310", + "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0xa9f457c3e8f90ce4147a5368ac7d1bad29fc3e7a7b566e9da8caea80e70f9015", + "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xf23a24daea2a46388337064f8e466bdc9b848414b246769da8dc756cd19ed352", + "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xda049b4223747412a535f4b007166fbf1b6d7de42f9f49ddf8453d5312a3e66b", + "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0xc840d2761d833abbc469ae1140d1eb5827d2cd2d1bf70520fa1281debdf99926", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0x2d7aa5836ae880f2bd9b1b14d18abef42b5cc8116b332c368457555899fdf184", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0xcc7b6d3a8fc8b32878e333578ab57e96a7ef8ec4498bcc6e839c362924ea52d3", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0xd79ce52a240701df5add9d5f325ab0222271e8ff70e36150426546470bdfd3bc", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0x0950d9b3f34603308ac7583d791fff9e2b9627dbbf9490f5dd7dd67410a6093f", + "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0x7438e09365085c82eabdf045069e749fb95b4e7d39c1ac56fa74c1f5e62500c4", + "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0x21a473555224392259558994ae30f93250f305fa14569e452539df785576b629", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0x70c306983d152a50905f7561c77ee48938deeb794beaef341bb294c2bb5aa996", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0x09ecce08348f4ae9b6f3ac6fac862e441ed9876e33212694c0a4d6639a797c3f", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x5854ab7960bb36c34701a6509fd85eed4b505cf15fc68a2e6c297361c0847d50", + "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0x359325eddf76b5a758697c7be661653a0cec39c51214da8e5a7155b6877753fe", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0xfb993017bb92a8e2868d6d52b486aea8013dcd9bca8fd557306ee48bdfacbecb", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0x1d0afcbaf07da5e4eb570df8b551b24ecfc889c54036de1f31a27bd15a9268d1", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x51ca0aacdd00a18ce65eb4614b17c7a50b05861841dcb6b652936463527f38dd", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0x374088f90087c668259444d8b4118937cc5b296f2b9f3b9a2435c019fca6c4de", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x7a410b6e800f2e2a15b5027b90e855b8cd0954fbb22dd245c4a884a6603f3e55", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0x0d0f6fdadb7b2dcd0b4130e44d20195c4b13caeaa1f65c38249c330b4c1307d2", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0x00330abb569ac93d08b902bbd9e4c69041511417d3c88450b7291f99422c1587", + "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0xf2a08b0909acde30ef72a7291cda5314b76e544136d83ceb0339fa2c1221aed5", + "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0x1c15c9326be25b19496c25ee66545bfd8151c573a49c6a9075d0a5a98e4f7981", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0x540988b6594c264ac5fced6a9021e98b3a3c6764e6f9d1112536c6d2445dbc63", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0xa351d146407bd613cb443031d474c0639f3a328af429866b38d094caa21a44a0", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x2fc81e546084af17b8d99788f4d05254499de49fa2065d79950f19355e23c781", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0xc2d8c65d82ab5413d81ef44e28833be0dd286376ea47e02b26400a67f34c579e", + "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x0624b35d4b654877cf5331f3865b28a8e872efbe40cd877a5470a1e4509107cc", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0xc4209783660db421a861200b7164aacd682ca5bc2a53dcd40c9235b78245a0c0", + "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0xa8539d032e6aba8837568af71ddfe4494139ba37e2ccba5df3a6cb0b5d157c60", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xcd40ec7af217643b816992906439d9c638e4b97203bebc5a4ceb5eed92f5f82f", + "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0x8c1fd6c6d4e328f4ac2d47d67bde6223d9ba3b1ab9d2d2d819462bb8a39d9079", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x16f6f47720607a364c0df4718d78810d5ed8ec5ecac4c18380d6acef614a08e9" + } From b623b6dd48898c3ef7b8f138bab701cd4d0fd83d Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 22:31:05 +0000 Subject: [PATCH 088/140] comment --- target_chains/sui/scripts/pyth_get_price_info_object_ids.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts index 51f7fece12..aec28618e2 100644 --- a/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts @@ -10,7 +10,10 @@ const provider = new JsonRpcProvider( ); async function main() { + + // Table of Sui Pyth PriceIdentifier => Price Info Object IDs const objectId = '0xc4a7182984a662b159a18a8754dbc15e11048b42494b2c4ddcf1ec3bcc7004fe'; + let nextCursor; let hasNextPage = false; let map = new Map(); From 5979f48ff1069d95b8cbf19453d5fc61b9cdb9c1 Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 23:39:51 +0000 Subject: [PATCH 089/140] clean up scripts folder and imports --- .../sui/scripts/{ => pyth}/pyth_create_all_price_feeds.ts | 4 ++-- .../sui/scripts/{ => pyth}/pyth_create_price_feed.ts | 2 +- target_chains/sui/scripts/{ => pyth}/pyth_deploy.ts | 6 ++---- .../scripts/{ => pyth}/pyth_get_price_info_object_ids.ts | 5 ----- target_chains/sui/scripts/{ => pyth}/pyth_get_vaas.ts | 0 target_chains/sui/scripts/{ => pyth}/pyth_init_state.ts | 2 +- .../sui/scripts/{ => pyth}/pyth_update_price_feeds.ts | 5 ++++- target_chains/sui/scripts/{ => wormhole}/wormhole_deploy.ts | 2 +- target_chains/sui/scripts/{ => wormhole}/wormhole_init.ts | 2 +- 9 files changed, 12 insertions(+), 16 deletions(-) rename target_chains/sui/scripts/{ => pyth}/pyth_create_all_price_feeds.ts (97%) rename target_chains/sui/scripts/{ => pyth}/pyth_create_price_feed.ts (98%) rename target_chains/sui/scripts/{ => pyth}/pyth_deploy.ts (94%) rename target_chains/sui/scripts/{ => pyth}/pyth_get_price_info_object_ids.ts (89%) rename target_chains/sui/scripts/{ => pyth}/pyth_get_vaas.ts (100%) rename target_chains/sui/scripts/{ => pyth}/pyth_init_state.ts (97%) rename target_chains/sui/scripts/{ => pyth}/pyth_update_price_feeds.ts (97%) rename target_chains/sui/scripts/{ => wormhole}/wormhole_deploy.ts (98%) rename target_chains/sui/scripts/{ => wormhole}/wormhole_init.ts (98%) diff --git a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts similarity index 97% rename from target_chains/sui/scripts/pyth_create_all_price_feeds.ts rename to target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts index cfa14b57a3..fa18eb731a 100644 --- a/target_chains/sui/scripts/pyth_create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts @@ -1,4 +1,4 @@ -/// We build a programmable txn to create a price feed. +/// We build a programmable txn to create all price feeds. import dotenv from "dotenv" import axios from 'axios'; import { PriceServiceConnection } from '@pythnetwork/price-service-client'; @@ -14,7 +14,7 @@ import { dotenv.config({"path":"~/.env"}) -import {REGISTRY, NETWORK} from "./registry" +import {REGISTRY, NETWORK} from "../registry" let network = NETWORK.MAINNET const registry = REGISTRY[network] diff --git a/target_chains/sui/scripts/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts similarity index 98% rename from target_chains/sui/scripts/pyth_create_price_feed.ts rename to target_chains/sui/scripts/pyth/pyth_create_price_feed.ts index a898304f9b..1be48fbc43 100644 --- a/target_chains/sui/scripts/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts @@ -12,7 +12,7 @@ import { dotenv.config({"path":"~/.env"}) -import {REGISTRY, NETWORK} from "./registry" +import {REGISTRY, NETWORK} from "../registry" let network = NETWORK.TESTNET const registry = REGISTRY[network] diff --git a/target_chains/sui/scripts/pyth_deploy.ts b/target_chains/sui/scripts/pyth/pyth_deploy.ts similarity index 94% rename from target_chains/sui/scripts/pyth_deploy.ts rename to target_chains/sui/scripts/pyth/pyth_deploy.ts index 23e5ffd34a..dd9bbe1886 100644 --- a/target_chains/sui/scripts/pyth_deploy.ts +++ b/target_chains/sui/scripts/pyth/pyth_deploy.ts @@ -10,12 +10,10 @@ import { Connection, } from "@optke3/sui.js"; import { execSync } from "child_process"; - import fs from "fs"; - import { resolve } from "path"; import dotenv from "dotenv" -import {REGISTRY, NETWORK} from "./registry" +import {REGISTRY, NETWORK} from "../registry" dotenv.config({"path":"~/.env"}) @@ -35,7 +33,7 @@ async function main(){ ), provider ); - await publishPackage(wallet, "../contracts"); + await publishPackage(wallet, "../../contracts"); } main() diff --git a/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts similarity index 89% rename from target_chains/sui/scripts/pyth_get_price_info_object_ids.ts rename to target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts index aec28618e2..c840b5985d 100644 --- a/target_chains/sui/scripts/pyth_get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts @@ -1,9 +1,4 @@ -/// We build a programmable txn to create a price feed. -import dotenv from "dotenv" -import axios from 'axios'; - import { Connection, JsonRpcProvider, JsonRpcClient} from '@mysten/sui.js'; -import { setMaxIdleHTTPParsers } from "http"; const provider = new JsonRpcProvider( new Connection({ fullnode: 'https://fullnode.mainnet.sui.io:443' }), diff --git a/target_chains/sui/scripts/pyth_get_vaas.ts b/target_chains/sui/scripts/pyth/pyth_get_vaas.ts similarity index 100% rename from target_chains/sui/scripts/pyth_get_vaas.ts rename to target_chains/sui/scripts/pyth/pyth_get_vaas.ts diff --git a/target_chains/sui/scripts/pyth_init_state.ts b/target_chains/sui/scripts/pyth/pyth_init_state.ts similarity index 97% rename from target_chains/sui/scripts/pyth_init_state.ts rename to target_chains/sui/scripts/pyth/pyth_init_state.ts index 253a1b049e..dd6d4305ce 100644 --- a/target_chains/sui/scripts/pyth_init_state.ts +++ b/target_chains/sui/scripts/pyth/pyth_init_state.ts @@ -8,7 +8,7 @@ import { Connection, } from "@optke3/sui.js"; -import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "./registry" +import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "../registry" dotenv.config({"path":"~/.env"}) let network = NETWORK.MAINNET // <= Update this when changing network diff --git a/target_chains/sui/scripts/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts similarity index 97% rename from target_chains/sui/scripts/pyth_update_price_feeds.ts rename to target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts index d1dfb28238..8fae065986 100644 --- a/target_chains/sui/scripts/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts @@ -17,7 +17,7 @@ import { dotenv.config({"path":"~/.env"}) -import {REGISTRY, NETWORK} from "./registry" +import {REGISTRY, NETWORK} from "../registry" let network = NETWORK.TESTNET const registry = REGISTRY[network] @@ -30,6 +30,9 @@ const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", }, }) +// +// NOTE: this function is a WIP +// async function main() { if (walletPrivateKey === undefined) { throw new Error("SUI_TESTNET unset in environment"); diff --git a/target_chains/sui/scripts/wormhole_deploy.ts b/target_chains/sui/scripts/wormhole/wormhole_deploy.ts similarity index 98% rename from target_chains/sui/scripts/wormhole_deploy.ts rename to target_chains/sui/scripts/wormhole/wormhole_deploy.ts index 477e0bb370..37491c3c33 100644 --- a/target_chains/sui/scripts/wormhole_deploy.ts +++ b/target_chains/sui/scripts/wormhole/wormhole_deploy.ts @@ -17,7 +17,7 @@ import { import dotenv from "dotenv" -import {REGISTRY, NETWORK} from "./registry" +import {REGISTRY, NETWORK} from "../registry" dotenv.config({"path":"~/.env"}) diff --git a/target_chains/sui/scripts/wormhole_init.ts b/target_chains/sui/scripts/wormhole/wormhole_init.ts similarity index 98% rename from target_chains/sui/scripts/wormhole_init.ts rename to target_chains/sui/scripts/wormhole/wormhole_init.ts index 6ba9a4515a..602dd756fd 100644 --- a/target_chains/sui/scripts/wormhole_init.ts +++ b/target_chains/sui/scripts/wormhole/wormhole_init.ts @@ -17,7 +17,7 @@ import { import dotenv from "dotenv" -import {REGISTRY, NETWORK} from "./registry" +import {REGISTRY, NETWORK} from "../registry" dotenv.config({"path":"~/.env"}) From 6a4f1e7ece6e5a2078671718823bea0dbf18566c Mon Sep 17 00:00:00 2001 From: optke3 Date: Wed, 3 May 2023 23:45:06 +0000 Subject: [PATCH 090/140] more script clean up (comments) --- .../pyth/pyth_create_all_price_feeds.ts | 12 +-- .../scripts/pyth/pyth_create_price_feed.ts | 6 +- target_chains/sui/scripts/pyth/pyth_deploy.ts | 11 +-- .../sui/scripts/pyth/pyth_init_state.ts | 8 +- .../scripts/pyth/pyth_update_price_feeds.ts | 6 +- .../sui/scripts/wormhole/wormhole_deploy.ts | 7 +- .../sui/scripts/wormhole/wormhole_init.ts | 87 +++++++++---------- 7 files changed, 69 insertions(+), 68 deletions(-) diff --git a/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts index fa18eb731a..293d07121b 100644 --- a/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts @@ -16,10 +16,12 @@ dotenv.config({"path":"~/.env"}) import {REGISTRY, NETWORK} from "../registry" -let network = NETWORK.MAINNET +// Network dependent settings. +let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network + const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_MAINNET; const connection = new PriceServiceConnection("https://xc-mainnet.pyth.network", { priceFeedRequestConfig: { @@ -37,7 +39,7 @@ async function main() { ), provider ); - console.log(wallet.getAddress()) + console.log("wallet address: ", wallet.getAddress()) // Fetch all price IDs let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") @@ -81,7 +83,7 @@ async function create_price_feeds( console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) for (let vaa of priceFeedVAAs){ - // create new txn block for creating a price feed + const tx = new TransactionBlock(); let [verified_vaa] = tx.moveCall({ @@ -97,7 +99,7 @@ async function create_price_feeds( target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, arguments: [ tx.object(PYTH_STATE), - tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, + tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), tx.object(SUI_CLOCK_OBJECT_ID) ], }); diff --git a/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts index 1be48fbc43..b09b2a4543 100644 --- a/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts @@ -14,10 +14,12 @@ dotenv.config({"path":"~/.env"}) import {REGISTRY, NETWORK} from "../registry" -let network = NETWORK.TESTNET +// Network dependent settings. +let network = NETWORK.TESTNET // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; // <= NOTE: Update this when changing network + const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; async function main() { if (walletPrivateKey === undefined) { diff --git a/target_chains/sui/scripts/pyth/pyth_deploy.ts b/target_chains/sui/scripts/pyth/pyth_deploy.ts index dd9bbe1886..0277325af3 100644 --- a/target_chains/sui/scripts/pyth/pyth_deploy.ts +++ b/target_chains/sui/scripts/pyth/pyth_deploy.ts @@ -17,11 +17,12 @@ import {REGISTRY, NETWORK} from "../registry" dotenv.config({"path":"~/.env"}) -// ctrl+f network and replace with desired from [MAINNET, TESTNET, DEVNET] -let network = NETWORK.MAINNET +// Network dependent settings. +let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network + const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_MAINNET; async function main(){ if (walletPrivateKey === undefined) { @@ -40,7 +41,6 @@ main() async function publishPackage( signer: RawSigner, - //network: Network, packagePath: string ) { try { @@ -62,7 +62,6 @@ main() // Publish contracts const transactionBlock = new TransactionBlock(); - // important transactionBlock.setGasBudget(4000000000); const [upgradeCap] = transactionBlock.publish({ @@ -87,7 +86,6 @@ main() }, }); - // Update network-specific Move.toml with package ID const publishEvents = getPublishedObjectChanges(res); if (publishEvents.length !== 1) { throw new Error( @@ -96,7 +94,6 @@ main() ); } - // Return publish transaction info return res; } catch (e) { throw e; diff --git a/target_chains/sui/scripts/pyth/pyth_init_state.ts b/target_chains/sui/scripts/pyth/pyth_init_state.ts index dd6d4305ce..cac90a9496 100644 --- a/target_chains/sui/scripts/pyth/pyth_init_state.ts +++ b/target_chains/sui/scripts/pyth/pyth_init_state.ts @@ -11,11 +11,13 @@ import { import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "../registry" dotenv.config({"path":"~/.env"}) -let network = NETWORK.MAINNET // <= Update this when changing network +// Network dependent settings. +let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +let walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network + const registry = REGISTRY[network] const initial_data_sources = INITIAL_DATA_SOURCES[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"]})) -let walletPrivateKey = process.env.SUI_MAINNET; // <= Update this when changing network async function main() { if (walletPrivateKey === undefined) { @@ -31,7 +33,7 @@ async function main() { const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] - // Note: Set these before calling init_pyth + // NOTE: Set these before calling init_pyth const upgradeCap = "0x92d51150b762fd694877b23ecaba79a3fc1032bc24914d145a393b62e1e61894" const deployerCap = "0x645ba70c9087d54a3e5e6abed0d506516dddb71d987b0ee503593de2677caefe" diff --git a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts index 8fae065986..12f03f8b9b 100644 --- a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts @@ -19,10 +19,12 @@ dotenv.config({"path":"~/.env"}) import {REGISTRY, NETWORK} from "../registry" -let network = NETWORK.TESTNET +// Network dependent settings. +let network = NETWORK.TESTNET // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; // <= NOTE: Update this when changing network + const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", { priceFeedRequestConfig: { diff --git a/target_chains/sui/scripts/wormhole/wormhole_deploy.ts b/target_chains/sui/scripts/wormhole/wormhole_deploy.ts index 37491c3c33..b99d74d531 100644 --- a/target_chains/sui/scripts/wormhole/wormhole_deploy.ts +++ b/target_chains/sui/scripts/wormhole/wormhole_deploy.ts @@ -21,10 +21,13 @@ import {REGISTRY, NETWORK} from "../registry" dotenv.config({"path":"~/.env"}) -let network = NETWORK.TESTNET +// Network dependent settings. +let network = NETWORK.TESTNET // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network + +// Load registry and provider. const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_TESTNET; async function main(){ if (walletPrivateKey === undefined) { diff --git a/target_chains/sui/scripts/wormhole/wormhole_init.ts b/target_chains/sui/scripts/wormhole/wormhole_init.ts index 602dd756fd..9bacc1935b 100644 --- a/target_chains/sui/scripts/wormhole/wormhole_init.ts +++ b/target_chains/sui/scripts/wormhole/wormhole_init.ts @@ -21,10 +21,13 @@ import {REGISTRY, NETWORK} from "../registry" dotenv.config({"path":"~/.env"}) -let network = NETWORK.TESTNET +// Network dependent settings +let network = NETWORK.TESTNET // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network + +// Load registry and provider. const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const walletPrivateKey = process.env.SUI_TESTNET; async function main(){ if (walletPrivateKey === undefined) { @@ -46,58 +49,48 @@ main() WORMHOLE_PACKAGE_ID: string ) { try { - // Publish contracts + const tx = new TransactionBlock(); - // important tx.setGasBudget(2500000000); - // public fun complete( - // deployer: DeployerCap, - // upgrade_cap: UpgradeCap, - // governance_chain: u16, - // governance_contract: vector, - // guardian_set_index: u32, - // initial_guardians: vector>, - // guardian_set_seconds_to_live: u32, - // message_fee: u64, - let DEPLOYER_CAP = "0x19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba"; - let UPGRADE_CAP = "0x746cbe8c14f9ef163fc4e18c1edc6fc61041e118f7d6e751bcc4162b722636d4" - let GOVERNANCE_CHAIN = 1; - let GOVERNANCE_CONTRACT = "04"; - let GUARDIAN_SET_INDEX = 0; - let INITIAL_GUARDIANS = ["13947bd48b18e53fdaeee77f3473391ac727c638"] - let GUARDIAN_SECONDS_TO_LIVE = "100000000" - let MESSAGE_FEE = 0 + let DEPLOYER_CAP = "0x19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba"; + let UPGRADE_CAP = "0x746cbe8c14f9ef163fc4e18c1edc6fc61041e118f7d6e751bcc4162b722636d4" + let GOVERNANCE_CHAIN = 1; + let GOVERNANCE_CONTRACT = "04"; + let GUARDIAN_SET_INDEX = 0; + let INITIAL_GUARDIANS = ["13947bd48b18e53fdaeee77f3473391ac727c638"] + let GUARDIAN_SECONDS_TO_LIVE = "100000000" + let MESSAGE_FEE = 0 - tx.moveCall({ - target: `${WORMHOLE_PACKAGE_ID}::setup::complete`, - arguments: [ - tx.object(DEPLOYER_CAP), - tx.object(UPGRADE_CAP), - tx.pure(GOVERNANCE_CHAIN), - tx.pure(GOVERNANCE_CONTRACT), - tx.pure(GUARDIAN_SET_INDEX), - tx.pure(INITIAL_GUARDIANS.map(x=>[...Buffer.from(x, "hex")])), - tx.pure(GUARDIAN_SECONDS_TO_LIVE), - tx.pure(MESSAGE_FEE) - ], - }); + tx.moveCall({ + target: `${WORMHOLE_PACKAGE_ID}::setup::complete`, + arguments: [ + tx.object(DEPLOYER_CAP), + tx.object(UPGRADE_CAP), + tx.pure(GOVERNANCE_CHAIN), + tx.pure(GOVERNANCE_CONTRACT), + tx.pure(GUARDIAN_SET_INDEX), + tx.pure(INITIAL_GUARDIANS.map(x=>[...Buffer.from(x, "hex")])), + tx.pure(GUARDIAN_SECONDS_TO_LIVE), + tx.pure(MESSAGE_FEE) + ], + }); - let res = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(res) + let res = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(res) - // Return publish transaction info - return res; + // Return publish transaction info + return res; } catch (e) { throw e; } finally { From 8601609d6f4f64fb9a42ec7704aae3cf3a47e140 Mon Sep 17 00:00:00 2001 From: optke3 Date: Thu, 4 May 2023 22:11:46 +0000 Subject: [PATCH 091/140] script updates --- .../scripts/pyth/pyth_create_price_feed.ts | 2 +- .../sui/scripts/pyth/pyth_get_vaas.ts | 18 +++++-- .../scripts/pyth/pyth_update_price_feeds.ts | 49 +++++++++++-------- 3 files changed, 43 insertions(+), 26 deletions(-) diff --git a/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts index b09b2a4543..a834f22012 100644 --- a/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts @@ -71,7 +71,7 @@ async function create_price_feeds( target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, arguments: [ tx.object(PYTH_STATE), - tx.makeMoveVec({ type: `${WORM_STATE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, + tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, tx.object(SUI_CLOCK_OBJECT_ID) ], }); diff --git a/target_chains/sui/scripts/pyth/pyth_get_vaas.ts b/target_chains/sui/scripts/pyth/pyth_get_vaas.ts index dbc2f04826..656d01abe2 100644 --- a/target_chains/sui/scripts/pyth/pyth_get_vaas.ts +++ b/target_chains/sui/scripts/pyth/pyth_get_vaas.ts @@ -11,11 +11,21 @@ async function main(){ }) // Fetch all price IDs - let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") - console.log("number of all price feed ids: ", data.length) + //let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") + //console.log("number of all price feed ids: ", data.length) - const priceFeedVAAs = await connection.getLatestVaas(data.slice(0, 100)); - console.log("number of VAAs: ", priceFeedVAAs.length) + let data = ["0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d"] // BTC/USD + const priceFeedVAAs = await connection.getLatestVaas(data); + //console.log("number of VAAs: ", priceFeedVAAs.length) + console.log(priceFeedVAAs) } main(); + +// Step 1: batch price attestation VAA +const vaa = "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM=" + +// Step 2: sui shared object id +const object_id = "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c" + + diff --git a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts index 12f03f8b9b..8ba1a3dfce 100644 --- a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts @@ -20,13 +20,13 @@ dotenv.config({"path":"~/.env"}) import {REGISTRY, NETWORK} from "../registry" // Network dependent settings. -let network = NETWORK.TESTNET // <= NOTE: Update this when changing network -const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; // <= NOTE: Update this when changing network +let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network const registry = REGISTRY[network] const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) -const connection = new PriceServiceConnection("https://xc-testnet.pyth.network", { +const connection = new PriceServiceConnection("https://xc-mainnet.pyth.network", { priceFeedRequestConfig: { binary: true, }, @@ -51,8 +51,10 @@ async function main() { console.log(wallet.getAddress()) // update a single price feed - let price_feed_id = "0xf9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b"; // BTC/USD - update_price_feeds(wallet, registry, price_feed_id) + const price_feed_id = "0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d"; + const vaa = "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM=" + const object_id = "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c" + update_price_feeds(wallet, registry, vaa, object_id) } main(); @@ -60,7 +62,8 @@ main(); async function update_price_feeds( signer: RawSigner, registry: any, - price_feed_id: string + vaa: string, + object_id: string, ) { const tx = new TransactionBlock(); @@ -74,33 +77,37 @@ async function update_price_feeds( console.log("WORM_STATE: ", WORM_STATE) console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) - let [ID] = tx.moveCall({ - target: `${PYTH_PACKAGE}::state::get_price_info_object_id`, - arguments: [ - tx.object(PYTH_STATE), - tx.pure([...Buffer.from(price_feed_id, "hex")]), // price identifier - ], - }); - - // TODO - - // get VAA for price attestation - const priceFeedVAAs = await connection.getLatestVaas([price_feed_id]); let [verified_vaa] = tx.moveCall({ target: `${WORM_PACKAGE}::vaa::parse_and_verify`, arguments: [ tx.object(WORM_STATE), - tx.pure([...Buffer.from(priceFeedVAAs[0], "base64")]), + tx.pure([...Buffer.from(vaa, "base64")]), tx.object(SUI_CLOCK_OBJECT_ID), ], }); - let [ID] = tx.moveCall({ + let [coin] = tx.moveCall({ + target: "0x2::coin::split", + arguments: [ + tx.object("0xab59f054a27f97adb14c4d5eca7ee4dbccade998285b9c5c5400ab00f8ee672d"), + tx.pure(1) + ], + typeArguments: [ + "0x2::sui::SUI" + ] + }); + + + + tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::update_price_feeds`, arguments: [ tx.object(PYTH_STATE), - tx.pure([...Buffer.from(price_feed_id, "hex")]), // price identifier + tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), + tx.makeMoveVec({ type: `${PYTH_PACKAGE}::price_info::PriceInfoObject`, objects: [tx.object(object_id)] }), + coin, + tx.object(SUI_CLOCK_OBJECT_ID) ], }); From f7b059e935af36cdef830a3312f9e015aca0905a Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 03:33:53 +0000 Subject: [PATCH 092/140] hot potato stuff --- .../sources/batch_price_attestation.move | 6 + .../contracts/sources/hot_potato_vector.move | 49 + target_chains/sui/contracts/sources/pyth.move | 1357 +++++++++-------- 3 files changed, 741 insertions(+), 671 deletions(-) create mode 100644 target_chains/sui/contracts/sources/hot_potato_vector.move diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index 4ca84c595b..8ca5b6519d 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -7,6 +7,7 @@ module pyth::batch_price_attestation { use pyth::price_identifier::{Self}; use pyth::price_status; use pyth::deserialize::{Self}; + use pyth::hot_potato_vector::{Self, HotPotatoVector}; use wormhole::cursor::{Self, Cursor}; use wormhole::bytes::{Self}; @@ -56,6 +57,11 @@ module pyth::batch_price_attestation { } } + public fun destruct_into_hot_potato(batch: BatchPriceAttestation): HotPotatoVector { + let price_infos = destroy(batch); + hot_potato_vector::new(price_infos) + } + public fun destroy(batch: BatchPriceAttestation): vector { let BatchPriceAttestation { header: Header { diff --git a/target_chains/sui/contracts/sources/hot_potato_vector.move b/target_chains/sui/contracts/sources/hot_potato_vector.move new file mode 100644 index 0000000000..415abb326c --- /dev/null +++ b/target_chains/sui/contracts/sources/hot_potato_vector.move @@ -0,0 +1,49 @@ +/// This class represents a vector of objects wrapped +/// inside of a hot potato struct. +module pyth::hot_potato_vector { + use std::vector; + const E_EMPTY_HOT_POTATO: u64 = 0; + + // A hot potato containing a vector of elements + struct HotPotatoVector { + contents: vector + } + + public fun destroy(hot_potato_vector: HotPotatoVector){ + let HotPotatoVector {contents: _} = hot_potato_vector; + } + + public fun new(vec: vector): HotPotatoVector{ + HotPotatoVector { + contents: vec + } + } + + public fun pop_back(hot_potato_vector: HotPotatoVector): (T, HotPotatoVector){ + let elem = vector::pop_back(&mut hot_potato_vector.contents); + return (elem, hot_potato_vector) + } + + #[test_only] + struct A has drop { + a : u64 + } + + #[test] + fun test_hot_potato_vector(){ + let vec_of_a = vector::empty(); + vector::push_back(&mut vec_of_a, A{a:5}); + vector::push_back(&mut vec_of_a, A{a:11}); + vector::push_back(&mut vec_of_a, A{a:23}); + + let hot_potato = new(vec_of_a); + let (b, hot_potato) = pop_back(hot_potato); + assert!(b.a==23, 0); + (b, hot_potato) = pop_back(hot_potato); + assert!(b.a==11, 0); + let (b, hot_potato) = pop_back(hot_potato); + assert!(b.a==5, 0); + + destroy(hot_potato); + } +} diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 370ba8c41d..7b759bf563 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -16,6 +16,7 @@ module pyth::pyth { use pyth::price::{Self, Price}; use pyth::price_identifier::{PriceIdentifier}; use pyth::setup::{Self, DeployerCap}; + use pyth::hot_potato_vector::{Self, HotPotatoVector}; use wormhole::external_address::{Self}; use wormhole::vaa::{Self, VAA}; @@ -185,6 +186,23 @@ module pyth::pyth { vector::destroy_empty(verified_vaas); } + fun create_price_infos_hot_potato( + verified_vaas: vector, + clock: &Clock + ): HotPotatoVector { + let price_updates = vector::empty(); + while (vector::length(&verified_vaas) != 0){ + let cur_vaa = vector::pop_back(&mut verified_vaas); + let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(cur_vaa), clock)); + while (vector::length(&price_infos) !=0 ){ + let cur_price_info = vector::pop_back(&mut price_infos); + vector::push_back(&mut price_updates, cur_price_info); + } + }; + vector::destroy_empty(verified_vaas); + return hot_potato_vector::new(price_updates) + } + /// Make sure that a Sui object of type PriceInfoObject exists for each update /// encoded in the worm_vaa (batch_attestation_vaa). These should be passed in /// via the price_info_objects argument. If for any price feed update, a @@ -388,676 +406,673 @@ module pyth::pyth { #[test_only] module pyth::pyth_tests{ - use std::vector::{Self}; - - use sui::sui::SUI; - use sui::coin::{Self, Coin}; - use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; - use sui::package::Self; - use sui::object::{Self, ID}; - use sui::clock::{Self, Clock}; - - use pyth::state::{State as PythState}; - use pyth::setup::{Self}; - use pyth::price_identifier::{Self}; - use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; - use pyth::price_feed::{Self}; - use pyth::data_source::{Self, DataSource}; - use pyth::i64::{Self}; - use pyth::price::{Self}; - use pyth::pyth::{Self}; - - use wormhole::setup::{Self as wormhole_setup, DeployerCap}; - use wormhole::external_address::{Self}; - use wormhole::bytes32::{Self}; - use wormhole::state::{State as WormState}; - use wormhole::vaa::{Self, VAA}; - - const DEPLOYER: address = @0x1234; - - #[test_only] - /// A vector containing a single VAA with: - /// - emitter chain ID 17 - /// - emitter address 0x71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b - /// - payload corresponding to the batch price attestation of the prices returned by get_mock_price_infos() - const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; - - fun get_verified_test_vaas(worm_state: &WormState, clock: &Clock): vector { - let test_vaas_: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; - let verified_vaas_reversed = vector::empty(); - let test_vaas = test_vaas_; - let i = 0; - while (i < vector::length(&test_vaas_)) { - let cur_test_vaa = vector::pop_back(&mut test_vaas); - let verified_vaa = vaa::parse_and_verify(worm_state, cur_test_vaa, clock); - vector::push_back(&mut verified_vaas_reversed, verified_vaa); - i=i+1; - }; - let verified_vaas = vector::empty(); - while (vector::length(&verified_vaas_reversed)!=0){ - let cur = vector::pop_back(&mut verified_vaas_reversed); - vector::push_back(&mut verified_vaas, cur); - }; - vector::destroy_empty(verified_vaas_reversed); - verified_vaas - } + // use std::vector::{Self}; + + // use sui::sui::SUI; + // use sui::coin::{Self, Coin}; + // use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; + // use sui::package::Self; + // use sui::object::{Self, ID}; + // use sui::clock::{Self, Clock}; + + // use pyth::state::{State as PythState}; + // use pyth::setup::{Self}; + // use pyth::price_identifier::{Self}; + // use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; + // use pyth::price_feed::{Self}; + // use pyth::data_source::{Self, DataSource}; + // use pyth::i64::{Self}; + // use pyth::price::{Self}; + // use pyth::pyth::{Self}; + + // use wormhole::setup::{Self as wormhole_setup, DeployerCap}; + // use wormhole::external_address::{Self}; + // use wormhole::bytes32::{Self}; + // use wormhole::state::{State as WormState}; + // use wormhole::vaa::{Self, VAA}; + + // const DEPLOYER: address = @0x1234; + + // #[test_only] + // /// A vector containing a single VAA with: + // /// - emitter chain ID 17 + // /// - emitter address 0x71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b + // /// - payload corresponding to the batch price attestation of the prices returned by get_mock_price_infos() + // const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; + + // fun get_verified_test_vaas(worm_state: &WormState, clock: &Clock): vector { + // let test_vaas_: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; + // let verified_vaas_reversed = vector::empty(); + // let test_vaas = test_vaas_; + // let i = 0; + // while (i < vector::length(&test_vaas_)) { + // let cur_test_vaa = vector::pop_back(&mut test_vaas); + // let verified_vaa = vaa::parse_and_verify(worm_state, cur_test_vaa, clock); + // vector::push_back(&mut verified_vaas_reversed, verified_vaa); + // i=i+1; + // }; + // let verified_vaas = vector::empty(); + // while (vector::length(&verified_vaas_reversed)!=0){ + // let cur = vector::pop_back(&mut verified_vaas_reversed); + // vector::push_back(&mut verified_vaas, cur); + // }; + // vector::destroy_empty(verified_vaas_reversed); + // verified_vaas + // } - #[test_only] - /// Init Wormhole core bridge state. - /// Init Pyth state. - /// Set initial Sui clock time. - /// Mint some SUI fee coins. - fun setup_test( - stale_price_threshold: u64, - governance_emitter_chain_id: u64, - governance_emitter_address: vector, - data_sources: vector, - base_update_fee: u64, - to_mint: u64 - ): (Scenario, Coin, Clock) { - - let scenario = test_scenario::begin(DEPLOYER); - - // Initialize Wormhole core bridge. - wormhole_setup::init_test_only(ctx(&mut scenario)); - test_scenario::next_tx(&mut scenario, DEPLOYER); - // Take the `DeployerCap` from the sender of the transaction. - let deployer_cap = - test_scenario::take_from_address( - &scenario, - DEPLOYER - ); - - // This will be created and sent to the transaction sender automatically - // when the contract is published. This exists in place of grabbing - // it from the sender. - let upgrade_cap = - package::test_publish( - object::id_from_address(@wormhole), - test_scenario::ctx(&mut scenario) - ); - - let governance_chain = 1234; - let governance_contract = - x"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; - let initial_guardians = - vector[ - x"beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe" - ]; - let guardian_set_seconds_to_live = 5678; - let message_fee = 350; - let guardian_set_index = 0; - wormhole_setup::complete( - deployer_cap, - upgrade_cap, - governance_chain, - governance_contract, - guardian_set_index, - initial_guardians, - guardian_set_seconds_to_live, - message_fee, - test_scenario::ctx(&mut scenario) - ); - - // Initialize Pyth state. - let pyth_upgrade_cap= - package::test_publish( - object::id_from_address(@pyth), - test_scenario::ctx(&mut scenario) - ); - - setup::init_test_only(ctx(&mut scenario)); - test_scenario::next_tx(&mut scenario, DEPLOYER); - let pyth_deployer_cap = test_scenario::take_from_address( - &scenario, - DEPLOYER - ); - - setup::init_and_share_state( - pyth_deployer_cap, - pyth_upgrade_cap, - stale_price_threshold, - base_update_fee, - data_source::new(governance_emitter_chain_id, external_address::new(bytes32::from_bytes(governance_emitter_address))), - data_sources, - ctx(&mut scenario) - ); - - let coins = coin::mint_for_testing(to_mint, ctx(&mut scenario)); - let clock = clock::create_for_testing(ctx(&mut scenario)); - (scenario, coins, clock) - } - - #[test_only] - fun get_mock_price_infos(): vector { - vector[ - price_info::new_price_info( - 1663680747, - 1663074349, - price_feed::new( - price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"), - price::new(i64::new(1557, false), 7, i64::new(5, true), 1663680740), - price::new(i64::new(1500, false), 3, i64::new(5, true), 1663680740), - ), - ), - price_info::new_price_info( - 1663680747, - 1663074349, - price_feed::new( - price_identifier::from_byte_vec(x"3b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe"), - price::new(i64::new(1050, false), 3, i64::new(5, true), 1663680745), - price::new(i64::new(1483, false), 3, i64::new(5, true), 1663680745), - ), - ), - price_info::new_price_info( - 1663680747, - 1663074349, - price_feed::new( - price_identifier::from_byte_vec(x"33832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d"), - price::new(i64::new(1010, false), 2, i64::new(5, true), 1663680745), - price::new(i64::new(1511, false), 3, i64::new(5, true), 1663680745), - ), - ), - price_info::new_price_info( - 1663680747, - 1663074349, - price_feed::new( - price_identifier::from_byte_vec(x"21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db8"), - price::new(i64::new(1739, false), 1, i64::new(5, true), 1663680745), - price::new(i64::new(1508, false), 3, i64::new(5, true), 1663680745), - ), - ), - ] - } - - #[test_only] - /// Compare the expected price feed with the actual Pyth price feeds. - fun check_price_feeds_cached(expected: &vector, actual: &vector) { - // Check that we can retrieve the correct current price and ema price for each price feed - let i = 0; - while (i < vector::length(expected)) { - let price_feed = price_info::get_price_feed(vector::borrow(expected, i)); - let price = price_feed::get_price(price_feed); - let ema_price = price_feed::get_ema_price(price_feed); - let price_identifier = price_info::get_price_identifier(vector::borrow(expected, i)); - - let actual_price_info = price_info::get_price_info_from_price_info_object(vector::borrow(actual, i)); - let actual_price_feed = price_info::get_price_feed(&actual_price_info); - let actual_price = price_feed::get_price(actual_price_feed); - let actual_ema_price = price_feed::get_ema_price(actual_price_feed); - let actual_price_identifier = price_info::get_price_identifier(&actual_price_info); - - assert!(price == actual_price, 0); - assert!(ema_price == actual_ema_price, 0); - assert!(price_identifier::get_bytes(&price_identifier) == price_identifier::get_bytes(&actual_price_identifier), 0); - - i = i + 1; - }; - } - - #[test] - fun test_get_update_fee() { - let single_update_fee = 50; - let (scenario, test_coins, _clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], single_update_fee, 0); - test_scenario::next_tx(&mut scenario, DEPLOYER, ); - let pyth_state = take_shared(&scenario); - // Pass in a single VAA - - let single_vaa = vector[ - x"fb1543888001083cf2e6ef3afdcf827e89b11efd87c563638df6e1995ada9f93", - ]; - - assert!(pyth::get_total_update_fee(&pyth_state, vector::length>(&single_vaa)) == single_update_fee, 1); - - let multiple_vaas = vector[ - x"4ee17a1a4524118de513fddcf82b77454e51be5d6fc9e29fc72dd6c204c0e4fa", - x"c72fdf81cfc939d4286c93fbaaae2eec7bae28a5926fa68646b43a279846ccc1", - x"d9a8123a793529c31200339820a3210059ecace6c044f81ecad62936e47ca049", - x"84e4f21b3e65cef47fda25d15b4eddda1edf720a1d062ccbf441d6396465fbe6", - x"9e73f9041476a93701a0b9c7501422cc2aa55d16100bec628cf53e0281b6f72f" - ]; - - // Pass in multiple VAAs - assert!(pyth::get_total_update_fee(&pyth_state, vector::length>(&multiple_vaas)) == 250, 1); - - return_shared(pyth_state); - coin::burn_for_testing(test_coins); - clock::destroy_for_testing(_clock); - test_scenario::end(scenario); - } - - #[test] - #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] - fun test_create_price_feeds_corrupt_vaa() { - let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); - test_scenario::next_tx(&mut scenario, DEPLOYER); - let pyth_state = take_shared(&scenario); - let worm_state = take_shared(&scenario); - - // Pass in a corrupt VAA, which should fail deseriaizing - let corrupt_vaa = x"90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; - let verified_vaas = vector[vaa::parse_and_verify(&worm_state, corrupt_vaa, &clock)]; - // Create Pyth price feed - pyth::create_price_feeds( - &mut pyth_state, - verified_vaas, - &clock, - ctx(&mut scenario) - ); - - return_shared(pyth_state); - return_shared(worm_state); - clock::destroy_for_testing(clock); - coin::burn_for_testing(test_coins); - test_scenario::end(scenario); - } - - #[test] - #[expected_failure(abort_code = pyth::pyth::E_INVALID_DATA_SOURCE)] - fun test_create_price_feeds_invalid_data_source() { - // Initialize the contract with some valid data sources, excluding our test VAA's source - let data_sources = vector[ - data_source::new( - 4, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007742")) - ), - data_source::new( - 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637")) - ) - ]; - - let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, 50, 0); - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let pyth_state = take_shared(&scenario); - let worm_state = take_shared(&scenario); - - let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::create_price_feeds( - &mut pyth_state, - verified_vaas, - &clock, - ctx(&mut scenario) - ); - - return_shared(pyth_state); - return_shared(worm_state); - clock::destroy_for_testing(clock); - coin::burn_for_testing(test_coins); - test_scenario::end(scenario); - } - - #[test_only] - fun data_sources_for_test_vaa(): vector { - // Set some valid data sources, including our test VAA's source - vector[ - data_source::new( - 1, external_address::new(bytes32::from_bytes(x"0000000000000000000000000000000000000000000000000000000000000004"))), - data_source::new( - 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637"))), - data_source::new( - 17, external_address::new(bytes32::new(x"71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b"))) - ] - } - - #[test] - fun test_create_and_update_price_feeds_success() { - let data_sources = data_sources_for_test_vaa(); - let base_update_fee = 50; - let coins_to_mint = 5000; - - let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let pyth_state = take_shared(&scenario); - let worm_state = take_shared(&scenario); - - let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::create_price_feeds( - &mut pyth_state, - verified_vaas, - &clock, - ctx(&mut scenario) - ); - - // Affirm that 4 objects, which correspond to the 4 new price info objects - // containing the price feeds were created and shared. - let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); - let shared_ids = test_scenario::shared(&effects); - let created_ids = test_scenario::created(&effects); - assert!(vector::length(&shared_ids)==4, 0); - assert!(vector::length(&created_ids)==4, 0); - - let price_info_object_1 = take_shared(&scenario); - let price_info_object_2 = take_shared(&scenario); - let price_info_object_3 = take_shared(&scenario); - let price_info_object_4 = take_shared(&scenario); - - // Create vector of price info objects (Sui objects with key ability and living in global store), - // which contain the price feeds we want to update. Note that these can be passed into - // update_price_feeds in any order! - let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3, price_info_object_4]; - verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::update_price_feeds( - &mut pyth_state, - verified_vaas, - &mut price_info_object_vec, - test_coins, - &clock - ); - - price_info_object_4 = vector::pop_back(&mut price_info_object_vec); - price_info_object_3 = vector::pop_back(&mut price_info_object_vec); - price_info_object_2 = vector::pop_back(&mut price_info_object_vec); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - vector::destroy_empty(price_info_object_vec); - - return_shared(pyth_state); - return_shared(worm_state); - return_shared(price_info_object_1); - return_shared(price_info_object_2); - return_shared(price_info_object_3); - return_shared(price_info_object_4); - - clock::destroy_for_testing(clock); - test_scenario::end(scenario); - } - - #[test] - #[expected_failure(abort_code = pyth::pyth::E_PRICE_INFO_OBJECT_NOT_FOUND)] - fun test_create_and_update_price_feeds_price_info_object_not_found_failure() { - let data_sources = data_sources_for_test_vaa(); - let base_update_fee = 50; - let coins_to_mint = 5000; - - let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let pyth_state = take_shared(&scenario); - let worm_state = take_shared(&scenario); - let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::create_price_feeds( - &mut pyth_state, - verified_vaas, - &clock, - ctx(&mut scenario) - ); - - // Affirm that 4 objects, which correspond to the 4 new price info objects - // containing the price feeds were created and shared. - let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); - let shared_ids = test_scenario::shared(&effects); - let created_ids = test_scenario::created(&effects); - assert!(vector::length(&shared_ids)==4, 0); - assert!(vector::length(&created_ids)==4, 0); - - let price_info_object_1 = take_shared(&scenario); - let price_info_object_2 = take_shared(&scenario); - let price_info_object_3 = take_shared(&scenario); - let price_info_object_4 = take_shared(&scenario); - - // Note that here we only pass in 3 price info objects corresponding to 3 out - // of the 4 price feeds. - let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3]; - let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::update_price_feeds( - &mut pyth_state, - verified_vaas, - &mut price_info_object_vec, - test_coins, - &clock - ); - - price_info_object_3 = vector::pop_back(&mut price_info_object_vec); - price_info_object_2 = vector::pop_back(&mut price_info_object_vec); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - - vector::destroy_empty(price_info_object_vec); - return_shared(pyth_state); - return_shared(worm_state); - return_shared(price_info_object_1); - return_shared(price_info_object_2); - return_shared(price_info_object_3); - return_shared(price_info_object_4); - - return_shared(clock); - test_scenario::end(scenario); - } - - #[test] - #[expected_failure(abort_code = pyth::pyth::E_INSUFFICIENT_FEE)] - fun test_create_and_update_price_feeds_insufficient_fee() { - let data_sources = data_sources_for_test_vaa(); - let base_update_fee = 50; - let coins_to_mint = 5; - - let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let pyth_state = take_shared(&scenario); - let worm_state = take_shared(&scenario); - - let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::create_price_feeds( - &mut pyth_state, - verified_vaas, - &clock, - ctx(&mut scenario) - ); - - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let price_info_object = take_shared(&scenario); - let price_info_object_vec = vector[price_info_object]; - - verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::update_price_feeds( - &mut pyth_state, - verified_vaas, - &mut price_info_object_vec, - test_coins, - &clock - ); - - price_info_object = vector::pop_back(&mut price_info_object_vec); - vector::destroy_empty(price_info_object_vec); - return_shared(pyth_state); - return_shared(worm_state); - return_shared(price_info_object); - return_shared(clock); - test_scenario::end(scenario); - } - - #[test] - fun test_update_cache(){ - let data_sources = data_sources_for_test_vaa(); - let base_update_fee = 50; - let coins_to_mint = 5000; - - let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let pyth_state = take_shared(&scenario); - let worm_state = take_shared(&scenario); - - let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - // Update cache is called by create_price_feeds. - pyth::create_price_feeds( - &mut pyth_state, - verified_vaas, - &clock, - ctx(&mut scenario) - ); - - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let price_info_object_1 = take_shared(&scenario); - let price_info_object_2 = take_shared(&scenario); - let price_info_object_3 = take_shared(&scenario); - let price_info_object_4 = take_shared(&scenario); - - // These updates are price infos that correspond to the ones in TEST_VAAS. - let updates = get_mock_price_infos(); - let price_info_object_vec = vector[ - price_info_object_1, - price_info_object_2, - price_info_object_3, - price_info_object_4 - ]; - - // Check that TEST_VAAS was indeed used to instantiate the price feeds correctly, - // by confirming that the info in updates is contained in price_info_object_vec. - check_price_feeds_cached(&updates, &price_info_object_vec); - - price_info_object_4 = vector::pop_back(&mut price_info_object_vec); - price_info_object_3 = vector::pop_back(&mut price_info_object_vec); - price_info_object_2 = vector::pop_back(&mut price_info_object_vec); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - vector::destroy_empty(price_info_object_vec); - - return_shared(pyth_state); - return_shared(worm_state); - return_shared(price_info_object_1); - return_shared(price_info_object_2); - return_shared(price_info_object_3); - return_shared(price_info_object_4); - coin::burn_for_testing(test_coins); - - clock::destroy_for_testing(clock); - test_scenario::end(scenario); - } - - #[test] - fun test_update_cache_old_update() { - let data_sources = data_sources_for_test_vaa(); - let base_update_fee = 50; - let coins_to_mint = 5000; - - let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let pyth_state = take_shared(&scenario); - let worm_state = take_shared(&scenario); - let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - pyth::create_price_feeds( - &mut pyth_state, - verified_vaas, - &clock, - ctx(&mut scenario) - ); - - test_scenario::next_tx(&mut scenario, DEPLOYER); - - let price_info_object_1 = take_shared(&scenario); - let price_info_object_2 = take_shared(&scenario); - let price_info_object_3 = take_shared(&scenario); - let price_info_object_4 = take_shared(&scenario); - - let price_info_object_vec = vector[ - price_info_object_1, - price_info_object_2, - price_info_object_3, - price_info_object_4 - ]; - - // Hardcode the price identifier, price, and ema_price for price_info_object_1, because - // it's easier than unwrapping price_info_object_1 and getting the quantities via getters. - let timestamp = 1663680740; - let price_identifier = price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"); - let price = price::new(i64::new(1557, false), 7, i64::new(5, true), timestamp); - let ema_price = price::new(i64::new(1500, false), 3, i64::new(5, true), timestamp); - - // Attempt to update the price with an update older than the current cached one. - let old_price = price::new(i64::new(1243, true), 9802, i64::new(6, false), timestamp - 200); - let old_ema_price = price::new(i64::new(8976, true), 234, i64::new(897, false), timestamp - 200); - let old_update = price_info::new_price_info( - 1257278600, - 1690226180, - price_feed::new( - price_identifier, - old_price, - old_ema_price, - ) - ); - pyth::update_cache(vector[old_update], &mut price_info_object_vec, &clock); - - price_info_object_4 = vector::pop_back(&mut price_info_object_vec); - price_info_object_3 = vector::pop_back(&mut price_info_object_vec); - price_info_object_2 = vector::pop_back(&mut price_info_object_vec); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - - vector::destroy_empty(price_info_object_vec); - - let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); - let current_price_feed = price_info::get_price_feed(¤t_price_info); - let current_price = price_feed::get_price(current_price_feed); - let current_ema_price = price_feed::get_ema_price(current_price_feed); - - // Confirm that no price update occurred when we tried to update cache with an - // outdated update: old_update. - assert!(current_price == price, 1); - assert!(current_ema_price == ema_price, 1); - - test_scenario::next_tx(&mut scenario, DEPLOYER); - - // Update the cache with a fresh update. - let fresh_price = price::new(i64::new(5243, true), 2, i64::new(3, false), timestamp + 200); - let fresh_ema_price = price::new(i64::new(8976, true), 21, i64::new(32, false), timestamp + 200); - let fresh_update = price_info::new_price_info( - 1257278600, - 1690226180, - price_feed::new( - price_identifier, - fresh_price, - fresh_ema_price, - ) - ); - - let price_info_object_vec = vector[ - price_info_object_1, - price_info_object_2, - price_info_object_3, - price_info_object_4 - ]; - - pyth::update_cache(vector[fresh_update], &mut price_info_object_vec, &clock); - - price_info_object_4 = vector::pop_back(&mut price_info_object_vec); - price_info_object_3 = vector::pop_back(&mut price_info_object_vec); - price_info_object_2 = vector::pop_back(&mut price_info_object_vec); - price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - - vector::destroy_empty(price_info_object_vec); - - // Confirm that the Pyth cached price got updated to fresh_price. - let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); - let current_price_feed = price_info::get_price_feed(¤t_price_info); - let current_price = price_feed::get_price(current_price_feed); - let current_ema_price = price_feed::get_ema_price(current_price_feed); - - assert!(current_price==fresh_price, 0); - assert!(current_ema_price==fresh_ema_price, 0); - - return_shared(pyth_state); - return_shared(worm_state); - return_shared(price_info_object_1); - return_shared(price_info_object_2); - return_shared(price_info_object_3); - return_shared(price_info_object_4); - coin::burn_for_testing(test_coins); - - clock::destroy_for_testing(clock); - test_scenario::end(scenario); - } + // #[test_only] + // /// Init Wormhole core bridge state. + // /// Init Pyth state. + // /// Set initial Sui clock time. + // /// Mint some SUI fee coins. + // fun setup_test( + // stale_price_threshold: u64, + // governance_emitter_chain_id: u64, + // governance_emitter_address: vector, + // data_sources: vector, + // base_update_fee: u64, + // to_mint: u64 + // ): (Scenario, Coin, Clock) { + + // let scenario = test_scenario::begin(DEPLOYER); + + // // Initialize Wormhole core bridge. + // wormhole_setup::init_test_only(ctx(&mut scenario)); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + // // Take the `DeployerCap` from the sender of the transaction. + // let deployer_cap = + // test_scenario::take_from_address( + // &scenario, + // DEPLOYER + // ); + + // // This will be created and sent to the transaction sender automatically + // // when the contract is published. This exists in place of grabbing + // // it from the sender. + // let upgrade_cap = + // package::test_publish( + // object::id_from_address(@wormhole), + // test_scenario::ctx(&mut scenario) + // ); + + // let governance_chain = 1234; + // let governance_contract = + // x"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; + // let initial_guardians = + // vector[ + // x"beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe" + // ]; + // let guardian_set_seconds_to_live = 5678; + // let message_fee = 350; + // let guardian_set_index = 0; + // wormhole_setup::complete( + // deployer_cap, + // upgrade_cap, + // governance_chain, + // governance_contract, + // guardian_set_index, + // initial_guardians, + // guardian_set_seconds_to_live, + // message_fee, + // test_scenario::ctx(&mut scenario) + // ); + + // // Initialize Pyth state. + // let pyth_upgrade_cap= + // package::test_publish( + // object::id_from_address(@pyth), + // test_scenario::ctx(&mut scenario) + // ); + + // setup::init_test_only(ctx(&mut scenario)); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + // let pyth_deployer_cap = test_scenario::take_from_address( + // &scenario, + // DEPLOYER + // ); + + // setup::init_and_share_state( + // pyth_deployer_cap, + // pyth_upgrade_cap, + // stale_price_threshold, + // base_update_fee, + // data_source::new(governance_emitter_chain_id, external_address::new(bytes32::from_bytes(governance_emitter_address))), + // data_sources, + // ctx(&mut scenario) + // ); + + // let coins = coin::mint_for_testing(to_mint, ctx(&mut scenario)); + // let clock = clock::create_for_testing(ctx(&mut scenario)); + // (scenario, coins, clock) + // } + + // #[test_only] + // fun get_mock_price_infos(): vector { + // vector[ + // price_info::new_price_info( + // 1663680747, + // 1663074349, + // price_feed::new( + // price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"), + // price::new(i64::new(1557, false), 7, i64::new(5, true), 1663680740), + // price::new(i64::new(1500, false), 3, i64::new(5, true), 1663680740), + // ), + // ), + // price_info::new_price_info( + // 1663680747, + // 1663074349, + // price_feed::new( + // price_identifier::from_byte_vec(x"3b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe"), + // price::new(i64::new(1050, false), 3, i64::new(5, true), 1663680745), + // price::new(i64::new(1483, false), 3, i64::new(5, true), 1663680745), + // ), + // ), + // price_info::new_price_info( + // 1663680747, + // 1663074349, + // price_feed::new( + // price_identifier::from_byte_vec(x"33832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d"), + // price::new(i64::new(1010, false), 2, i64::new(5, true), 1663680745), + // price::new(i64::new(1511, false), 3, i64::new(5, true), 1663680745), + // ), + // ), + // price_info::new_price_info( + // 1663680747, + // 1663074349, + // price_feed::new( + // price_identifier::from_byte_vec(x"21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db8"), + // price::new(i64::new(1739, false), 1, i64::new(5, true), 1663680745), + // price::new(i64::new(1508, false), 3, i64::new(5, true), 1663680745), + // ), + // ), + // ] + // } + + // #[test_only] + // /// Compare the expected price feed with the actual Pyth price feeds. + // fun check_price_feeds_cached(expected: &vector, actual: &vector) { + // // Check that we can retrieve the correct current price and ema price for each price feed + // let i = 0; + // while (i < vector::length(expected)) { + // let price_feed = price_info::get_price_feed(vector::borrow(expected, i)); + // let price = price_feed::get_price(price_feed); + // let ema_price = price_feed::get_ema_price(price_feed); + // let price_identifier = price_info::get_price_identifier(vector::borrow(expected, i)); + + // let actual_price_info = price_info::get_price_info_from_price_info_object(vector::borrow(actual, i)); + // let actual_price_feed = price_info::get_price_feed(&actual_price_info); + // let actual_price = price_feed::get_price(actual_price_feed); + // let actual_ema_price = price_feed::get_ema_price(actual_price_feed); + // let actual_price_identifier = price_info::get_price_identifier(&actual_price_info); + + // assert!(price == actual_price, 0); + // assert!(ema_price == actual_ema_price, 0); + // assert!(price_identifier::get_bytes(&price_identifier) == price_identifier::get_bytes(&actual_price_identifier), 0); + + // i = i + 1; + // }; + // } + + // #[test] + // fun test_get_update_fee() { + // let single_update_fee = 50; + // let (scenario, test_coins, _clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], single_update_fee, 0); + // test_scenario::next_tx(&mut scenario, DEPLOYER, ); + // let pyth_state = take_shared(&scenario); + // // Pass in a single VAA + + // let single_vaa = vector[ + // x"fb1543888001083cf2e6ef3afdcf827e89b11efd87c563638df6e1995ada9f93", + // ]; + + // assert!(pyth::get_total_update_fee(&pyth_state, vector::length>(&single_vaa)) == single_update_fee, 1); + + // let multiple_vaas = vector[ + // x"4ee17a1a4524118de513fddcf82b77454e51be5d6fc9e29fc72dd6c204c0e4fa", + // x"c72fdf81cfc939d4286c93fbaaae2eec7bae28a5926fa68646b43a279846ccc1", + // x"d9a8123a793529c31200339820a3210059ecace6c044f81ecad62936e47ca049", + // x"84e4f21b3e65cef47fda25d15b4eddda1edf720a1d062ccbf441d6396465fbe6", + // x"9e73f9041476a93701a0b9c7501422cc2aa55d16100bec628cf53e0281b6f72f" + // ]; + + // // Pass in multiple VAAs + // assert!(pyth::get_total_update_fee(&pyth_state, vector::length>(&multiple_vaas)) == 250, 1); + + // return_shared(pyth_state); + // coin::burn_for_testing(test_coins); + // clock::destroy_for_testing(_clock); + // test_scenario::end(scenario); + // } + + // #[test] + // #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] + // fun test_create_price_feeds_corrupt_vaa() { + // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + // let pyth_state = take_shared(&scenario); + // let worm_state = take_shared(&scenario); + + // // Pass in a corrupt VAA, which should fail deseriaizing + // let corrupt_vaa = x"90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; + // let verified_vaas = vector[vaa::parse_and_verify(&worm_state, corrupt_vaa, &clock)]; + // // Create Pyth price feed + // pyth::create_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &clock, + // ctx(&mut scenario) + // ); + + // return_shared(pyth_state); + // return_shared(worm_state); + // clock::destroy_for_testing(clock); + // coin::burn_for_testing(test_coins); + // test_scenario::end(scenario); + // } + + // #[test] + // #[expected_failure(abort_code = pyth::pyth::E_INVALID_DATA_SOURCE)] + // fun test_create_price_feeds_invalid_data_source() { + // // Initialize the contract with some valid data sources, excluding our test VAA's source + // let data_sources = vector[ + // data_source::new( + // 4, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007742")) + // ), + // data_source::new( + // 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637")) + // ) + // ]; + + // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, 50, 0); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let pyth_state = take_shared(&scenario); + // let worm_state = take_shared(&scenario); + + // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::create_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &clock, + // ctx(&mut scenario) + // ); + + // return_shared(pyth_state); + // return_shared(worm_state); + // clock::destroy_for_testing(clock); + // coin::burn_for_testing(test_coins); + // test_scenario::end(scenario); + // } + + // #[test_only] + // fun data_sources_for_test_vaa(): vector { + // // Set some valid data sources, including our test VAA's source + // vector[ + // data_source::new( + // 1, external_address::new(bytes32::from_bytes(x"0000000000000000000000000000000000000000000000000000000000000004"))), + // data_source::new( + // 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637"))), + // data_source::new( + // 17, external_address::new(bytes32::new(x"71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b"))) + // ] + // } + + // #[test] + // fun test_create_and_update_price_feeds_success() { + // let data_sources = data_sources_for_test_vaa(); + // let base_update_fee = 50; + // let coins_to_mint = 5000; + + // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let pyth_state = take_shared(&scenario); + // let worm_state = take_shared(&scenario); + + // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::create_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &clock, + // ctx(&mut scenario) + // ); + + // // Affirm that 4 objects, which correspond to the 4 new price info objects + // // containing the price feeds were created and shared. + // let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); + // let shared_ids = test_scenario::shared(&effects); + // let created_ids = test_scenario::created(&effects); + // assert!(vector::length(&shared_ids)==4, 0); + // assert!(vector::length(&created_ids)==4, 0); + + // let price_info_object_1 = take_shared(&scenario); + // let price_info_object_2 = take_shared(&scenario); + // let price_info_object_3 = take_shared(&scenario); + // let price_info_object_4 = take_shared(&scenario); + + // // Create vector of price info objects (Sui objects with key ability and living in global store), + // // which contain the price feeds we want to update. Note that these can be passed into + // // update_price_feeds in any order! + // let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3, price_info_object_4]; + // verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::update_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &mut price_info_object_vec, + // test_coins, + // &clock + // ); + + // price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + // vector::destroy_empty(price_info_object_vec); + + // return_shared(pyth_state); + // return_shared(worm_state); + // return_shared(price_info_object_1); + // return_shared(price_info_object_2); + // return_shared(price_info_object_3); + // return_shared(price_info_object_4); + + // clock::destroy_for_testing(clock); + // test_scenario::end(scenario); + // } + + // #[test] + // #[expected_failure(abort_code = pyth::pyth::E_PRICE_INFO_OBJECT_NOT_FOUND)] + // fun test_create_and_update_price_feeds_price_info_object_not_found_failure() { + // let data_sources = data_sources_for_test_vaa(); + // let base_update_fee = 50; + // let coins_to_mint = 5000; + + // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let pyth_state = take_shared(&scenario); + // let worm_state = take_shared(&scenario); + // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::create_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &clock, + // ctx(&mut scenario) + // ); + + // // Affirm that 4 objects, which correspond to the 4 new price info objects + // // containing the price feeds were created and shared. + // let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); + // let shared_ids = test_scenario::shared(&effects); + // let created_ids = test_scenario::created(&effects); + // assert!(vector::length(&shared_ids)==4, 0); + // assert!(vector::length(&created_ids)==4, 0); + + // let price_info_object_1 = take_shared(&scenario); + // let price_info_object_2 = take_shared(&scenario); + // let price_info_object_3 = take_shared(&scenario); + // let price_info_object_4 = take_shared(&scenario); + + // // Note that here we only pass in 3 price info objects corresponding to 3 out + // // of the 4 price feeds. + // let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3]; + // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::update_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &mut price_info_object_vec, + // test_coins, + // &clock + // ); + + // price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + + // vector::destroy_empty(price_info_object_vec); + // return_shared(pyth_state); + // return_shared(worm_state); + // return_shared(price_info_object_1); + // return_shared(price_info_object_2); + // return_shared(price_info_object_3); + // return_shared(price_info_object_4); + + // return_shared(clock); + // test_scenario::end(scenario); + // } + + // #[test] + // #[expected_failure(abort_code = pyth::pyth::E_INSUFFICIENT_FEE)] + // fun test_create_and_update_price_feeds_insufficient_fee() { + // let data_sources = data_sources_for_test_vaa(); + // let base_update_fee = 50; + // let coins_to_mint = 5; + + // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let pyth_state = take_shared(&scenario); + // let worm_state = take_shared(&scenario); + + // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::create_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &clock, + // ctx(&mut scenario) + // ); + + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let price_info_object = take_shared(&scenario); + // let price_info_object_vec = vector[price_info_object]; + + // verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::update_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &mut price_info_object_vec, + // test_coins, + // &clock + // ); + + // price_info_object = vector::pop_back(&mut price_info_object_vec); + // vector::destroy_empty(price_info_object_vec); + // return_shared(pyth_state); + // return_shared(worm_state); + // return_shared(price_info_object); + // return_shared(clock); + // test_scenario::end(scenario); + // } + + // #[test] + // fun test_update_cache(){ + // let data_sources = data_sources_for_test_vaa(); + // let base_update_fee = 50; + // let coins_to_mint = 5000; + + // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let pyth_state = take_shared(&scenario); + // let worm_state = take_shared(&scenario); + + // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // // Update cache is called by create_price_feeds. + // pyth::create_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &clock, + // ctx(&mut scenario) + // ); + + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let price_info_object_1 = take_shared(&scenario); + // let price_info_object_2 = take_shared(&scenario); + // let price_info_object_3 = take_shared(&scenario); + // let price_info_object_4 = take_shared(&scenario); + + // // These updates are price infos that correspond to the ones in TEST_VAAS. + // let updates = get_mock_price_infos(); + // let price_info_object_vec = vector[ + // price_info_object_1, + // price_info_object_2, + // price_info_object_3, + // price_info_object_4 + // ]; + + // // Check that TEST_VAAS was indeed used to instantiate the price feeds correctly, + // // by confirming that the info in updates is contained in price_info_object_vec. + // check_price_feeds_cached(&updates, &price_info_object_vec); + + // price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + // vector::destroy_empty(price_info_object_vec); + + // return_shared(pyth_state); + // return_shared(worm_state); + // return_shared(price_info_object_1); + // return_shared(price_info_object_2); + // return_shared(price_info_object_3); + // return_shared(price_info_object_4); + // coin::burn_for_testing(test_coins); + + // clock::destroy_for_testing(clock); + // test_scenario::end(scenario); + // } + + // #[test] + // fun test_update_cache_old_update() { + // let data_sources = data_sources_for_test_vaa(); + // let base_update_fee = 50; + // let coins_to_mint = 5000; + + // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let pyth_state = take_shared(&scenario); + // let worm_state = take_shared(&scenario); + // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); + + // pyth::create_price_feeds( + // &mut pyth_state, + // verified_vaas, + // &clock, + // ctx(&mut scenario) + // ); + + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // let price_info_object_1 = take_shared(&scenario); + // let price_info_object_2 = take_shared(&scenario); + // let price_info_object_3 = take_shared(&scenario); + // let price_info_object_4 = take_shared(&scenario); + + // let price_info_object_vec = vector[ + // price_info_object_1, + // price_info_object_2, + // price_info_object_3, + // price_info_object_4 + // ]; + + // // Hardcode the price identifier, price, and ema_price for price_info_object_1, because + // // it's easier than unwrapping price_info_object_1 and getting the quantities via getters. + // let timestamp = 1663680740; + // let price_identifier = price_identifier::from_byte_vec(x"c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1"); + // let price = price::new(i64::new(1557, false), 7, i64::new(5, true), timestamp); + // let ema_price = price::new(i64::new(1500, false), 3, i64::new(5, true), timestamp); + + // // Attempt to update the price with an update older than the current cached one. + // let old_price = price::new(i64::new(1243, true), 9802, i64::new(6, false), timestamp - 200); + // let old_ema_price = price::new(i64::new(8976, true), 234, i64::new(897, false), timestamp - 200); + // let old_update = price_info::new_price_info( + // 1257278600, + // 1690226180, + // price_feed::new( + // price_identifier, + // old_price, + // old_ema_price, + // ) + // ); + // pyth::update_cache(vector[old_update], &mut price_info_object_vec, &clock); + + // price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + + // vector::destroy_empty(price_info_object_vec); + + // let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); + // let current_price_feed = price_info::get_price_feed(¤t_price_info); + // let current_price = price_feed::get_price(current_price_feed); + // let current_ema_price = price_feed::get_ema_price(current_price_feed); + + // // Confirm that no price update occurred when we tried to update cache with an + // // outdated update: old_update. + // assert!(current_price == price, 1); + // assert!(current_ema_price == ema_price, 1); + + // test_scenario::next_tx(&mut scenario, DEPLOYER); + + // // Update the cache with a fresh update. + // let fresh_price = price::new(i64::new(5243, true), 2, i64::new(3, false), timestamp + 200); + // let fresh_ema_price = price::new(i64::new(8976, true), 21, i64::new(32, false), timestamp + 200); + // let fresh_update = price_info::new_price_info( + // 1257278600, + // 1690226180, + // price_feed::new( + // price_identifier, + // fresh_price, + // fresh_ema_price, + // ) + // ); + + // let price_info_object_vec = vector[ + // price_info_object_1, + // price_info_object_2, + // price_info_object_3, + // price_info_object_4 + // ]; + + // pyth::update_cache(vector[fresh_update], &mut price_info_object_vec, &clock); + + // price_info_object_4 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_3 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_2 = vector::pop_back(&mut price_info_object_vec); + // price_info_object_1 = vector::pop_back(&mut price_info_object_vec); + + // vector::destroy_empty(price_info_object_vec); + + // // Confirm that the Pyth cached price got updated to fresh_price. + // let current_price_info = price_info::get_price_info_from_price_info_object(&price_info_object_1); + // let current_price_feed = price_info::get_price_feed(¤t_price_info); + // let current_price = price_feed::get_price(current_price_feed); + // let current_ema_price = price_feed::get_ema_price(current_price_feed); + + // assert!(current_price==fresh_price, 0); + // assert!(current_ema_price==fresh_ema_price, 0); + + // return_shared(pyth_state); + // return_shared(worm_state); + // return_shared(price_info_object_1); + // return_shared(price_info_object_2); + // return_shared(price_info_object_3); + // return_shared(price_info_object_4); + // coin::burn_for_testing(test_coins); + + // clock::destroy_for_testing(clock); + // test_scenario::end(scenario); + // } } - -// TODO - pyth tests -// https://github.com/pyth-network/pyth-crosschain/blob/main/target_chains/aptos/contracts/sources/pyth.move#L384 From 53a7afaee5e93bb40cf62cc43dc4ec2fa51cf09e Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 04:18:57 +0000 Subject: [PATCH 093/140] create_price_infos_hot_potato and update_single_price_feed --- .../contracts/sources/hot_potato_vector.move | 17 +- target_chains/sui/contracts/sources/pyth.move | 198 ++++++------------ 2 files changed, 76 insertions(+), 139 deletions(-) diff --git a/target_chains/sui/contracts/sources/hot_potato_vector.move b/target_chains/sui/contracts/sources/hot_potato_vector.move index 415abb326c..89a927c297 100644 --- a/target_chains/sui/contracts/sources/hot_potato_vector.move +++ b/target_chains/sui/contracts/sources/hot_potato_vector.move @@ -4,22 +4,35 @@ module pyth::hot_potato_vector { use std::vector; const E_EMPTY_HOT_POTATO: u64 = 0; + friend pyth::pyth; + friend pyth::batch_price_attestation; + // A hot potato containing a vector of elements struct HotPotatoVector { contents: vector } + // A public destroy function. public fun destroy(hot_potato_vector: HotPotatoVector){ let HotPotatoVector {contents: _} = hot_potato_vector; } - public fun new(vec: vector): HotPotatoVector{ + // Only certain on-chain functions are allowed to create a new hot potato vector. + public(friend) fun new(vec: vector): HotPotatoVector{ HotPotatoVector { contents: vec } } - public fun pop_back(hot_potato_vector: HotPotatoVector): (T, HotPotatoVector){ + public fun length(potato: &HotPotatoVector): u64 { + vector::length(&potato.contents) + } + + public fun is_empty(potato: &HotPotatoVector): bool { + vector::is_empty(&potato.contents) + } + + public(friend) fun pop_back(hot_potato_vector: HotPotatoVector): (T, HotPotatoVector){ let elem = vector::pop_back(&mut hot_potato_vector.contents); return (elem, hot_potato_vector) } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 7b759bf563..5261f4f701 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -29,6 +29,7 @@ module pyth::pyth { const E_PRICE_INFO_OBJECT_NOT_FOUND: u64 = 4; const E_INVALID_PUBLISH_TIMES_LENGTH: u64 = 5; const E_NO_FRESH_DATA: u64 = 6; + const E_UPDATE_AND_PRICE_INFO_OBJECT_MISMATCH: u64 = 7; #[test_only] friend pyth::pyth_tests; @@ -142,10 +143,37 @@ module pyth::pyth { vector::destroy_empty(verified_vaas); } - /// Update Pyth Price Info objects (containing price feeds) with the - /// price data in the given VAAs. + public fun create_price_infos_hot_potato( + pyth_state: &PythState, + verified_vaas: vector, + clock: &Clock + ): HotPotatoVector { + let price_updates = vector::empty(); + while (vector::length(&verified_vaas) != 0){ + let cur_vaa = vector::pop_back(&mut verified_vaas); + + assert!( + state::is_valid_data_source( + pyth_state, + data_source::new( + (vaa::emitter_chain(&cur_vaa) as u64), + vaa::emitter_address(&cur_vaa)) + ), + E_INVALID_DATA_SOURCE + ); + let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(cur_vaa), clock)); + while (vector::length(&price_infos) !=0 ){ + let cur_price_info = vector::pop_back(&mut price_infos); + vector::push_back(&mut price_updates, cur_price_info); + } + }; + vector::destroy_empty(verified_vaas); + return hot_potato_vector::new(price_updates) + } + + /// Update a singular Pyth PriceInfoObject (containing a price feed) with the + /// price data in the given hot potato vector (a vector of PriceInfo objects). /// - /// The vaas argument is a vector of VAAs encoded as bytes. /// /// The javascript https://github.com/pyth-network/pyth-js/tree/main/pyth-sui-js package /// should be used to fetch these VAAs from the Price Service. More information about this @@ -155,17 +183,19 @@ module pyth::pyth { /// The update fee amount can be queried by calling get_update_fee(&vaas). /// /// Please read more information about the update fee here: https://docs.pyth.network/consume-data/on-demand#fees - public fun update_price_feeds( + public fun update_single_price_feed( pyth_state: &PythState, - verified_vaas: vector, - price_info_objects: &mut vector, + price_updates: HotPotatoVector, + price_info_object: &mut PriceInfoObject, fee: Coin, clock: &Clock - ){ + ): HotPotatoVector { let _ = state::assert_latest_only(pyth_state); - // Charge the message update fee - assert!(get_total_update_fee(pyth_state, vector::length(&verified_vaas)) <= coin::value(&fee), E_INSUFFICIENT_FEE); + // Charge the message update fee (multiply RHS by 5 because that's the max number of + // price updates that fit inside of a single batch price attestation VAA). + // We charge the base update fee for 5 price updates. + assert!(state::get_base_update_fee(pyth_state) <= 5 * coin::value(&fee), E_INSUFFICIENT_FEE); // TODO: Ideally, we'd want to use Wormhole fee collector instead of transferring funds to deployer address, // however this requires a mutable reference to PythState. We don't want update_price_feeds @@ -174,141 +204,35 @@ module pyth::pyth { // (or PriceInfoObjects). transfer::public_transfer(fee, state::get_fee_recipient(pyth_state)); - // Update the price feed from each VAA - while (!vector::is_empty(&verified_vaas)) { - update_price_feed_from_single_vaa( - pyth_state, - vector::pop_back(&mut verified_vaas), - price_info_objects, - clock - ); - }; - vector::destroy_empty(verified_vaas); - } + let (price_info, hot_potato_vector) = hot_potato_vector::pop_back(price_updates); - fun create_price_infos_hot_potato( - verified_vaas: vector, - clock: &Clock - ): HotPotatoVector { - let price_updates = vector::empty(); - while (vector::length(&verified_vaas) != 0){ - let cur_vaa = vector::pop_back(&mut verified_vaas); - let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(cur_vaa), clock)); - while (vector::length(&price_infos) !=0 ){ - let cur_price_info = vector::pop_back(&mut price_infos); - vector::push_back(&mut price_updates, cur_price_info); - } - }; - vector::destroy_empty(verified_vaas); - return hot_potato_vector::new(price_updates) - } + // Update the price_info_object using the price_info. + // If the price_info is not intended to update price_info_object, + // then the call will revert. + update_cache(price_info, price_info_object, clock); - /// Make sure that a Sui object of type PriceInfoObject exists for each update - /// encoded in the worm_vaa (batch_attestation_vaa). These should be passed in - /// via the price_info_objects argument. If for any price feed update, a - /// a PriceInfoObject with a matching price identifier is not found, the update_cache - /// function will revert, causing this function to revert. - fun update_price_feed_from_single_vaa( - pyth_state: &PythState, - verified_vaa: VAA, - price_info_objects: &mut vector, - clock: &Clock - ) { - - // Check that the VAA is from a valid data source (emitter) - assert!( - state::is_valid_data_source( - pyth_state, - data_source::new( - (vaa::emitter_chain(&verified_vaa) as u64), - vaa::emitter_address(&verified_vaa)) - ), - E_INVALID_DATA_SOURCE); - - // Deserialize the batch price attestation - let price_infos = batch_price_attestation::destroy(batch_price_attestation::deserialize(vaa::take_payload(verified_vaa), clock)); - - // Update price info objects. - update_cache(price_infos, price_info_objects, clock); + hot_potato_vector } - /// Update PriceInfoObjects using up-to-date PriceInfos. + /// Update PriceInfoObject with updated data from a PriceInfo public(friend) fun update_cache( - updates: vector, - price_info_objects: &mut vector, + update: PriceInfo, + price_info_object: &mut PriceInfoObject, clock: &Clock, ){ - while (!vector::is_empty(&updates)) { - let update = vector::pop_back(&mut updates); - let i = 0; - let found = false; - // Note - Would it be worth it to construct an in-memory hash-map to make look-ups faster? - // This loop might be expensive if there are a large number of price_info_objects - // passed in. - while (i < vector::length(price_info_objects) && found == false){ - // Check if the current price info object corresponds to the price feed that - // the update is meant for. - let price_info = price_info::get_price_info_from_price_info_object(vector::borrow(price_info_objects, i)); - if (price_info::get_price_identifier(&price_info) == - price_info::get_price_identifier(&update)){ - found = true; - // Update the price info object with the new updated price info. - if (is_fresh_update(&update, vector::borrow(price_info_objects, i))){ - pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), clock::timestamp_ms(clock)/1000); - price_info::update_price_info_object( - vector::borrow_mut(price_info_objects, i), - update - ); - } - }; - i = i + 1; - }; - if (!found){ - abort(E_PRICE_INFO_OBJECT_NOT_FOUND) - } - }; - vector::destroy_empty(updates); - } - - /// Update the cached price feeds with the data in the given VAAs, using - /// update_price_feeds(). However, this function will only have an effect if any of the - /// prices in the update are fresh. The price_identifiers and publish_times parameters - /// are used to determine if the update is fresh without doing any serialisation or verification - /// of the VAAs, potentially saving time and gas. If the update contains no fresh data, this function - /// will revert with error::no_fresh_data(). - /// - /// For a given price update i in the batch, that price is considered fresh if the current cached - /// price for price_identifiers[i] is older than publish_times[i]. - public fun update_price_feeds_if_fresh( - vaas: vector, - pyth_state: &PythState, - price_info_objects: &mut vector, - publish_times: vector, - fee: Coin, - clock: &Clock - ) { - assert!(vector::length(price_info_objects) == vector::length(&publish_times), - E_INVALID_PUBLISH_TIMES_LENGTH - ); - - let fresh_data = false; - let i = 0; - while (i < vector::length(&publish_times)) { - let cur_price_info = price_info::get_price_info_from_price_info_object(vector::borrow(price_info_objects, i)); - let cur_price_feed = price_info::get_price_feed(&cur_price_info); - let cur_price = price_feed::get_price(cur_price_feed); - - let cached_timestamp = price::get_timestamp(&cur_price); - if (cached_timestamp < *vector::borrow(&publish_times, i)) { - fresh_data = true; - break - }; - - i = i + 1; - }; - - assert!(fresh_data, E_NO_FRESH_DATA); - update_price_feeds(pyth_state, vaas, price_info_objects, fee, clock); + let price_info = price_info::get_price_info_from_price_info_object(price_info_object); + // Check if the current price info object corresponds to the price feed that + // the update is meant for. + assert!(price_info::get_price_identifier(&price_info) == price_info::get_price_identifier(&update), E_UPDATE_AND_PRICE_INFO_OBJECT_MISMATCH); + + // Update the price info object with the new updated price info. + if (is_fresh_update(&update, price_info_object)){ + pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), clock::timestamp_ms(clock)/1000); + price_info::update_price_info_object( + price_info_object, + update + ); + } } /// Determine if the given price update is "fresh": we have nothing newer already cached for that From 8af469caf2c6892359710c2e320acde3f7a35933 Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 04:21:31 +0000 Subject: [PATCH 094/140] don't create hot potato in batch price attestation --- .../sui/contracts/sources/batch_price_attestation.move | 6 ------ target_chains/sui/contracts/sources/hot_potato_vector.move | 1 - 2 files changed, 7 deletions(-) diff --git a/target_chains/sui/contracts/sources/batch_price_attestation.move b/target_chains/sui/contracts/sources/batch_price_attestation.move index 8ca5b6519d..4ca84c595b 100644 --- a/target_chains/sui/contracts/sources/batch_price_attestation.move +++ b/target_chains/sui/contracts/sources/batch_price_attestation.move @@ -7,7 +7,6 @@ module pyth::batch_price_attestation { use pyth::price_identifier::{Self}; use pyth::price_status; use pyth::deserialize::{Self}; - use pyth::hot_potato_vector::{Self, HotPotatoVector}; use wormhole::cursor::{Self, Cursor}; use wormhole::bytes::{Self}; @@ -57,11 +56,6 @@ module pyth::batch_price_attestation { } } - public fun destruct_into_hot_potato(batch: BatchPriceAttestation): HotPotatoVector { - let price_infos = destroy(batch); - hot_potato_vector::new(price_infos) - } - public fun destroy(batch: BatchPriceAttestation): vector { let BatchPriceAttestation { header: Header { diff --git a/target_chains/sui/contracts/sources/hot_potato_vector.move b/target_chains/sui/contracts/sources/hot_potato_vector.move index 89a927c297..600383f50b 100644 --- a/target_chains/sui/contracts/sources/hot_potato_vector.move +++ b/target_chains/sui/contracts/sources/hot_potato_vector.move @@ -5,7 +5,6 @@ module pyth::hot_potato_vector { const E_EMPTY_HOT_POTATO: u64 = 0; friend pyth::pyth; - friend pyth::batch_price_attestation; // A hot potato containing a vector of elements struct HotPotatoVector { From f722df663235fd41aee218e0d92a9033cf9678c3 Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 04:27:54 +0000 Subject: [PATCH 095/140] latest only checks in Pyth.move --- target_chains/sui/contracts/sources/pyth.move | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 5261f4f701..ee2ff73234 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -9,7 +9,7 @@ module pyth::pyth { use pyth::event::{Self as pyth_event}; use pyth::data_source::{Self, DataSource}; - use pyth::state::{Self as state, State as PythState}; + use pyth::state::{Self as state, State as PythState, LatestOnly}; use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; use pyth::batch_price_attestation::{Self}; use pyth::price_feed::{Self}; @@ -148,6 +148,8 @@ module pyth::pyth { verified_vaas: vector, clock: &Clock ): HotPotatoVector { + let _ = state::assert_latest_only(pyth_state); + let price_updates = vector::empty(); while (vector::length(&verified_vaas) != 0){ let cur_vaa = vector::pop_back(&mut verified_vaas); @@ -190,7 +192,7 @@ module pyth::pyth { fee: Coin, clock: &Clock ): HotPotatoVector { - let _ = state::assert_latest_only(pyth_state); + let latest_only = state::assert_latest_only(pyth_state); // Charge the message update fee (multiply RHS by 5 because that's the max number of // price updates that fit inside of a single batch price attestation VAA). @@ -209,13 +211,14 @@ module pyth::pyth { // Update the price_info_object using the price_info. // If the price_info is not intended to update price_info_object, // then the call will revert. - update_cache(price_info, price_info_object, clock); + update_cache(latest_only, price_info, price_info_object, clock); hot_potato_vector } /// Update PriceInfoObject with updated data from a PriceInfo public(friend) fun update_cache( + _: LatestOnly, update: PriceInfo, price_info_object: &mut PriceInfoObject, clock: &Clock, From 02034198ff894f3850914a0a297e952b6c20564c Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 04:28:20 +0000 Subject: [PATCH 096/140] delete tab --- target_chains/sui/contracts/sources/pyth.move | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index ee2ff73234..9b75643cc5 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -386,7 +386,7 @@ module pyth::pyth_tests{ // vector::destroy_empty(verified_vaas_reversed); // verified_vaas // } - + // #[test_only] // /// Init Wormhole core bridge state. // /// Init Pyth state. From fb010b8dea92317a7a53092abe155631d3e729f7 Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 04:30:42 +0000 Subject: [PATCH 097/140] edit --- target_chains/sui/contracts/sources/pyth.move | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index 9b75643cc5..de4bfab9c7 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -194,9 +194,8 @@ module pyth::pyth { ): HotPotatoVector { let latest_only = state::assert_latest_only(pyth_state); - // Charge the message update fee (multiply RHS by 5 because that's the max number of - // price updates that fit inside of a single batch price attestation VAA). - // We charge the base update fee for 5 price updates. + // Since we charge the base update fee per 5 price updates, here we check that + // Coin Value >= update_fee / 5 (we only update a single price feed in this function). assert!(state::get_base_update_fee(pyth_state) <= 5 * coin::value(&fee), E_INSUFFICIENT_FEE); // TODO: Ideally, we'd want to use Wormhole fee collector instead of transferring funds to deployer address, From 4a9aff48195b0555e45fb1bc08d8eebf955ee8e7 Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 14:02:07 +0000 Subject: [PATCH 098/140] run pre-commit hooks --- package-lock.json | 248 +- package.json | 1 + target_chains/sui/README.md | 30 +- target_chains/sui/contracts/Makefile | 2 +- target_chains/sui/contracts/Move.mainnet.toml | 2 +- target_chains/sui/contracts/Move.toml | 2 +- target_chains/sui/scripts/package-lock.json | 20070 ++++++++-------- target_chains/sui/scripts/package.json | 50 +- .../price_identifier_to_object_id.json | 394 +- .../pyth/pyth_create_all_price_feeds.ts | 201 +- .../scripts/pyth/pyth_create_price_feed.ts | 133 +- target_chains/sui/scripts/pyth/pyth_deploy.ts | 165 +- .../pyth/pyth_get_price_info_object_ids.ts | 51 +- .../sui/scripts/pyth/pyth_get_vaas.ts | 49 +- .../sui/scripts/pyth/pyth_init_state.ts | 130 +- .../scripts/pyth/pyth_update_price_feeds.ts | 200 +- target_chains/sui/scripts/registry.ts | 117 +- target_chains/sui/scripts/tsconfig.json | 20 +- .../sui/scripts/wormhole/wormhole_deploy.ts | 190 +- .../sui/scripts/wormhole/wormhole_init.ts | 156 +- 20 files changed, 11273 insertions(+), 10938 deletions(-) diff --git a/package-lock.json b/package-lock.json index 9a63dfb95e..845d8a396d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -23,6 +23,7 @@ "wormhole_attester/sdk/js" ], "dependencies": { + "pre-commit": "^1.2.2", "prettier": "2.7.1" }, "devDependencies": { @@ -38118,6 +38119,14 @@ "which": "bin/which" } }, + "node_modules/os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==", + "engines": { + "node": ">= 0.4.0" + } + }, "node_modules/os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -39406,6 +39415,71 @@ "safe-buffer": "~5.2.0" } }, + "node_modules/pre-commit": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", + "integrity": "sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA==", + "hasInstallScript": true, + "dependencies": { + "cross-spawn": "^5.0.1", + "spawn-sync": "^1.0.15", + "which": "1.2.x" + } + }, + "node_modules/pre-commit/node_modules/cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "dependencies": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "node_modules/pre-commit/node_modules/lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "dependencies": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "node_modules/pre-commit/node_modules/shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "dependencies": { + "shebang-regex": "^1.0.0" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pre-commit/node_modules/shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/pre-commit/node_modules/which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha512-16uPglFkRPzgiUXYMi1Jf8Z5EzN1iB4V0ZtMXcHZnwsBtQhhHeCqoWw7tsUY42hJGNDWtUsVLTjakIa5BgAxCw==", + "dependencies": { + "isexe": "^2.0.0" + }, + "bin": { + "which": "bin/which" + } + }, + "node_modules/pre-commit/node_modules/yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + }, "node_modules/preact": { "version": "10.4.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz", @@ -39723,6 +39797,11 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" }, + "node_modules/pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, "node_modules/psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -43047,6 +43126,57 @@ "dev": true, "optional": true }, + "node_modules/spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==", + "hasInstallScript": true, + "dependencies": { + "concat-stream": "^1.4.7", + "os-shim": "^0.1.2" + } + }, + "node_modules/spawn-sync/node_modules/concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "engines": [ + "node >= 0.8" + ], + "dependencies": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "node_modules/spawn-sync/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/spawn-sync/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/spawn-sync/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, "node_modules/spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", @@ -48230,7 +48360,7 @@ }, "price_pusher": { "name": "@pythnetwork/price-pusher", - "version": "4.1.2", + "version": "5.0.0", "license": "Apache-2.0", "dependencies": { "@injectivelabs/sdk-ts": "1.10.72", @@ -83673,6 +83803,11 @@ } } }, + "os-shim": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/os-shim/-/os-shim-0.1.3.tgz", + "integrity": "sha512-jd0cvB8qQ5uVt0lvCIexBaROw1KyKm5sbulg2fWOHjETisuCzWyt+eTZKEMs8v6HwzoGs8xik26jg7eCM6pS+A==" + }, "os-tmpdir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", @@ -84715,6 +84850,63 @@ "uuid": "8.3.2" } }, + "pre-commit": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/pre-commit/-/pre-commit-1.2.2.tgz", + "integrity": "sha512-qokTiqxD6GjODy5ETAIgzsRgnBWWQHQH2ghy86PU7mIn/wuWeTwF3otyNQZxWBwVn8XNr8Tdzj/QfUXpH+gRZA==", + "requires": { + "cross-spawn": "^5.0.1", + "spawn-sync": "^1.0.15", + "which": "1.2.x" + }, + "dependencies": { + "cross-spawn": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", + "integrity": "sha512-pTgQJ5KC0d2hcY8eyL1IzlBPYjTkyH72XRZPnLyKus2mBfNjQs3klqbJU2VILqZryAZUt9JOb3h/mWMy23/f5A==", + "requires": { + "lru-cache": "^4.0.1", + "shebang-command": "^1.2.0", + "which": "^1.2.9" + } + }, + "lru-cache": { + "version": "4.1.5", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", + "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", + "requires": { + "pseudomap": "^1.0.2", + "yallist": "^2.1.2" + } + }, + "shebang-command": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", + "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==", + "requires": { + "shebang-regex": "^1.0.0" + } + }, + "shebang-regex": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", + "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==" + }, + "which": { + "version": "1.2.14", + "resolved": "https://registry.npmjs.org/which/-/which-1.2.14.tgz", + "integrity": "sha512-16uPglFkRPzgiUXYMi1Jf8Z5EzN1iB4V0ZtMXcHZnwsBtQhhHeCqoWw7tsUY42hJGNDWtUsVLTjakIa5BgAxCw==", + "requires": { + "isexe": "^2.0.0" + } + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha512-ncTzHV7NvsQZkYe1DW7cbDLm0YpzHmZF5r/iyP3ZnQtMiJ+pjzisCiMNI+Sj+xQF5pXhSHxSB3uDbsBTzY/c2A==" + } + } + }, "preact": { "version": "10.4.1", "resolved": "https://registry.npmjs.org/preact/-/preact-10.4.1.tgz", @@ -84960,6 +85152,11 @@ "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==" }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha512-b/YwNhb8lk1Zz2+bXXpS/LK9OisiZZ1SNsSLxN1x2OXVEhW2Ckr/7mWE5vrC1ZTiJlD9g19jWszTmJsB+oEpFQ==" + }, "psl": { "version": "1.9.0", "resolved": "https://registry.npmjs.org/psl/-/psl-1.9.0.tgz", @@ -88591,6 +88788,55 @@ "dev": true, "optional": true }, + "spawn-sync": { + "version": "1.0.15", + "resolved": "https://registry.npmjs.org/spawn-sync/-/spawn-sync-1.0.15.tgz", + "integrity": "sha512-9DWBgrgYZzNghseho0JOuh+5fg9u6QWhAWa51QC7+U5rCheZ/j1DrEZnyE0RBBRqZ9uEXGPgSSM0nky6burpVw==", + "requires": { + "concat-stream": "^1.4.7", + "os-shim": "^0.1.2" + }, + "dependencies": { + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "requires": { + "buffer-from": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^2.2.2", + "typedarray": "^0.0.6" + } + }, + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, "spdx-correct": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", diff --git a/package.json b/package.json index d6071eb922..a449680b59 100644 --- a/package.json +++ b/package.json @@ -18,6 +18,7 @@ "wormhole_attester/sdk/js" ], "dependencies": { + "pre-commit": "^1.2.2", "prettier": "2.7.1" }, "devDependencies": { diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index b76ca7e7da..3c66c16ae8 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -1,6 +1,7 @@ # Pyth on Sui ## 1. Background + Pyth price feeds on Sui are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability and serve as wrappers around the `PriceInfo` object, which in turn wraps around the `PriceFeed`, the arrival time of the latest price update, and the attestation time of the latest update. `PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that act on price feeds, e.g. @@ -10,6 +11,7 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn - `update_price_feeds_if_fresh` ## 2. How to Update and Consume Price Feeds + To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Assume the ID is `PRICE_INFO_OBJECT_ID`. Then, chain together the following sequence of function calls: @@ -17,15 +19,19 @@ As with other chains, one first obtains a batch price attestation VAA (of type ` ### 1. `wormhole::parse_and_verify` Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot potato object. - ```Rust - public fun parse_and_verify( - wormhole_state: &State, - buf: vector, - the_clock: &Clock - ): VAA - ``` + +```Rust +public fun parse_and_verify( + wormhole_state: &State, + buf: vector, + the_clock: &Clock + ): VAA +``` + ### 2.`pyth:update_price_feeds` + Vectorize the `VAA` from the previous step and pass it to `update_price_feeds`. + ```Rust public fun update_price_feeds( pyth_state: &PythState, @@ -37,7 +43,9 @@ Vectorize the `VAA` from the previous step and pass it to `update_price_feeds`. ``` ### 3. `pyth::get_price` + Finally, get the price of the updated price feed in `PriceInfoObject`. + ```Rust public fun get_price( state: &PythState, @@ -45,13 +53,15 @@ public fun get_price( clock: &Clock ): Price ``` -Fetch the price of the updated Price Info Object. +Fetch the price of the updated Price Info Object. ## 3. Examples + See the `./scripts` folder for examples of programmable transactions for creating price feeds, updating price feeds, and deploying contracts. To build and test the contracts, run the following + ``` $ make test $ make build @@ -60,17 +70,21 @@ $ make build ## 4. Contracts Registry ## Pyth on Testnet + - PYTH_PACKAGE_ID: [0x7c017b047a3c9db5a8f4586d347c54869b761b6d6b0882a179823e8642faf7b9](https://explorer.sui.io/object/0x7c017b047a3c9db5a8f4586d347c54869b761b6d6b0882a179823e8642faf7b9) - PYTH_STATE_ID: [0x3fc17e66d5ced3bf62f3fe8289cb2cb78c311a1e1c9700727ecd278d242e9e88](https://explorer.sui.io/object/0x3fc17e66d5ced3bf62f3fe8289cb2cb78c311a1e1c9700727ecd278d242e9e88) ## Wormhole on Testnet + - WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7) - WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a) ## Pyth on Mainnet + - PYTH_PACKAGE_ID: [0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861](https://explorer.sui.io/object/0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) - PYTH_STATE_ID: [0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca](https://explorer.sui.io/object/0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) ## Wormhole on Mainnet + - WORMHOLE_PACKAGE_ID: [0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a](https://explorer.sui.io/object/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a) - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) diff --git a/target_chains/sui/contracts/Makefile b/target_chains/sui/contracts/Makefile index 5e3e7fc5ad..03eb12fe17 100644 --- a/target_chains/sui/contracts/Makefile +++ b/target_chains/sui/contracts/Makefile @@ -6,4 +6,4 @@ test: .PHONY: build build: - sui move build -d \ No newline at end of file + sui move build -d diff --git a/target_chains/sui/contracts/Move.mainnet.toml b/target_chains/sui/contracts/Move.mainnet.toml index ff5af27013..ae48eb90bf 100644 --- a/target_chains/sui/contracts/Move.mainnet.toml +++ b/target_chains/sui/contracts/Move.mainnet.toml @@ -16,4 +16,4 @@ wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" [dev-addresses] pyth = "0x100" -wormhole = "0x200" \ No newline at end of file +wormhole = "0x200" diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 3804b982a6..30ceea03a1 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -14,4 +14,4 @@ rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" [addresses] pyth = "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861" -wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" \ No newline at end of file +wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" diff --git a/target_chains/sui/scripts/package-lock.json b/target_chains/sui/scripts/package-lock.json index 1fb04c3f27..d2fdad27a2 100644 --- a/target_chains/sui/scripts/package-lock.json +++ b/target_chains/sui/scripts/package-lock.json @@ -1,10090 +1,10090 @@ { - "name": "pyth-sui-integration-test-and-deploy-scripts", - "version": "0.0.1", - "lockfileVersion": 2, - "requires": true, - "packages": { - "": { - "name": "pyth-sui-integration-test-and-deploy-scripts", - "version": "0.0.1", - "license": "MIT", - "dependencies": { - "@certusone/wormhole-sdk": "^0.9.12", - "@mysten/sui.js": "^0.32.2", - "@pythnetwork/client": "^2.17.0", - "@pythnetwork/price-service-client": "^1.4.0", - "@pythnetwork/price-service-sdk": "^1.2.0", - "chai": "^4.3.7", - "dotenv": "^16.0.3", - "mocha": "^10.2.0", - "prettier": "^2.8.7", - "ts-mocha": "^10.0.0", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" - }, - "devDependencies": { - "@types/chai": "^4.3.4", - "@types/mocha": "^10.0.1", - "@types/node": "^18.16.3" - } - }, - "node_modules/@apollo/client": { - "version": "3.7.13", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.13.tgz", - "integrity": "sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==", - "dependencies": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.7.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.2", - "prop-types": "^15.7.2", - "response-iterator": "^0.2.6", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - }, - "peerDependencies": { - "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", - "graphql-ws": "^5.5.5", - "react": "^16.8.0 || ^17.0.0 || ^18.0.0", - "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", - "subscriptions-transport-ws": "^0.9.0 || ^0.11.0" - }, - "peerDependenciesMeta": { - "graphql-ws": { - "optional": true - }, - "react": { - "optional": true - }, - "react-dom": { - "optional": true - }, - "subscriptions-transport-ws": { - "optional": true - } - } - }, - "node_modules/@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@certusone/wormhole-sdk": { - "version": "0.9.14", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.14.tgz", - "integrity": "sha512-xR1dkMkzWJz+EfIvlzThQ5AkU6oY1UjRsyxaxvDEcd9NxZMRHfXJSgHFdP8gWjDfg3nUnj4NGY/UeqAxq9l1+g==", - "dependencies": { - "@certusone/wormhole-sdk-proto-web": "0.0.6", - "@certusone/wormhole-sdk-wasm": "^0.0.1", - "@coral-xyz/borsh": "0.2.6", - "@injectivelabs/networks": "1.10.7", - "@injectivelabs/sdk-ts": "1.10.47", - "@injectivelabs/utils": "1.10.5", - "@project-serum/anchor": "^0.25.0", - "@solana/spl-token": "^0.3.5", - "@solana/web3.js": "^1.66.2", - "@terra-money/terra.js": "^3.1.3", - "@xpla/xpla.js": "^0.2.1", - "algosdk": "^1.15.0", - "aptos": "1.5.0", - "axios": "^0.24.0", - "bech32": "^2.0.0", - "binary-parser": "^2.2.1", - "bs58": "^4.0.1", - "elliptic": "^6.5.4", - "js-base64": "^3.6.1", - "near-api-js": "^1.0.0" - } - }, - "node_modules/@certusone/wormhole-sdk-proto-web": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", - "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", - "dependencies": { - "@improbable-eng/grpc-web": "^0.15.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.5.6" - } - }, - "node_modules/@certusone/wormhole-sdk-wasm": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", - "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", - "dependencies": { - "@types/long": "^4.0.2", - "@types/node": "^18.0.3" - } - }, - "node_modules/@classic-terra/terra.proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", - "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", - "dependencies": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "node_modules/@classic-terra/terra.proto/node_modules/@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "dependencies": { - "browser-headers": "^0.4.1" - }, - "peerDependencies": { - "google-protobuf": "^3.14.0" - } - }, - "node_modules/@classic-terra/terra.proto/node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/@confio/ics23": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", - "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", - "dependencies": { - "@noble/hashes": "^1.0.0", - "protobufjs": "^6.8.8" - } - }, - "node_modules/@confio/ics23/node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/@coral-xyz/anchor": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", - "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", - "dependencies": { - "@coral-xyz/borsh": "^0.26.0", - "@solana/web3.js": "^1.68.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", - "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.68.0" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@coral-xyz/anchor/node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - }, - "node_modules/@coral-xyz/borsh": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", - "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.2.0" - } - }, - "node_modules/@cosmjs/amino": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", - "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", - "dependencies": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1" - } - }, - "node_modules/@cosmjs/crypto": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", - "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", - "dependencies": { - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "@noble/hashes": "^1", - "bn.js": "^5.2.0", - "elliptic": "^6.5.4", - "libsodium-wrappers": "^0.7.6" - } - }, - "node_modules/@cosmjs/encoding": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", - "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", - "dependencies": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - } - }, - "node_modules/@cosmjs/encoding/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/@cosmjs/json-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", - "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", - "dependencies": { - "@cosmjs/stream": "^0.30.1", - "xstream": "^11.14.0" - } - }, - "node_modules/@cosmjs/math": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", - "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", - "dependencies": { - "bn.js": "^5.2.0" - } - }, - "node_modules/@cosmjs/proto-signing": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", - "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", - "dependencies": { - "@cosmjs/amino": "^0.30.1", - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0" - } - }, - "node_modules/@cosmjs/socket": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", - "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", - "dependencies": { - "@cosmjs/stream": "^0.30.1", - "isomorphic-ws": "^4.0.1", - "ws": "^7", - "xstream": "^11.14.0" - } - }, - "node_modules/@cosmjs/stargate": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", - "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", - "dependencies": { - "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/tendermint-rpc": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0", - "protobufjs": "~6.11.3", - "xstream": "^11.14.0" - } - }, - "node_modules/@cosmjs/stargate/node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/@cosmjs/stream": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", - "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", - "dependencies": { - "xstream": "^11.14.0" - } - }, - "node_modules/@cosmjs/tendermint-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", - "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", - "dependencies": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/json-rpc": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/socket": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "axios": "^0.21.2", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" - } - }, - "node_modules/@cosmjs/tendermint-rpc/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/@cosmjs/utils": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", - "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" - }, - "node_modules/@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "dependencies": { - "@jridgewell/trace-mapping": "0.3.9" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "dependencies": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "dependencies": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "node_modules/@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "node_modules/@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "node_modules/@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "node_modules/@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "node_modules/@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "node_modules/@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "node_modules/@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "node_modules/@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "node_modules/@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "node_modules/@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ] - }, - "node_modules/@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "node_modules/@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/logger": "^5.7.0" - } + "name": "pyth-sui-integration-test-and-deploy-scripts", + "version": "0.0.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "pyth-sui-integration-test-and-deploy-scripts", + "version": "0.0.1", + "license": "MIT", + "dependencies": { + "@certusone/wormhole-sdk": "^0.9.12", + "@mysten/sui.js": "^0.32.2", + "@pythnetwork/client": "^2.17.0", + "@pythnetwork/price-service-client": "^1.4.0", + "@pythnetwork/price-service-sdk": "^1.2.0", + "chai": "^4.3.7", + "dotenv": "^16.0.3", + "mocha": "^10.2.0", + "prettier": "^2.8.7", + "ts-mocha": "^10.0.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + }, + "devDependencies": { + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/node": "^18.16.3" + } + }, + "node_modules/@apollo/client": { + "version": "3.7.13", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.13.tgz", + "integrity": "sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==", + "dependencies": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.2", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + }, + "peerDependencies": { + "graphql": "^14.0.0 || ^15.0.0 || ^16.0.0", + "graphql-ws": "^5.5.5", + "react": "^16.8.0 || ^17.0.0 || ^18.0.0", + "react-dom": "^16.8.0 || ^17.0.0 || ^18.0.0", + "subscriptions-transport-ws": "^0.9.0 || ^0.11.0" + }, + "peerDependenciesMeta": { + "graphql-ws": { + "optional": true + }, + "react": { + "optional": true + }, + "react-dom": { + "optional": true + }, + "subscriptions-transport-ws": { + "optional": true + } + } + }, + "node_modules/@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/@certusone/wormhole-sdk": { + "version": "0.9.14", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.14.tgz", + "integrity": "sha512-xR1dkMkzWJz+EfIvlzThQ5AkU6oY1UjRsyxaxvDEcd9NxZMRHfXJSgHFdP8gWjDfg3nUnj4NGY/UeqAxq9l1+g==", + "dependencies": { + "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-wasm": "^0.0.1", + "@coral-xyz/borsh": "0.2.6", + "@injectivelabs/networks": "1.10.7", + "@injectivelabs/sdk-ts": "1.10.47", + "@injectivelabs/utils": "1.10.5", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", + "@terra-money/terra.js": "^3.1.3", + "@xpla/xpla.js": "^0.2.1", + "algosdk": "^1.15.0", + "aptos": "1.5.0", + "axios": "^0.24.0", + "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.4", + "js-base64": "^3.6.1", + "near-api-js": "^1.0.0" + } + }, + "node_modules/@certusone/wormhole-sdk-proto-web": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" + } + }, + "node_modules/@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "dependencies": { + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" + } + }, + "node_modules/@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/@classic-terra/terra.proto/node_modules/@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@classic-terra/terra.proto/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "dependencies": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" + } + }, + "node_modules/@confio/ics23/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@coral-xyz/anchor": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", + "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", + "dependencies": { + "@coral-xyz/borsh": "^0.26.0", + "@solana/web3.js": "^1.68.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/@coral-xyz/anchor/node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "node_modules/@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.2.0" + } + }, + "node_modules/@cosmjs/amino": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", + "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", + "dependencies": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1" + } + }, + "node_modules/@cosmjs/crypto": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", + "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", + "dependencies": { + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" + } + }, + "node_modules/@cosmjs/encoding": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", + "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", + "dependencies": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + } + }, + "node_modules/@cosmjs/encoding/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/@cosmjs/json-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", + "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", + "dependencies": { + "@cosmjs/stream": "^0.30.1", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/math": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", + "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", + "dependencies": { + "bn.js": "^5.2.0" + } + }, + "node_modules/@cosmjs/proto-signing": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", + "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", + "dependencies": { + "@cosmjs/amino": "^0.30.1", + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0" + } + }, + "node_modules/@cosmjs/socket": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", + "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", + "dependencies": { + "@cosmjs/stream": "^0.30.1", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/stargate": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", + "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", + "dependencies": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/tendermint-rpc": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/stargate/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@cosmjs/stream": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", + "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", + "dependencies": { + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/tendermint-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", + "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", + "dependencies": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/json-rpc": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/socket": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + } + }, + "node_modules/@cosmjs/tendermint-rpc/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@cosmjs/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "dependencies": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "dependencies": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "node_modules/@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "node_modules/@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "node_modules/@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "node_modules/@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "node_modules/@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "node_modules/@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "node_modules/@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "node_modules/@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "node_modules/@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "node_modules/@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ] + }, + "node_modules/@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "node_modules/@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + } + }, + "node_modules/@ethersproject/providers/node_modules/bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + }, + "node_modules/@ethersproject/providers/node_modules/ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "node_modules/@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - } + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "node_modules/@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "node_modules/@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "node_modules/@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "node_modules/@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "node_modules/@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "peerDependencies": { + "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" + } + }, + "node_modules/@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@injectivelabs/core-proto-ts": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.12.tgz", + "integrity": "sha512-axdL+KWuv4aORIdYqJQy5k9H+bPsi5Y4KWNcYPxrFQ0FAu+sjpvm5PmbIzBSgv/hnIB2cHcLuKvE3BtEa3vJ/w==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "node_modules/@injectivelabs/exceptions": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", + "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.10.12", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "peerDependencies": { + "@injectivelabs/grpc-web": ">=0.0.1" + } + }, + "node_modules/@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "peerDependencies": { + "@injectivelabs/grpc-web": ">=0.0.1" + } + }, + "node_modules/@injectivelabs/indexer-proto-ts": { + "version": "1.10.8-rc.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", + "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "node_modules/@injectivelabs/mito-proto-ts": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.4.tgz", + "integrity": "sha512-8raVmZnaXVbpikMTmnc+OtViBPzgyx2ilezUTZFCNcQzZM01lbJlpd0NbF6K5tG76eJ3Wjwj+YpAdRPNuayZ4A==", + "dependencies": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "node_modules/@injectivelabs/networks": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.7.tgz", + "integrity": "sha512-qnU3A7FgTVi4bGEMaSsSIN2wTBhKZfV+3fiwU09aX8ZNcWAilMx8d/mlE1naZFAHs7Kf5hFBxzgeSRZa1GJqiA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/sdk-ts": { + "version": "1.10.47", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.47.tgz", + "integrity": "sha512-G11Cdf5iO6is0qWzQRdfiUJLI8IPF4VtD5mVfBwnakrk78syN/Dy492trL7hispDSQaCJaP6a/fa6HnMPCsvzA==", + "hasInstallScript": true, + "dependencies": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stargate": "^0.30.1", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.12", + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", + "@injectivelabs/mito-proto-ts": "1.0.4", + "@injectivelabs/networks": "^1.10.7", + "@injectivelabs/test-utils": "^1.10.2", + "@injectivelabs/token-metadata": "^1.10.25", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.7.2", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + } + }, + "node_modules/@injectivelabs/sdk-ts/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@injectivelabs/test-utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", + "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", + "hasInstallScript": true, + "dependencies": { + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@injectivelabs/test-utils/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@injectivelabs/token-metadata": { + "version": "1.10.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", + "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/networks": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/networks": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", + "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", + "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@injectivelabs/token-metadata/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@injectivelabs/ts-types": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", + "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", + "hasInstallScript": true, + "dependencies": { + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "node_modules/@injectivelabs/utils": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.5.tgz", + "integrity": "sha512-9t+9xOh8wQWs/kuUrfWjGAJMVbtgwu20AWdDQl5qeoNxstE7uKTM0hJWCn+OhF5WYloZH7kwfqEUSNZ84G/VpA==", + "hasInstallScript": true, + "dependencies": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } + }, + "node_modules/@injectivelabs/utils/node_modules/axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "dependencies": { + "follow-redirects": "^1.14.0" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "dependencies": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/@mysten/bcs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", + "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "dependencies": { + "bs58": "^5.0.0" + } + }, + "node_modules/@mysten/bcs/node_modules/base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" + }, + "node_modules/@mysten/bcs/node_modules/bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "dependencies": { + "base-x": "^4.0.0" + } + }, + "node_modules/@mysten/sui.js": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", + "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "dependencies": { + "@mysten/bcs": "0.7.1", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.3.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + }, + "engines": { + "node": ">=16" + } + }, + "node_modules/@noble/curves": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "1.3.0" + } + }, + "node_modules/@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "dependencies": { + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "engines": { + "node": ">=11" + } + }, + "node_modules/@project-serum/anchor/node_modules/superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + }, + "node_modules/@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.2.0" + } + }, + "node_modules/@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "node_modules/@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "node_modules/@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "node_modules/@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "node_modules/@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "dependencies": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "node_modules/@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "node_modules/@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "node_modules/@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "node_modules/@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "node_modules/@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "node_modules/@pythnetwork/client": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.17.0.tgz", + "integrity": "sha512-hv285vehmLH6N762Z4jqvPTM+hCYnXQaUp6DMgLUpDHvE0mTbwW9PvlxYoUJZGtyeCDkgn9HrTWXPtnaXTRr+Q==", + "dependencies": { + "@coral-xyz/anchor": "^0.26.0", + "@coral-xyz/borsh": "^0.26.0", + "buffer": "^6.0.1" + }, + "peerDependencies": { + "@solana/web3.js": "^1.30.2" + } + }, + "node_modules/@pythnetwork/client/node_modules/@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "dependencies": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "@solana/web3.js": "^1.68.0" + } + }, + "node_modules/@pythnetwork/price-service-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-client/-/price-service-client-1.4.0.tgz", + "integrity": "sha512-ibFxczDll/GdXX3jT7YB7+tbxyoXisop7EWXebaBjJqvc+OTctVNmJHCjlz4goDy5l1IDDsxEEYJyjckGsLjVA==", + "dependencies": { + "@pythnetwork/price-service-sdk": "*", + "@types/ws": "^8.5.3", + "axios": "^1.2.5", + "axios-retry": "^3.4.0", + "isomorphic-ws": "^4.0.1", + "ts-log": "^2.2.4", + "ws": "^8.6.0" + } + }, + "node_modules/@pythnetwork/price-service-client/node_modules/@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@pythnetwork/price-service-client/node_modules/axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "dependencies": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } + }, + "node_modules/@pythnetwork/price-service-client/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "node_modules/@ethersproject/providers/node_modules/bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "node_modules/@ethersproject/providers/node_modules/ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "node_modules/@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "node_modules/@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "node_modules/@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "node_modules/@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "node_modules/@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "peerDependencies": { - "graphql": "^0.8.0 || ^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" - } - }, - "node_modules/@improbable-eng/grpc-web": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", - "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", - "dependencies": { - "browser-headers": "^0.4.1" - }, - "peerDependencies": { - "google-protobuf": "^3.14.0" - } - }, - "node_modules/@injectivelabs/core-proto-ts": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.12.tgz", - "integrity": "sha512-axdL+KWuv4aORIdYqJQy5k9H+bPsi5Y4KWNcYPxrFQ0FAu+sjpvm5PmbIzBSgv/hnIB2cHcLuKvE3BtEa3vJ/w==", - "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - } - }, - "node_modules/@injectivelabs/exceptions": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", - "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/ts-types": "^1.10.12", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "node_modules/@injectivelabs/grpc-web": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", - "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", - "dependencies": { - "browser-headers": "^0.4.1" - }, - "peerDependencies": { - "google-protobuf": "^3.14.0" - } - }, - "node_modules/@injectivelabs/grpc-web-node-http-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", - "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", - "peerDependencies": { - "@injectivelabs/grpc-web": ">=0.0.1" - } - }, - "node_modules/@injectivelabs/grpc-web-react-native-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", - "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", - "peerDependencies": { - "@injectivelabs/grpc-web": ">=0.0.1" - } - }, - "node_modules/@injectivelabs/indexer-proto-ts": { - "version": "1.10.8-rc.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", - "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", - "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - } - }, - "node_modules/@injectivelabs/mito-proto-ts": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.4.tgz", - "integrity": "sha512-8raVmZnaXVbpikMTmnc+OtViBPzgyx2ilezUTZFCNcQzZM01lbJlpd0NbF6K5tG76eJ3Wjwj+YpAdRPNuayZ4A==", - "dependencies": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - } - }, - "node_modules/@injectivelabs/networks": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.7.tgz", - "integrity": "sha512-qnU3A7FgTVi4bGEMaSsSIN2wTBhKZfV+3fiwU09aX8ZNcWAilMx8d/mlE1naZFAHs7Kf5hFBxzgeSRZa1GJqiA==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/exceptions": "^1.10.5", - "@injectivelabs/ts-types": "^1.10.4", - "@injectivelabs/utils": "^1.10.5", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "node_modules/@injectivelabs/sdk-ts": { - "version": "1.10.47", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.47.tgz", - "integrity": "sha512-G11Cdf5iO6is0qWzQRdfiUJLI8IPF4VtD5mVfBwnakrk78syN/Dy492trL7hispDSQaCJaP6a/fa6HnMPCsvzA==", - "hasInstallScript": true, - "dependencies": { - "@apollo/client": "^3.5.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stargate": "^0.30.1", - "@ethersproject/bytes": "^5.7.0", - "@injectivelabs/core-proto-ts": "^0.0.12", - "@injectivelabs/exceptions": "^1.10.5", - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", - "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", - "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", - "@injectivelabs/mito-proto-ts": "1.0.4", - "@injectivelabs/networks": "^1.10.7", - "@injectivelabs/test-utils": "^1.10.2", - "@injectivelabs/token-metadata": "^1.10.25", - "@injectivelabs/ts-types": "^1.10.4", - "@injectivelabs/utils": "^1.10.5", - "@metamask/eth-sig-util": "^4.0.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip39": "^3.0.4", - "cosmjs-types": "^0.7.1", - "eth-crypto": "^2.6.0", - "ethereumjs-util": "^7.1.4", - "ethers": "^5.7.2", - "google-protobuf": "^3.21.0", - "graphql": "^16.3.0", - "http-status-codes": "^2.2.0", - "js-sha3": "^0.8.0", - "jscrypto": "^1.0.3", - "keccak256": "^1.0.6", - "link-module-alias": "^1.2.0", - "rxjs": "^7.8.0", - "secp256k1": "^4.0.3", - "shx": "^0.3.2", - "snakecase-keys": "^5.4.1" - } - }, - "node_modules/@injectivelabs/sdk-ts/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/@injectivelabs/test-utils": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", - "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", - "hasInstallScript": true, - "dependencies": { - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - } - }, - "node_modules/@injectivelabs/test-utils/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/@injectivelabs/token-metadata": { - "version": "1.10.42", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", - "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/networks": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "@types/lodash.values": "^4.3.6", - "copyfiles": "^2.4.1", - "jsonschema": "^1.4.0", - "link-module-alias": "^1.2.0", - "lodash": "^4.17.21", - "lodash.values": "^4.3.0", - "shx": "^0.3.2" - } - }, - "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/networks": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", - "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "node_modules/@injectivelabs/token-metadata/node_modules/@injectivelabs/utils": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", - "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - } - }, - "node_modules/@injectivelabs/token-metadata/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/@injectivelabs/ts-types": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", - "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", - "hasInstallScript": true, - "dependencies": { - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "node_modules/@injectivelabs/utils": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.5.tgz", - "integrity": "sha512-9t+9xOh8wQWs/kuUrfWjGAJMVbtgwu20AWdDQl5qeoNxstE7uKTM0hJWCn+OhF5WYloZH7kwfqEUSNZ84G/VpA==", - "hasInstallScript": true, - "dependencies": { - "@injectivelabs/exceptions": "^1.10.5", - "@injectivelabs/ts-types": "^1.10.4", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - } - }, - "node_modules/@injectivelabs/utils/node_modules/axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dependencies": { - "follow-redirects": "^1.14.0" - } - }, - "node_modules/@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==", - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "node_modules/@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "dependencies": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "node_modules/@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", - "dependencies": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@metamask/eth-sig-util/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/@metamask/eth-sig-util/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/@mysten/bcs": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", - "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", - "dependencies": { - "bs58": "^5.0.0" - } - }, - "node_modules/@mysten/bcs/node_modules/base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "node_modules/@mysten/bcs/node_modules/bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "dependencies": { - "base-x": "^4.0.0" - } - }, - "node_modules/@mysten/sui.js": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", - "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", - "dependencies": { - "@mysten/bcs": "0.7.1", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.0", - "@scure/bip32": "^1.3.0", - "@scure/bip39": "^1.2.0", - "@suchipi/femver": "^1.0.0", - "jayson": "^4.0.0", - "rpc-websockets": "^7.5.1", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - }, - "engines": { - "node": ">=16" - } - }, - "node_modules/@noble/curves": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", - "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "1.3.0" - } - }, - "node_modules/@noble/ed25519": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", - "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@project-serum/anchor": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", - "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", - "dependencies": { - "@project-serum/borsh": "^0.2.5", - "@solana/web3.js": "^1.36.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "engines": { - "node": ">=11" - } - }, - "node_modules/@project-serum/anchor/node_modules/superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - }, - "node_modules/@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.2.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "node_modules/@pythnetwork/client": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.17.0.tgz", - "integrity": "sha512-hv285vehmLH6N762Z4jqvPTM+hCYnXQaUp6DMgLUpDHvE0mTbwW9PvlxYoUJZGtyeCDkgn9HrTWXPtnaXTRr+Q==", - "dependencies": { - "@coral-xyz/anchor": "^0.26.0", - "@coral-xyz/borsh": "^0.26.0", - "buffer": "^6.0.1" - }, - "peerDependencies": { - "@solana/web3.js": "^1.30.2" - } - }, - "node_modules/@pythnetwork/client/node_modules/@coral-xyz/borsh": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", - "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", - "dependencies": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "@solana/web3.js": "^1.68.0" - } - }, - "node_modules/@pythnetwork/price-service-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-client/-/price-service-client-1.4.0.tgz", - "integrity": "sha512-ibFxczDll/GdXX3jT7YB7+tbxyoXisop7EWXebaBjJqvc+OTctVNmJHCjlz4goDy5l1IDDsxEEYJyjckGsLjVA==", - "dependencies": { - "@pythnetwork/price-service-sdk": "*", - "@types/ws": "^8.5.3", - "axios": "^1.2.5", - "axios-retry": "^3.4.0", - "isomorphic-ws": "^4.0.1", - "ts-log": "^2.2.4", - "ws": "^8.6.0" - } - }, - "node_modules/@pythnetwork/price-service-client/node_modules/@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@pythnetwork/price-service-client/node_modules/axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "dependencies": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "node_modules/@pythnetwork/price-service-client/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/@pythnetwork/price-service-sdk": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-sdk/-/price-service-sdk-1.2.0.tgz", - "integrity": "sha512-h4HcUwBPFEZwa5nLMTz9YnwdLE5m+Bfctzqbj09vpSJo2DyPHCyEXScFUuizWBbfofxB/pF+OnZXjU3pJxtm/w==" - }, - "node_modules/@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/@scure/bip32": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", - "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/curves": "~1.0.0", - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@scure/bip39": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", - "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } - }, - "node_modules/@solana/buffer-layout": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", - "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", - "dependencies": { - "buffer": "~6.0.3" - }, - "engines": { - "node": ">=5.10" - } - }, - "node_modules/@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/@solana/spl-token": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", - "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", - "dependencies": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - }, - "engines": { - "node": ">=16" - }, - "peerDependencies": { - "@solana/web3.js": "^1.47.4" - } - }, - "node_modules/@solana/web3.js": { - "version": "1.75.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.75.0.tgz", - "integrity": "sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg==", - "dependencies": { - "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.2.1", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.0.0", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", - "node-fetch": "^2.6.7", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" - } - }, - "node_modules/@solana/web3.js/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/@solana/web3.js/node_modules/jayson": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", - "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "lodash": "^4.17.20", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@solana/web3.js/node_modules/superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" - }, - "node_modules/@suchipi/femver": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", - "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" - }, - "node_modules/@terra-money/legacy.proto": { - "name": "@terra-money/terra.proto", - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", - "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", - "dependencies": { - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "node_modules/@terra-money/legacy.proto/node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/@terra-money/terra.js": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", - "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", - "dependencies": { - "@classic-terra/terra.proto": "^1.1.0", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "decimal.js": "^10.2.1", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.9" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@terra-money/terra.js/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/@terra-money/terra.proto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", - "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", - "dependencies": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "node_modules/@terra-money/terra.proto/node_modules/@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "dependencies": { - "browser-headers": "^0.4.1" - }, - "peerDependencies": { - "google-protobuf": "^3.14.0" - } - }, - "node_modules/@terra-money/terra.proto/node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "node_modules/@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "node_modules/@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "node_modules/@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - }, - "node_modules/@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true - }, - "node_modules/@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "optional": true - }, - "node_modules/@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" - }, - "node_modules/@types/lodash.values": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", - "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", - "dependencies": { - "@types/lodash": "*" - } - }, - "node_modules/@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "node_modules/@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", - "dev": true - }, - "node_modules/@types/node": { - "version": "18.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" - }, - "node_modules/@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@wry/context": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", - "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/equality": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", - "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", - "dependencies": { - "tslib": "^2.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@xpla/xpla.js": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", - "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", - "dependencies": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.26.1", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "crypto-addr-codec": "^0.1.7", - "decimal.js": "^10.2.1", - "elliptic": "^6.5.4", - "ethereumjs-util": "^7.1.5", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.8" - }, - "engines": { - "node": ">=14" - } - }, - "node_modules/@xpla/xpla.js/node_modules/axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "dependencies": { - "follow-redirects": "^1.14.8" - } - }, - "node_modules/acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "node_modules/agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "dependencies": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 8.0.0" - } - }, - "node_modules/algo-msgpack-with-bigint": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", - "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", - "engines": { - "node": ">= 10" - } - }, - "node_modules/algosdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", - "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", - "dependencies": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.2", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/aptos": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", - "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", - "dependencies": { - "@noble/hashes": "1.1.3", - "@scure/bip39": "1.1.0", - "axios": "0.27.2", - "form-data": "4.0.0", - "tweetnacl": "1.0.3" - }, - "engines": { - "node": ">=11.0.0" - } - }, - "node_modules/aptos/node_modules/@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ] - }, - "node_modules/aptos/node_modules/@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "node_modules/aptos/node_modules/axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "dependencies": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "node_modules/argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", - "engines": { - "node": "*" - } - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "node_modules/axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "dependencies": { - "follow-redirects": "^1.14.4" - } - }, - "node_modules/axios-retry": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.4.0.tgz", - "integrity": "sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==", - "dependencies": { - "@babel/runtime": "^7.15.4", - "is-retry-allowed": "^2.2.0" - } - }, - "node_modules/balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "node_modules/base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, - "node_modules/big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/binary-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", - "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", - "engines": { - "node": ">=12" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "dependencies": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/bip32/node_modules/@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - }, - "node_modules/bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "dependencies": { - "@noble/hashes": "^1.2.0" - } - }, - "node_modules/bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", - "optional": true, - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" - }, - "node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "dependencies": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "node_modules/browser-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", - "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" - }, - "node_modules/browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "dependencies": { - "base-x": "^3.0.2" - } - }, - "node_modules/bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "dependencies": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "node_modules/buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "node_modules/buffer-layout": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", - "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", - "engines": { - "node": ">=4.5" - } - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "node_modules/bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "engines": { - "node": ">=6" - } - }, - "node_modules/capability": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", - "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" - }, - "node_modules/chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "dependencies": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", - "engines": { - "node": "*" - } - }, - "node_modules/chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "funding": [ - { - "type": "individual", - "url": "https://paulmillr.com/funding/" - } - ], - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dependencies": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "node_modules/copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "dependencies": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - }, - "bin": { - "copyfiles": "copyfiles", - "copyup": "copyfiles" - } - }, - "node_modules/core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "node_modules/cosmjs-types": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", - "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", - "dependencies": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - } - }, - "node_modules/cosmjs-types/node_modules/protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", - "bin": { - "crc32": "bin/crc32.njs" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "node_modules/cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "dependencies": { - "node-fetch": "2.6.7" - } - }, - "node_modules/cross-fetch/node_modules/node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/crypto-addr-codec": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", - "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", - "dependencies": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" - } - }, - "node_modules/crypto-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", - "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - }, - "peerDependenciesMeta": { - "supports-color": { - "optional": true - } - } - }, - "node_modules/decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "node_modules/deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "dependencies": { - "type-detect": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "dependencies": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "dependencies": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", - "engines": { - "node": ">=12" - } - }, - "node_modules/drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", - "optional": true, - "dependencies": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/eccrypto": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", - "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", - "hasInstallScript": true, - "dependencies": { - "acorn": "7.1.1", - "elliptic": "6.5.4", - "es6-promise": "4.2.8", - "nan": "2.14.0" - }, - "optionalDependencies": { - "secp256k1": "3.7.1" - } - }, - "node_modules/eccrypto/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "optional": true - }, - "node_modules/eccrypto/node_modules/secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", - "hasInstallScript": true, - "optional": true, - "dependencies": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "dependencies": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "node_modules/error-polyfill": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", - "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", - "dependencies": { - "capability": "^0.2.5", - "o3": "^1.0.3", - "u3": "^0.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eth-crypto": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", - "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", - "dependencies": { - "@babel/runtime": "7.20.13", - "@ethereumjs/tx": "3.5.2", - "@types/bn.js": "5.1.1", - "eccrypto": "1.1.6", - "ethereumjs-util": "7.1.5", - "ethers": "5.7.2", - "secp256k1": "5.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/pubkey" - } - }, - "node_modules/eth-crypto/node_modules/@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "dependencies": { - "regenerator-runtime": "^0.13.11" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/eth-crypto/node_modules/node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "node_modules/eth-crypto/node_modules/secp256k1": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", - "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "dependencies": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "node_modules/ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "dependencies": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - } - }, - "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/ethereumjs-abi/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "dependencies": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - }, - "node_modules/ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "dependencies": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "funding": [ - { - "type": "individual", - "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" - }, - { - "type": "individual", - "url": "https://www.buymeacoffee.com/ricmoo" - } - ], - "dependencies": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "node_modules/ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "dependencies": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", - "engines": { - "node": "> 0.1.90" - } - }, - "node_modules/fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "dependencies": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", - "bin": { - "flat": "cli.js" - } - }, - "node_modules/follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", - "funding": [ - { - "type": "individual", - "url": "https://github.com/sponsors/RubenVerborgh" - } - ], - "engines": { - "node": ">=4.0" - }, - "peerDependenciesMeta": { - "debug": { - "optional": true - } - } - }, - "node_modules/form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "node_modules/fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", - "engines": { - "node": "*" - } - }, - "node_modules/get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "dependencies": { - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "node_modules/graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", - "engines": { - "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" - } - }, - "node_modules/graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" - } - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", - "engines": { - "node": ">=4" - } - }, - "node_modules/has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "dependencies": { - "get-intrinsic": "^1.1.1" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", - "bin": { - "he": "bin/he" - } - }, - "node_modules/hi-base32": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "dependencies": { - "react-is": "^16.7.0" - } - }, - "node_modules/http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-status-codes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "node_modules/interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "dependencies": { - "has": "^1.0.3" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", - "engines": { - "node": ">=8" - } - }, - "node_modules/is-retry-allowed": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", - "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "node_modules/isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "peerDependencies": { - "ws": "*" - } - }, - "node_modules/jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", - "dependencies": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "bin": { - "jayson": "bin/jayson.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/jayson/node_modules/@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "node_modules/js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - }, - "node_modules/js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "node_modules/js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "node_modules/js-sha512": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", - "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "node_modules/js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "dependencies": { - "argparse": "^2.0.1" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jscrypto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", - "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", - "bin": { - "jscrypto": "bin/cli.js" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "node_modules/json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "optional": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", - "engines": { - "node": "*" - } - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "hasInstallScript": true, - "dependencies": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/keccak256": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", - "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", - "dependencies": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" - } - }, - "node_modules/libsodium": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", - "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" - }, - "node_modules/libsodium-wrappers": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", - "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", - "dependencies": { - "libsodium": "^0.7.11" - } - }, - "node_modules/link-module-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", - "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", - "dependencies": { - "chalk": "^2.4.1" - }, - "bin": { - "link-module-alias": "index.js" - }, - "engines": { - "node": "> 8.0.0" - } - }, - "node_modules/locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "dependencies": { - "p-locate": "^5.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "node_modules/lodash.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" - }, - "node_modules/log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "dependencies": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/log-symbols/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/log-symbols/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/log-symbols/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/log-symbols/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/log-symbols/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "dependencies": { - "get-func-name": "^2.0.0" - } - }, - "node_modules/lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "dependencies": { - "tslib": "^2.0.3" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "node_modules/map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "dependencies": { - "mime-db": "1.52.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "dependencies": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "bin": { - "_mocha": "bin/_mocha", - "mocha": "bin/mocha.js" - }, - "engines": { - "node": ">= 14.0.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/mochajs" - } - }, - "node_modules/mocha/node_modules/escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/mocha/node_modules/glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/mocha/node_modules/glob/node_modules/minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/mocha/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "engines": { - "node": ">=8" - } - }, - "node_modules/mocha/node_modules/minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "dependencies": { - "brace-expansion": "^2.0.1" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "dependencies": { - "balanced-match": "^1.0.0" - } - }, - "node_modules/mocha/node_modules/ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "node_modules/mocha/node_modules/supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/supports-color?sponsor=1" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", - "bin": { - "mustache": "bin/mustache" - } - }, - "node_modules/nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "node_modules/nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", - "bin": { - "nanoid": "bin/nanoid.cjs" - }, - "engines": { - "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" - } - }, - "node_modules/near-api-js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", - "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", - "dependencies": { - "bn.js": "5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.0", - "depd": "^2.0.0", - "error-polyfill": "^0.1.3", - "http-errors": "^1.7.2", - "js-sha256": "^0.9.0", - "mustache": "^4.0.0", - "node-fetch": "^2.6.1", - "text-encoding-utf-8": "^1.0.2", - "tweetnacl": "^1.0.1" - } - }, - "node_modules/no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "dependencies": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node_modules/node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "dependencies": { - "whatwg-url": "^5.0.0" - }, - "engines": { - "node": "4.x || >=6.0.0" - }, - "peerDependencies": { - "encoding": "^0.1.0" - }, - "peerDependenciesMeta": { - "encoding": { - "optional": true - } - } - }, - "node_modules/node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", - "bin": { - "node-gyp-build": "bin.js", - "node-gyp-build-optional": "optional.js", - "node-gyp-build-test": "build-test.js" - } - }, - "node_modules/noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - } - }, - "node_modules/noms/node_modules/readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "node_modules/noms/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/o3": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", - "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", - "dependencies": { - "capability": "^0.2.5" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/optimism": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", - "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", - "dependencies": { - "@wry/context": "^0.7.0", - "@wry/trie": "^0.3.0" - } - }, - "node_modules/p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "dependencies": { - "yocto-queue": "^0.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "dependencies": { - "p-limit": "^3.0.2" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "engines": { - "node": ">=8" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "node_modules/pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", - "engines": { - "node": "*" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", - "engines": { - "node": ">=8.6" - }, - "funding": { - "url": "https://github.com/sponsors/jonschlinkert" - } - }, - "node_modules/prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", - "bin": { - "prettier": "bin-prettier.js" - }, - "engines": { - "node": ">=10.13.0" - }, - "funding": { - "url": "https://github.com/prettier/prettier?sponsor=1" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" - }, - "node_modules/prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "dependencies": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } - }, - "node_modules/protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "engines": { - "node": ">=12.0.0" - } - }, - "node_modules/protobufjs/node_modules/long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - }, - "node_modules/proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "node_modules/readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/readonly-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", - "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" - }, - "node_modules/rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "dependencies": { - "resolve": "^1.1.6" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "dependencies": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - }, - "bin": { - "resolve": "bin/resolve" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/response-iterator": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", - "engines": { - "node": ">=0.8" - } - }, - "node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", - "engines": { - "node": ">=8" - } - }, - "node_modules/rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "dependencies": { - "bn.js": "^5.2.0" - }, - "bin": { - "rlp": "bin/rlp" - } - }, - "node_modules/rpc-websockets": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", - "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", - "dependencies": { - "@babel/runtime": "^7.17.2", - "eventemitter3": "^4.0.7", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "funding": { - "type": "paypal", - "url": "https://paypal.me/kozjak" - }, - "optionalDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - } - }, - "node_modules/rpc-websockets/node_modules/ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "engines": { - "node": ">=10.0.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": ">=5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "dependencies": { - "tslib": "^2.1.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, - "node_modules/scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" - }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, - "node_modules/serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" - }, - "node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "dependencies": { - "buffer": "6.0.3" - } - }, - "node_modules/shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "dependencies": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - }, - "bin": { - "shjs": "bin/shjs" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "dependencies": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - }, - "bin": { - "shx": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "dependencies": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "node_modules/snakecase-keys": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", - "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", - "dependencies": { - "map-obj": "^4.1.0", - "snake-case": "^3.0.4", - "type-fest": "^2.5.2" - }, - "engines": { - "node": ">=12" - } - }, - "node_modules/source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" - }, - "node_modules/string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "dependencies": { - "safe-buffer": "~5.2.0" - } - }, - "node_modules/string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "dependencies": { - "ansi-regex": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "optional": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "dependencies": { - "is-hex-prefixed": "1.0.0" - }, - "engines": { - "node": ">=6.5.0", - "npm": ">=3" - } - }, - "node_modules/strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", - "engines": { - "node": ">=14.0.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", - "engines": { - "node": ">= 0.4" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/through2/node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "node_modules/through2/node_modules/readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/through2/node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/through2/node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "hasInstallScript": true, - "dependencies": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/tiny-secp256k1/node_modules/bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "node_modules/tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "dependencies": { - "rimraf": "^3.0.0" - }, - "engines": { - "node": ">=8.17.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", - "engines": { - "node": ">=0.6" - } - }, - "node_modules/toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "node_modules/tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "node_modules/ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "dependencies": { - "tslib": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ts-log": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", - "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==" - }, - "node_modules/ts-mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", - "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", - "dependencies": { - "ts-node": "7.0.1" - }, - "bin": { - "ts-mocha": "bin/ts-mocha" - }, - "engines": { - "node": ">= 6.X.X" - }, - "optionalDependencies": { - "tsconfig-paths": "^3.5.0" - }, - "peerDependencies": { - "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X" - } - }, - "node_modules/ts-mocha/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/ts-mocha/node_modules/mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "dependencies": { - "minimist": "^1.2.6" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/ts-mocha/node_modules/ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", - "dependencies": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ts-mocha/node_modules/yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", - "engines": { - "node": ">=4" - } - }, - "node_modules/ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "dependencies": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "bin": { - "ts-node": "dist/bin.js", - "ts-node-cwd": "dist/bin-cwd.js", - "ts-node-esm": "dist/bin-esm.js", - "ts-node-script": "dist/bin-script.js", - "ts-node-transpile-only": "dist/bin-transpile.js", - "ts-script": "dist/bin-script-deprecated.js" - }, - "peerDependencies": { - "@swc/core": ">=1.2.50", - "@swc/wasm": ">=1.2.50", - "@types/node": "*", - "typescript": ">=2.7" - }, - "peerDependenciesMeta": { - "@swc/core": { - "optional": true - }, - "@swc/wasm": { - "optional": true - } - } - }, - "node_modules/ts-node/node_modules/acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/ts-node/node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "optional": true, - "dependencies": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "node_modules/tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "node_modules/tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" - }, - "node_modules/type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", - "engines": { - "node": ">=4" - } - }, - "node_modules/type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", - "engines": { - "node": ">=12.20" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" - }, - "node_modules/typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=12.20" - } - }, - "node_modules/u3": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", - "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" - }, - "node_modules/untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "hasInstallScript": true, - "dependencies": { - "node-gyp-build": "^4.3.0" - }, - "engines": { - "node": ">=6.14.2" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "node_modules/uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", - "bin": { - "uuid": "dist/bin/uuid" - } - }, - "node_modules/v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "node_modules/vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" - }, - "node_modules/webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "node_modules/whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "dependencies": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } - }, - "node_modules/wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", - "dependencies": { - "bs58check": "<3.0.0" - } - }, - "node_modules/workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" - }, - "node_modules/wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "dependencies": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/wrap-ansi?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/wrap-ansi/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/wrap-ansi/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" - }, - "node_modules/ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/xstream": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", - "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", - "dependencies": { - "globalthis": "^1.0.1", - "symbol-observable": "^2.0.3" - } - }, - "node_modules/xstream/node_modules/symbol-observable": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", - "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", - "engines": { - "node": ">=0.10" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "dependencies": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "dependencies": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/yargs-unparser/node_modules/camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "engines": { - "node": ">=6" - } - }, - "node_modules/yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" - }, - "node_modules/zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "dependencies": { - "zen-observable": "0.8.15" - } - } - }, - "dependencies": { - "@apollo/client": { - "version": "3.7.13", - "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.13.tgz", - "integrity": "sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==", - "requires": { - "@graphql-typed-document-node/core": "^3.1.1", - "@wry/context": "^0.7.0", - "@wry/equality": "^0.5.0", - "@wry/trie": "^0.3.0", - "graphql-tag": "^2.12.6", - "hoist-non-react-statics": "^3.3.2", - "optimism": "^0.16.2", - "prop-types": "^15.7.2", - "response-iterator": "^0.2.6", - "symbol-observable": "^4.0.0", - "ts-invariant": "^0.10.3", - "tslib": "^2.3.0", - "zen-observable-ts": "^1.2.5" - } - }, - "@babel/runtime": { - "version": "7.21.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", - "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "@certusone/wormhole-sdk": { - "version": "0.9.14", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.14.tgz", - "integrity": "sha512-xR1dkMkzWJz+EfIvlzThQ5AkU6oY1UjRsyxaxvDEcd9NxZMRHfXJSgHFdP8gWjDfg3nUnj4NGY/UeqAxq9l1+g==", - "requires": { - "@certusone/wormhole-sdk-proto-web": "0.0.6", - "@certusone/wormhole-sdk-wasm": "^0.0.1", - "@coral-xyz/borsh": "0.2.6", - "@injectivelabs/networks": "1.10.7", - "@injectivelabs/sdk-ts": "1.10.47", - "@injectivelabs/utils": "1.10.5", - "@project-serum/anchor": "^0.25.0", - "@solana/spl-token": "^0.3.5", - "@solana/web3.js": "^1.66.2", - "@terra-money/terra.js": "^3.1.3", - "@xpla/xpla.js": "^0.2.1", - "algosdk": "^1.15.0", - "aptos": "1.5.0", - "axios": "^0.24.0", - "bech32": "^2.0.0", - "binary-parser": "^2.2.1", - "bs58": "^4.0.1", - "elliptic": "^6.5.4", - "js-base64": "^3.6.1", - "near-api-js": "^1.0.0" - } - }, - "@certusone/wormhole-sdk-proto-web": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", - "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", - "requires": { - "@improbable-eng/grpc-web": "^0.15.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.5.6" - } - }, - "@certusone/wormhole-sdk-wasm": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", - "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", - "requires": { - "@types/long": "^4.0.2", - "@types/node": "^18.0.3" - } - }, - "@classic-terra/terra.proto": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", - "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", - "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - }, - "dependencies": { - "@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - } - } - }, - "@confio/ics23": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", - "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", - "requires": { - "@noble/hashes": "^1.0.0", - "protobufjs": "^6.8.8" - }, - "dependencies": { - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - } - } - }, - "@coral-xyz/anchor": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", - "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", - "requires": { - "@coral-xyz/borsh": "^0.26.0", - "@solana/web3.js": "^1.68.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^6.3.0", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "dependencies": { - "@coral-xyz/borsh": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", - "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - } - }, - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - }, - "superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - } - } - }, - "@coral-xyz/borsh": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", - "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - } - }, - "@cosmjs/amino": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", - "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", - "requires": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1" - } - }, - "@cosmjs/crypto": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", - "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", - "requires": { - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "@noble/hashes": "^1", - "bn.js": "^5.2.0", - "elliptic": "^6.5.4", - "libsodium-wrappers": "^0.7.6" - } - }, - "@cosmjs/encoding": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", - "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", - "requires": { - "base64-js": "^1.3.0", - "bech32": "^1.1.4", - "readonly-date": "^1.0.0" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - } - } - }, - "@cosmjs/json-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", - "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", - "requires": { - "@cosmjs/stream": "^0.30.1", - "xstream": "^11.14.0" - } - }, - "@cosmjs/math": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", - "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", - "requires": { - "bn.js": "^5.2.0" - } - }, - "@cosmjs/proto-signing": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", - "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", - "requires": { - "@cosmjs/amino": "^0.30.1", - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0" - } - }, - "@cosmjs/socket": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", - "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", - "requires": { - "@cosmjs/stream": "^0.30.1", - "isomorphic-ws": "^4.0.1", - "ws": "^7", - "xstream": "^11.14.0" - } - }, - "@cosmjs/stargate": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", - "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", - "requires": { - "@confio/ics23": "^0.6.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/tendermint-rpc": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "cosmjs-types": "^0.7.1", - "long": "^4.0.0", - "protobufjs": "~6.11.3", - "xstream": "^11.14.0" - }, - "dependencies": { - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - } - } - }, - "@cosmjs/stream": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", - "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", - "requires": { - "xstream": "^11.14.0" - } - }, - "@cosmjs/tendermint-rpc": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", - "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", - "requires": { - "@cosmjs/crypto": "^0.30.1", - "@cosmjs/encoding": "^0.30.1", - "@cosmjs/json-rpc": "^0.30.1", - "@cosmjs/math": "^0.30.1", - "@cosmjs/socket": "^0.30.1", - "@cosmjs/stream": "^0.30.1", - "@cosmjs/utils": "^0.30.1", - "axios": "^0.21.2", - "readonly-date": "^1.0.0", - "xstream": "^11.14.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@cosmjs/utils": { - "version": "0.30.1", - "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", - "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" - }, - "@cspotcode/source-map-support": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", - "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", - "requires": { - "@jridgewell/trace-mapping": "0.3.9" - } - }, - "@ethereumjs/common": { - "version": "2.6.5", - "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", - "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", - "requires": { - "crc-32": "^1.2.0", - "ethereumjs-util": "^7.1.5" - } - }, - "@ethereumjs/tx": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", - "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", - "requires": { - "@ethereumjs/common": "^2.6.4", - "ethereumjs-util": "^7.1.5" - } - }, - "@ethersproject/abi": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", - "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/abstract-provider": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", - "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0" - } - }, - "@ethersproject/abstract-signer": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", - "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/address": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", - "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/rlp": "^5.7.0" - } - }, - "@ethersproject/base64": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", - "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0" - } - }, - "@ethersproject/basex": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", - "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/properties": "^5.7.0" - } - }, - "@ethersproject/bignumber": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", - "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "bn.js": "^5.2.1" - } - }, - "@ethersproject/bytes": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", - "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/constants": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", - "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0" - } - }, - "@ethersproject/contracts": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", - "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", - "requires": { - "@ethersproject/abi": "^5.7.0", - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/transactions": "^5.7.0" - } - }, - "@ethersproject/hash": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", - "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/hdnode": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", - "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/json-wallets": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", - "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", - "requires": { - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/pbkdf2": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "aes-js": "3.0.0", - "scrypt-js": "3.0.1" - } - }, - "@ethersproject/keccak256": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", - "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "js-sha3": "0.8.0" - } - }, - "@ethersproject/logger": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", - "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" - }, - "@ethersproject/networks": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", - "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/pbkdf2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", - "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/sha2": "^5.7.0" - } - }, - "@ethersproject/properties": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", - "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", - "requires": { - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/providers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", - "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/base64": "^5.7.0", - "@ethersproject/basex": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/networks": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/web": "^5.7.0", - "bech32": "1.1.4", - "ws": "7.4.6" - }, - "dependencies": { - "bech32": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", - "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" - }, - "ws": { - "version": "7.4.6", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", - "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", - "requires": {} - } - } - }, - "@ethersproject/random": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", - "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/rlp": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", - "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/sha2": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", - "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "hash.js": "1.1.7" - } - }, - "@ethersproject/signing-key": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", - "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "bn.js": "^5.2.1", - "elliptic": "6.5.4", - "hash.js": "1.1.7" - } - }, - "@ethersproject/solidity": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", - "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/sha2": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/strings": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", - "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/transactions": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", - "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", - "requires": { - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/rlp": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0" - } - }, - "@ethersproject/units": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", - "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", - "requires": { - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/constants": "^5.7.0", - "@ethersproject/logger": "^5.7.0" - } - }, - "@ethersproject/wallet": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", - "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", - "requires": { - "@ethersproject/abstract-provider": "^5.7.0", - "@ethersproject/abstract-signer": "^5.7.0", - "@ethersproject/address": "^5.7.0", - "@ethersproject/bignumber": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/hdnode": "^5.7.0", - "@ethersproject/json-wallets": "^5.7.0", - "@ethersproject/keccak256": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/random": "^5.7.0", - "@ethersproject/signing-key": "^5.7.0", - "@ethersproject/transactions": "^5.7.0", - "@ethersproject/wordlists": "^5.7.0" - } - }, - "@ethersproject/web": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", - "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", - "requires": { - "@ethersproject/base64": "^5.7.0", - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@ethersproject/wordlists": { - "version": "5.7.0", - "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", - "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", - "requires": { - "@ethersproject/bytes": "^5.7.0", - "@ethersproject/hash": "^5.7.0", - "@ethersproject/logger": "^5.7.0", - "@ethersproject/properties": "^5.7.0", - "@ethersproject/strings": "^5.7.0" - } - }, - "@graphql-typed-document-node/core": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", - "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", - "requires": {} - }, - "@improbable-eng/grpc-web": { - "version": "0.15.0", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", - "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "@injectivelabs/core-proto-ts": { - "version": "0.0.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.12.tgz", - "integrity": "sha512-axdL+KWuv4aORIdYqJQy5k9H+bPsi5Y4KWNcYPxrFQ0FAu+sjpvm5PmbIzBSgv/hnIB2cHcLuKvE3BtEa3vJ/w==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - } - }, - "@injectivelabs/exceptions": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", - "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/ts-types": "^1.10.12", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/grpc-web": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", - "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "@injectivelabs/grpc-web-node-http-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", - "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", - "requires": {} - }, - "@injectivelabs/grpc-web-react-native-transport": { - "version": "0.0.2", - "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", - "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", - "requires": {} - }, - "@injectivelabs/indexer-proto-ts": { - "version": "1.10.8-rc.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", - "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - } - }, - "@injectivelabs/mito-proto-ts": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.4.tgz", - "integrity": "sha512-8raVmZnaXVbpikMTmnc+OtViBPzgyx2ilezUTZFCNcQzZM01lbJlpd0NbF6K5tG76eJ3Wjwj+YpAdRPNuayZ4A==", - "requires": { - "@injectivelabs/grpc-web": "^0.0.1", - "google-protobuf": "^3.14.0", - "protobufjs": "^7.0.0", - "rxjs": "^7.4.0" - } - }, - "@injectivelabs/networks": { - "version": "1.10.7", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.7.tgz", - "integrity": "sha512-qnU3A7FgTVi4bGEMaSsSIN2wTBhKZfV+3fiwU09aX8ZNcWAilMx8d/mlE1naZFAHs7Kf5hFBxzgeSRZa1GJqiA==", - "requires": { - "@injectivelabs/exceptions": "^1.10.5", - "@injectivelabs/ts-types": "^1.10.4", - "@injectivelabs/utils": "^1.10.5", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/sdk-ts": { - "version": "1.10.47", - "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.47.tgz", - "integrity": "sha512-G11Cdf5iO6is0qWzQRdfiUJLI8IPF4VtD5mVfBwnakrk78syN/Dy492trL7hispDSQaCJaP6a/fa6HnMPCsvzA==", - "requires": { - "@apollo/client": "^3.5.8", - "@cosmjs/amino": "^0.30.1", - "@cosmjs/proto-signing": "^0.30.1", - "@cosmjs/stargate": "^0.30.1", - "@ethersproject/bytes": "^5.7.0", - "@injectivelabs/core-proto-ts": "^0.0.12", - "@injectivelabs/exceptions": "^1.10.5", - "@injectivelabs/grpc-web": "^0.0.1", - "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", - "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", - "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", - "@injectivelabs/mito-proto-ts": "1.0.4", - "@injectivelabs/networks": "^1.10.7", - "@injectivelabs/test-utils": "^1.10.2", - "@injectivelabs/token-metadata": "^1.10.25", - "@injectivelabs/ts-types": "^1.10.4", - "@injectivelabs/utils": "^1.10.5", - "@metamask/eth-sig-util": "^4.0.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip39": "^3.0.4", - "cosmjs-types": "^0.7.1", - "eth-crypto": "^2.6.0", - "ethereumjs-util": "^7.1.4", - "ethers": "^5.7.2", - "google-protobuf": "^3.21.0", - "graphql": "^16.3.0", - "http-status-codes": "^2.2.0", - "js-sha3": "^0.8.0", - "jscrypto": "^1.0.3", - "keccak256": "^1.0.6", - "link-module-alias": "^1.2.0", - "rxjs": "^7.8.0", - "secp256k1": "^4.0.3", - "shx": "^0.3.2", - "snakecase-keys": "^5.4.1" - }, - "dependencies": { - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - } - } - }, - "@injectivelabs/test-utils": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", - "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", - "requires": { - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@injectivelabs/token-metadata": { - "version": "1.10.42", - "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", - "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", - "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/networks": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "@types/lodash.values": "^4.3.6", - "copyfiles": "^2.4.1", - "jsonschema": "^1.4.0", - "link-module-alias": "^1.2.0", - "lodash": "^4.17.21", - "lodash.values": "^4.3.0", - "shx": "^0.3.2" - }, - "dependencies": { - "@injectivelabs/networks": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", - "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", - "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "@injectivelabs/utils": "^1.10.12", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/utils": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", - "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", - "requires": { - "@injectivelabs/exceptions": "^1.10.12", - "@injectivelabs/ts-types": "^1.10.12", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - } - }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@injectivelabs/ts-types": { - "version": "1.10.12", - "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", - "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", - "requires": { - "link-module-alias": "^1.2.0", - "shx": "^0.3.2" - } - }, - "@injectivelabs/utils": { - "version": "1.10.5", - "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.5.tgz", - "integrity": "sha512-9t+9xOh8wQWs/kuUrfWjGAJMVbtgwu20AWdDQl5qeoNxstE7uKTM0hJWCn+OhF5WYloZH7kwfqEUSNZ84G/VpA==", - "requires": { - "@injectivelabs/exceptions": "^1.10.5", - "@injectivelabs/ts-types": "^1.10.4", - "axios": "^0.21.1", - "bignumber.js": "^9.0.1", - "http-status-codes": "^2.2.0", - "link-module-alias": "^1.2.0", - "shx": "^0.3.2", - "snakecase-keys": "^5.1.2", - "store2": "^2.12.0" - }, - "dependencies": { - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "requires": { - "follow-redirects": "^1.14.0" - } - } - } - }, - "@jridgewell/resolve-uri": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", - "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" - }, - "@jridgewell/sourcemap-codec": { - "version": "1.4.15", - "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", - "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" - }, - "@jridgewell/trace-mapping": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", - "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", - "requires": { - "@jridgewell/resolve-uri": "^3.0.3", - "@jridgewell/sourcemap-codec": "^1.4.10" - } - }, - "@metamask/eth-sig-util": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", - "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", - "requires": { - "ethereumjs-abi": "^0.6.8", - "ethereumjs-util": "^6.2.1", - "ethjs-util": "^0.1.6", - "tweetnacl": "^1.0.3", - "tweetnacl-util": "^0.15.1" - }, - "dependencies": { - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "@mysten/bcs": { - "version": "0.7.1", - "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", - "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", - "requires": { - "bs58": "^5.0.0" - }, - "dependencies": { - "base-x": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", - "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" - }, - "bs58": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", - "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", - "requires": { - "base-x": "^4.0.0" - } - } - } - }, - "@mysten/sui.js": { - "version": "0.32.2", - "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", - "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", - "requires": { - "@mysten/bcs": "0.7.1", - "@noble/curves": "^1.0.0", - "@noble/hashes": "^1.3.0", - "@scure/bip32": "^1.3.0", - "@scure/bip39": "^1.2.0", - "@suchipi/femver": "^1.0.0", - "jayson": "^4.0.0", - "rpc-websockets": "^7.5.1", - "superstruct": "^1.0.3", - "tweetnacl": "^1.0.3" - } - }, - "@noble/curves": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", - "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", - "requires": { - "@noble/hashes": "1.3.0" - } - }, - "@noble/ed25519": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", - "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==" - }, - "@noble/hashes": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", - "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" - }, - "@noble/secp256k1": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", - "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" - }, - "@project-serum/anchor": { - "version": "0.25.0", - "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", - "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", - "requires": { - "@project-serum/borsh": "^0.2.5", - "@solana/web3.js": "^1.36.0", - "base64-js": "^1.5.1", - "bn.js": "^5.1.2", - "bs58": "^4.0.1", - "buffer-layout": "^1.2.2", - "camelcase": "^5.3.1", - "cross-fetch": "^3.1.5", - "crypto-hash": "^1.3.0", - "eventemitter3": "^4.0.7", - "js-sha256": "^0.9.0", - "pako": "^2.0.3", - "snake-case": "^3.0.4", - "superstruct": "^0.15.4", - "toml": "^3.0.0" - }, - "dependencies": { - "superstruct": { - "version": "0.15.5", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", - "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" - } - } - }, - "@project-serum/borsh": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", - "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" - }, - "@pythnetwork/client": { - "version": "2.17.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.17.0.tgz", - "integrity": "sha512-hv285vehmLH6N762Z4jqvPTM+hCYnXQaUp6DMgLUpDHvE0mTbwW9PvlxYoUJZGtyeCDkgn9HrTWXPtnaXTRr+Q==", - "requires": { - "@coral-xyz/anchor": "^0.26.0", - "@coral-xyz/borsh": "^0.26.0", - "buffer": "^6.0.1" - }, - "dependencies": { - "@coral-xyz/borsh": { - "version": "0.26.0", - "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", - "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", - "requires": { - "bn.js": "^5.1.2", - "buffer-layout": "^1.2.0" - } - } - } - }, - "@pythnetwork/price-service-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-client/-/price-service-client-1.4.0.tgz", - "integrity": "sha512-ibFxczDll/GdXX3jT7YB7+tbxyoXisop7EWXebaBjJqvc+OTctVNmJHCjlz4goDy5l1IDDsxEEYJyjckGsLjVA==", - "requires": { - "@pythnetwork/price-service-sdk": "*", - "@types/ws": "^8.5.3", - "axios": "^1.2.5", - "axios-retry": "^3.4.0", - "isomorphic-ws": "^4.0.1", - "ts-log": "^2.2.4", - "ws": "^8.6.0" - }, - "dependencies": { - "@types/ws": { - "version": "8.5.4", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", - "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", - "requires": { - "@types/node": "*" - } - }, - "axios": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", - "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", - "requires": { - "follow-redirects": "^1.15.0", - "form-data": "^4.0.0", - "proxy-from-env": "^1.1.0" - } - }, - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "requires": {} - } - } - }, - "@pythnetwork/price-service-sdk": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-sdk/-/price-service-sdk-1.2.0.tgz", - "integrity": "sha512-h4HcUwBPFEZwa5nLMTz9YnwdLE5m+Bfctzqbj09vpSJo2DyPHCyEXScFUuizWBbfofxB/pF+OnZXjU3pJxtm/w==" - }, - "@scure/base": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", - "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" - }, - "@scure/bip32": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", - "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", - "requires": { - "@noble/curves": "~1.0.0", - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } - }, - "@scure/bip39": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", - "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", - "requires": { - "@noble/hashes": "~1.3.0", - "@scure/base": "~1.1.0" - } - }, - "@solana/buffer-layout": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", - "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", - "requires": { - "buffer": "~6.0.3" - } - }, - "@solana/buffer-layout-utils": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", - "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/web3.js": "^1.32.0", - "bigint-buffer": "^1.1.5", - "bignumber.js": "^9.0.1" - } - }, - "@solana/spl-token": { - "version": "0.3.7", - "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", - "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", - "requires": { - "@solana/buffer-layout": "^4.0.0", - "@solana/buffer-layout-utils": "^0.2.0", - "buffer": "^6.0.3" - } - }, - "@solana/web3.js": { - "version": "1.75.0", - "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.75.0.tgz", - "integrity": "sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg==", - "requires": { - "@babel/runtime": "^7.12.5", - "@noble/ed25519": "^1.7.0", - "@noble/hashes": "^1.1.2", - "@noble/secp256k1": "^1.6.3", - "@solana/buffer-layout": "^4.0.0", - "agentkeepalive": "^4.2.1", - "bigint-buffer": "^1.1.5", - "bn.js": "^5.0.0", - "borsh": "^0.7.0", - "bs58": "^4.0.1", - "buffer": "6.0.3", - "fast-stable-stringify": "^1.0.0", - "jayson": "^3.4.4", - "node-fetch": "^2.6.7", - "rpc-websockets": "^7.5.1", - "superstruct": "^0.14.2" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - }, - "jayson": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", - "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", - "requires": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "lodash": "^4.17.20", - "uuid": "^8.3.2", - "ws": "^7.4.5" - } - }, - "superstruct": { - "version": "0.14.2", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", - "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" - } - } - }, - "@suchipi/femver": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", - "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" - }, - "@terra-money/legacy.proto": { - "version": "npm:@terra-money/terra.proto@0.1.7", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", - "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", - "requires": { - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - }, - "dependencies": { - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - } - } - }, - "@terra-money/terra.js": { - "version": "3.1.8", - "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", - "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", - "requires": { - "@classic-terra/terra.proto": "^1.1.0", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.27.2", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "decimal.js": "^10.2.1", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.9" - }, - "dependencies": { - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - } - } - }, - "@terra-money/terra.proto": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", - "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", - "requires": { - "@improbable-eng/grpc-web": "^0.14.1", - "google-protobuf": "^3.17.3", - "long": "^4.0.0", - "protobufjs": "~6.11.2" - }, - "dependencies": { - "@improbable-eng/grpc-web": { - "version": "0.14.1", - "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", - "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", - "requires": { - "browser-headers": "^0.4.1" - } - }, - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - } - } - }, - "@tsconfig/node10": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", - "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" - }, - "@tsconfig/node12": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", - "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" - }, - "@tsconfig/node14": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", - "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" - }, - "@tsconfig/node16": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", - "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" - }, - "@types/bn.js": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", - "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", - "requires": { - "@types/node": "*" - } - }, - "@types/chai": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", - "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", - "dev": true - }, - "@types/connect": { - "version": "3.4.35", - "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", - "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/json5": { - "version": "0.0.29", - "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", - "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", - "optional": true - }, - "@types/lodash": { - "version": "4.14.194", - "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", - "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" - }, - "@types/lodash.values": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", - "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", - "requires": { - "@types/lodash": "*" - } - }, - "@types/long": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", - "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" - }, - "@types/mocha": { - "version": "10.0.1", - "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", - "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", - "dev": true - }, - "@types/node": { - "version": "18.16.3", - "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", - "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" - }, - "@types/pbkdf2": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", - "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", - "requires": { - "@types/node": "*" - } - }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "requires": { - "@types/node": "*" - } - }, - "@types/ws": { - "version": "7.4.7", - "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", - "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", - "requires": { - "@types/node": "*" - } - }, - "@wry/context": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", - "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@wry/equality": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", - "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@wry/trie": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", - "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", - "requires": { - "tslib": "^2.3.0" - } - }, - "@xpla/xpla.js": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", - "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", - "requires": { - "@ethersproject/bytes": "^5.6.1", - "@ethersproject/keccak256": "^5.6.1", - "@ethersproject/signing-key": "^5.6.2", - "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", - "@terra-money/terra.proto": "^2.1.0", - "axios": "^0.26.1", - "bech32": "^2.0.0", - "bip32": "^2.0.6", - "bip39": "^3.0.3", - "bufferutil": "^4.0.3", - "crypto-addr-codec": "^0.1.7", - "decimal.js": "^10.2.1", - "elliptic": "^6.5.4", - "ethereumjs-util": "^7.1.5", - "jscrypto": "^1.0.1", - "readable-stream": "^3.6.0", - "secp256k1": "^4.0.2", - "tmp": "^0.2.1", - "utf-8-validate": "^5.0.5", - "ws": "^7.5.8" - }, - "dependencies": { - "axios": { - "version": "0.26.1", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", - "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", - "requires": { - "follow-redirects": "^1.14.8" - } - } - } - }, - "acorn": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", - "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" - }, - "acorn-walk": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", - "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" - }, - "aes-js": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", - "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" - }, - "agentkeepalive": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", - "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", - "requires": { - "debug": "^4.1.0", - "depd": "^2.0.0", - "humanize-ms": "^1.2.1" - } - }, - "algo-msgpack-with-bigint": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", - "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" - }, - "algosdk": { - "version": "1.24.1", - "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", - "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", - "requires": { - "algo-msgpack-with-bigint": "^2.1.1", - "buffer": "^6.0.2", - "cross-fetch": "^3.1.5", - "hi-base32": "^0.5.1", - "js-sha256": "^0.9.0", - "js-sha3": "^0.8.0", - "js-sha512": "^0.8.0", - "json-bigint": "^1.0.0", - "tweetnacl": "^1.0.3", - "vlq": "^2.0.4" - } - }, - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" - }, - "ansi-regex": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", - "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" - }, - "ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "requires": { - "color-convert": "^1.9.0" - } - }, - "anymatch": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", - "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "aptos": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", - "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", - "requires": { - "@noble/hashes": "1.1.3", - "@scure/bip39": "1.1.0", - "axios": "0.27.2", - "form-data": "4.0.0", - "tweetnacl": "1.0.3" - }, - "dependencies": { - "@noble/hashes": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", - "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" - }, - "@scure/bip39": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", - "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", - "requires": { - "@noble/hashes": "~1.1.1", - "@scure/base": "~1.1.0" - } - }, - "axios": { - "version": "0.27.2", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", - "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", - "requires": { - "follow-redirects": "^1.14.9", - "form-data": "^4.0.0" - } - } - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" - }, - "argparse": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", - "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" - }, - "assertion-error": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", - "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" - }, - "axios": { - "version": "0.24.0", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", - "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", - "requires": { - "follow-redirects": "^1.14.4" - } - }, - "axios-retry": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.4.0.tgz", - "integrity": "sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==", - "requires": { - "@babel/runtime": "^7.15.4", - "is-retry-allowed": "^2.2.0" - } - }, - "balanced-match": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", - "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" - }, - "base-x": { - "version": "3.0.9", - "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", - "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "bech32": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", - "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" - }, - "big-integer": { - "version": "1.6.36", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", - "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" - }, - "bigint-buffer": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", - "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", - "requires": { - "bindings": "^1.3.0" - } - }, - "bignumber.js": { - "version": "9.1.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", - "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" - }, - "binary-parser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", - "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==" - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bip32": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", - "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", - "requires": { - "@types/node": "10.12.18", - "bs58check": "^2.1.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "tiny-secp256k1": "^1.1.3", - "typeforce": "^1.11.5", - "wif": "^2.0.6" - }, - "dependencies": { - "@types/node": { - "version": "10.12.18", - "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", - "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" - } - } - }, - "bip39": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", - "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", - "requires": { - "@noble/hashes": "^1.2.0" - } - }, - "bip66": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", - "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", - "optional": true, - "requires": { - "safe-buffer": "^5.0.1" - } - }, - "blakejs": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", - "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" - }, - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "borsh": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", - "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", - "requires": { - "bn.js": "^5.2.0", - "bs58": "^4.0.0", - "text-encoding-utf-8": "^1.0.2" - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" - }, - "browser-headers": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", - "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" - }, - "browser-stdout": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", - "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "bs58": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", - "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", - "requires": { - "base-x": "^3.0.2" - } - }, - "bs58check": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", - "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", - "requires": { - "bs58": "^4.0.0", - "create-hash": "^1.1.0", - "safe-buffer": "^5.1.2" - } - }, - "buffer": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", - "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.2.1" - } - }, - "buffer-from": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", - "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" - }, - "buffer-layout": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", - "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==" - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, - "bufferutil": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", - "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", - "requires": { - "node-gyp-build": "^4.3.0" - } - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" - }, - "capability": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", - "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" - }, - "chai": { - "version": "4.3.7", - "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", - "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", - "requires": { - "assertion-error": "^1.1.0", - "check-error": "^1.0.2", - "deep-eql": "^4.1.2", - "get-func-name": "^2.0.0", - "loupe": "^2.3.1", - "pathval": "^1.1.1", - "type-detect": "^4.0.5" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "check-error": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", - "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==" - }, - "chokidar": { - "version": "3.5.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", - "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", - "requires": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "fsevents": "~2.3.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - } - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" - }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" - }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" - }, - "copyfiles": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", - "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", - "requires": { - "glob": "^7.0.5", - "minimatch": "^3.0.3", - "mkdirp": "^1.0.4", - "noms": "0.0.0", - "through2": "^2.0.1", - "untildify": "^4.0.0", - "yargs": "^16.1.0" - } - }, - "core-util-is": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", - "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" - }, - "cosmjs-types": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", - "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", - "requires": { - "long": "^4.0.0", - "protobufjs": "~6.11.2" - }, - "dependencies": { - "protobufjs": { - "version": "6.11.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", - "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": ">=13.7.0", - "long": "^4.0.0" - } - } - } - }, - "crc-32": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", - "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "create-require": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", - "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" - }, - "cross-fetch": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", - "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", - "requires": { - "node-fetch": "2.6.7" - }, - "dependencies": { - "node-fetch": { - "version": "2.6.7", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", - "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", - "requires": { - "whatwg-url": "^5.0.0" - } - } - } - }, - "crypto-addr-codec": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", - "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", - "requires": { - "base-x": "^3.0.8", - "big-integer": "1.6.36", - "blakejs": "^1.1.0", - "bs58": "^4.0.1", - "ripemd160-min": "0.0.6", - "safe-buffer": "^5.2.0", - "sha3": "^2.1.1" - } - }, - "crypto-hash": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", - "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" - }, - "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", - "requires": { - "ms": "2.1.2" - } - }, - "decamelize": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", - "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" - }, - "decimal.js": { - "version": "10.4.3", - "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", - "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" - }, - "deep-eql": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", - "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", - "requires": { - "type-detect": "^4.0.0" - } - }, - "define-properties": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", - "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", - "requires": { - "has-property-descriptors": "^1.0.0", - "object-keys": "^1.1.1" - } - }, - "delay": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", - "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" - }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" - }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" - }, - "diff": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", - "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" - }, - "dot-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", - "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", - "requires": { - "no-case": "^3.0.4", - "tslib": "^2.0.3" - } - }, - "dotenv": { - "version": "16.0.3", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", - "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" - }, - "drbg.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", - "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", - "optional": true, - "requires": { - "browserify-aes": "^1.0.6", - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4" - } - }, - "eccrypto": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", - "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", - "requires": { - "acorn": "7.1.1", - "elliptic": "6.5.4", - "es6-promise": "4.2.8", - "nan": "2.14.0", - "secp256k1": "3.7.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", - "optional": true - }, - "secp256k1": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", - "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", - "optional": true, - "requires": { - "bindings": "^1.5.0", - "bip66": "^1.1.5", - "bn.js": "^4.11.8", - "create-hash": "^1.2.0", - "drbg.js": "^1.0.1", - "elliptic": "^6.4.1", - "nan": "^2.14.0", - "safe-buffer": "^5.1.2" - } - } - } - }, - "elliptic": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", - "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", - "requires": { - "bn.js": "^4.11.9", - "brorand": "^1.1.0", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.1", - "inherits": "^2.0.4", - "minimalistic-assert": "^1.0.1", - "minimalistic-crypto-utils": "^1.0.1" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" - }, - "error-polyfill": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", - "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", - "requires": { - "capability": "^0.2.5", - "o3": "^1.0.3", - "u3": "^0.1.1" - } - }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", - "requires": { - "es6-promise": "^4.0.3" - } - }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" - }, - "eth-crypto": { - "version": "2.6.0", - "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", - "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", - "requires": { - "@babel/runtime": "7.20.13", - "@ethereumjs/tx": "3.5.2", - "@types/bn.js": "5.1.1", - "eccrypto": "1.1.6", - "ethereumjs-util": "7.1.5", - "ethers": "5.7.2", - "secp256k1": "5.0.0" - }, - "dependencies": { - "@babel/runtime": { - "version": "7.20.13", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", - "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", - "requires": { - "regenerator-runtime": "^0.13.11" - } - }, - "node-addon-api": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", - "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" - }, - "secp256k1": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", - "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^5.0.0", - "node-gyp-build": "^4.2.0" - } - } - } - }, - "ethereum-cryptography": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", - "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", - "requires": { - "@types/pbkdf2": "^3.0.0", - "@types/secp256k1": "^4.0.1", - "blakejs": "^1.1.0", - "browserify-aes": "^1.2.0", - "bs58check": "^2.1.2", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "hash.js": "^1.1.7", - "keccak": "^3.0.0", - "pbkdf2": "^3.0.17", - "randombytes": "^2.1.0", - "safe-buffer": "^5.1.2", - "scrypt-js": "^3.0.0", - "secp256k1": "^4.0.1", - "setimmediate": "^1.0.5" - } - }, - "ethereumjs-abi": { - "version": "0.6.8", - "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", - "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", - "requires": { - "bn.js": "^4.11.8", - "ethereumjs-util": "^6.0.0" - }, - "dependencies": { - "@types/bn.js": { - "version": "4.11.6", - "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", - "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", - "requires": { - "@types/node": "*" - } - }, - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - }, - "ethereumjs-util": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", - "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", - "requires": { - "@types/bn.js": "^4.11.3", - "bn.js": "^4.11.0", - "create-hash": "^1.1.2", - "elliptic": "^6.5.2", - "ethereum-cryptography": "^0.1.3", - "ethjs-util": "0.1.6", - "rlp": "^2.2.3" - } - } - } - }, - "ethereumjs-util": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", - "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", - "requires": { - "@types/bn.js": "^5.1.0", - "bn.js": "^5.1.2", - "create-hash": "^1.1.2", - "ethereum-cryptography": "^0.1.3", - "rlp": "^2.2.4" - } - }, - "ethers": { - "version": "5.7.2", - "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", - "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", - "requires": { - "@ethersproject/abi": "5.7.0", - "@ethersproject/abstract-provider": "5.7.0", - "@ethersproject/abstract-signer": "5.7.0", - "@ethersproject/address": "5.7.0", - "@ethersproject/base64": "5.7.0", - "@ethersproject/basex": "5.7.0", - "@ethersproject/bignumber": "5.7.0", - "@ethersproject/bytes": "5.7.0", - "@ethersproject/constants": "5.7.0", - "@ethersproject/contracts": "5.7.0", - "@ethersproject/hash": "5.7.0", - "@ethersproject/hdnode": "5.7.0", - "@ethersproject/json-wallets": "5.7.0", - "@ethersproject/keccak256": "5.7.0", - "@ethersproject/logger": "5.7.0", - "@ethersproject/networks": "5.7.1", - "@ethersproject/pbkdf2": "5.7.0", - "@ethersproject/properties": "5.7.0", - "@ethersproject/providers": "5.7.2", - "@ethersproject/random": "5.7.0", - "@ethersproject/rlp": "5.7.0", - "@ethersproject/sha2": "5.7.0", - "@ethersproject/signing-key": "5.7.0", - "@ethersproject/solidity": "5.7.0", - "@ethersproject/strings": "5.7.0", - "@ethersproject/transactions": "5.7.0", - "@ethersproject/units": "5.7.0", - "@ethersproject/wallet": "5.7.0", - "@ethersproject/web": "5.7.1", - "@ethersproject/wordlists": "5.7.0" - } - }, - "ethjs-util": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", - "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", - "requires": { - "is-hex-prefixed": "1.0.0", - "strip-hex-prefix": "1.0.0" - } - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" - }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "eyes": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", - "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" - }, - "fast-stable-stringify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", - "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" - }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" - }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "requires": { - "to-regex-range": "^5.0.1" - } - }, - "find-up": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", - "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", - "requires": { - "locate-path": "^6.0.0", - "path-exists": "^4.0.0" - } - }, - "flat": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", - "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" - }, - "follow-redirects": { - "version": "1.15.2", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", - "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" - }, - "form-data": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", - "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", - "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.8", - "mime-types": "^2.1.12" - } - }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" - }, - "fsevents": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", - "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", - "optional": true - }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" - }, - "get-func-name": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", - "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==" - }, - "get-intrinsic": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", - "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.3" - } - }, - "glob": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", - "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.1.1", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - } - }, - "glob-parent": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", - "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", - "requires": { - "is-glob": "^4.0.1" - } - }, - "globalthis": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", - "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", - "requires": { - "define-properties": "^1.1.3" - } - }, - "google-protobuf": { - "version": "3.21.2", - "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", - "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" - }, - "graphql": { - "version": "16.6.0", - "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", - "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" - }, - "graphql-tag": { - "version": "2.12.6", - "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", - "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", - "requires": { - "tslib": "^2.1.0" - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" - }, - "has-property-descriptors": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", - "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", - "requires": { - "get-intrinsic": "^1.1.1" - } - }, - "has-symbols": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", - "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" - }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "he": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", - "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" - }, - "hi-base32": { - "version": "0.5.1", - "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", - "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" - }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", - "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "hoist-non-react-statics": { - "version": "3.3.2", - "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", - "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", - "requires": { - "react-is": "^16.7.0" - } - }, - "http-errors": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", - "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", - "requires": { - "depd": "~1.1.2", - "inherits": "2.0.4", - "setprototypeof": "1.2.0", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.1" - }, - "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" - } - } - }, - "http-status-codes": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", - "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" - }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", - "requires": { - "ms": "^2.0.0" - } - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" - }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", - "requires": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" - }, - "interpret": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", - "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" - }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "requires": { - "binary-extensions": "^2.0.0" - } - }, - "is-core-module": { - "version": "2.12.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", - "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", - "requires": { - "has": "^1.0.3" - } - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" - }, - "is-glob": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", - "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", - "requires": { - "is-extglob": "^2.1.1" - } - }, - "is-hex-prefixed": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", - "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" - }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" - }, - "is-plain-obj": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", - "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" - }, - "is-retry-allowed": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", - "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==" - }, - "is-unicode-supported": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", - "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" - }, - "isomorphic-ws": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", - "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", - "requires": {} - }, - "jayson": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", - "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", - "requires": { - "@types/connect": "^3.4.33", - "@types/node": "^12.12.54", - "@types/ws": "^7.4.4", - "commander": "^2.20.3", - "delay": "^5.0.0", - "es6-promisify": "^5.0.0", - "eyes": "^0.1.8", - "isomorphic-ws": "^4.0.1", - "json-stringify-safe": "^5.0.1", - "JSONStream": "^1.3.5", - "uuid": "^8.3.2", - "ws": "^7.4.5" - }, - "dependencies": { - "@types/node": { - "version": "12.20.55", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", - "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" - } - } - }, - "js-base64": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", - "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" - }, - "js-sha256": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", - "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" - }, - "js-sha3": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", - "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" - }, - "js-sha512": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", - "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" - }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" - }, - "js-yaml": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", - "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", - "requires": { - "argparse": "^2.0.1" - } - }, - "jscrypto": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", - "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==" - }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" - }, - "json5": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", - "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", - "optional": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" - }, - "jsonschema": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", - "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==" - }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - } - }, - "keccak": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", - "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", - "requires": { - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0", - "readable-stream": "^3.6.0" - } - }, - "keccak256": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", - "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", - "requires": { - "bn.js": "^5.2.0", - "buffer": "^6.0.3", - "keccak": "^3.0.2" - } - }, - "libsodium": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", - "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" - }, - "libsodium-wrappers": { - "version": "0.7.11", - "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", - "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", - "requires": { - "libsodium": "^0.7.11" - } - }, - "link-module-alias": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", - "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", - "requires": { - "chalk": "^2.4.1" - } - }, - "locate-path": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", - "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", - "requires": { - "p-locate": "^5.0.0" - } - }, - "lodash": { - "version": "4.17.21", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", - "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" - }, - "lodash.values": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", - "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" - }, - "log-symbols": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", - "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", - "requires": { - "chalk": "^4.1.0", - "is-unicode-supported": "^0.1.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", - "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" - } - }, - "loupe": { - "version": "2.3.6", - "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", - "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", - "requires": { - "get-func-name": "^2.0.0" - } - }, - "lower-case": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", - "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", - "requires": { - "tslib": "^2.0.3" - } - }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" - }, - "map-obj": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", - "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" - }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "mime-db": { - "version": "1.52.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", - "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" - }, - "mime-types": { - "version": "2.1.35", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", - "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", - "requires": { - "mime-db": "1.52.0" - } - }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" - }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" - }, - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - }, - "minimist": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", - "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" - }, - "mocha": { - "version": "10.2.0", - "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", - "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", - "requires": { - "ansi-colors": "4.1.1", - "browser-stdout": "1.3.1", - "chokidar": "3.5.3", - "debug": "4.3.4", - "diff": "5.0.0", - "escape-string-regexp": "4.0.0", - "find-up": "5.0.0", - "glob": "7.2.0", - "he": "1.2.0", - "js-yaml": "4.1.0", - "log-symbols": "4.1.0", - "minimatch": "5.0.1", - "ms": "2.1.3", - "nanoid": "3.3.3", - "serialize-javascript": "6.0.0", - "strip-json-comments": "3.1.1", - "supports-color": "8.1.1", - "workerpool": "6.2.1", - "yargs": "16.2.0", - "yargs-parser": "20.2.4", - "yargs-unparser": "2.0.0" - }, - "dependencies": { - "escape-string-regexp": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", - "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" - }, - "glob": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", - "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", - "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "dependencies": { - "minimatch": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", - "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", - "requires": { - "brace-expansion": "^1.1.7" - } - } - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" - }, - "minimatch": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", - "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", - "requires": { - "brace-expansion": "^2.0.1" - }, - "dependencies": { - "brace-expansion": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", - "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", - "requires": { - "balanced-match": "^1.0.0" - } - } - } - }, - "ms": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", - "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" - }, - "supports-color": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", - "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "mustache": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", - "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" - }, - "nan": { - "version": "2.14.0", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", - "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" - }, - "nanoid": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", - "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" - }, - "near-api-js": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", - "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", - "requires": { - "bn.js": "5.2.1", - "borsh": "^0.7.0", - "bs58": "^4.0.0", - "depd": "^2.0.0", - "error-polyfill": "^0.1.3", - "http-errors": "^1.7.2", - "js-sha256": "^0.9.0", - "mustache": "^4.0.0", - "node-fetch": "^2.6.1", - "text-encoding-utf-8": "^1.0.2", - "tweetnacl": "^1.0.1" - } - }, - "no-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", - "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", - "requires": { - "lower-case": "^2.0.2", - "tslib": "^2.0.3" - } - }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, - "node-fetch": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", - "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", - "requires": { - "whatwg-url": "^5.0.0" - } - }, - "node-gyp-build": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", - "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" - }, - "noms": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", - "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", - "requires": { - "inherits": "^2.0.1", - "readable-stream": "~1.0.31" - }, - "dependencies": { - "readable-stream": { - "version": "1.0.34", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", - "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "0.0.1", - "string_decoder": "~0.10.x" - } - }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" - } - } - }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" - }, - "o3": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", - "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", - "requires": { - "capability": "^0.2.5" - } - }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" - }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", - "requires": { - "wrappy": "1" - } - }, - "optimism": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", - "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", - "requires": { - "@wry/context": "^0.7.0", - "@wry/trie": "^0.3.0" - } - }, - "p-limit": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", - "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", - "requires": { - "yocto-queue": "^0.1.0" - } - }, - "p-locate": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", - "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", - "requires": { - "p-limit": "^3.0.2" - } - }, - "pako": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", - "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" - }, - "path-parse": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", - "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" - }, - "pathval": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", - "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" - }, - "pbkdf2": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", - "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", - "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "picomatch": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", - "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" - }, - "prettier": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", - "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/@pythnetwork/price-service-sdk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-sdk/-/price-service-sdk-1.2.0.tgz", + "integrity": "sha512-h4HcUwBPFEZwa5nLMTz9YnwdLE5m+Bfctzqbj09vpSJo2DyPHCyEXScFUuizWBbfofxB/pF+OnZXjU3pJxtm/w==" + }, + "node_modules/@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/@scure/bip32": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/curves": "~1.0.0", + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@scure/bip39": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", + "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "node_modules/@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "dependencies": { + "buffer": "~6.0.3" + }, + "engines": { + "node": ">=5.10" + } + }, + "node_modules/@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + }, + "engines": { + "node": ">= 10" + } + }, + "node_modules/@solana/spl-token": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", + "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", + "dependencies": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + }, + "engines": { + "node": ">=16" + }, + "peerDependencies": { + "@solana/web3.js": "^1.47.4" + } + }, + "node_modules/@solana/web3.js": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.75.0.tgz", + "integrity": "sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg==", + "dependencies": { + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "^2.6.7", + "rpc-websockets": "^7.5.1", + "superstruct": "^0.14.2" + } + }, + "node_modules/@solana/web3.js/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "node_modules/@solana/web3.js/node_modules/jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@solana/web3.js/node_modules/superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + }, + "node_modules/@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "node_modules/@terra-money/legacy.proto": { + "name": "@terra-money/terra.proto", + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", + "dependencies": { + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/@terra-money/legacy.proto/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@terra-money/terra.js": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", + "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", + "dependencies": { + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@terra-money/terra.js/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/@terra-money/terra.proto": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", + "dependencies": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/@terra-money/terra.proto/node_modules/@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "dependencies": { + "browser-headers": "^0.4.1" + }, + "peerDependencies": { + "google-protobuf": "^3.14.0" + } + }, + "node_modules/@terra-money/terra.proto/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "node_modules/@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "node_modules/@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "optional": true + }, + "node_modules/@types/lodash": { + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" + }, + "node_modules/@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", + "dependencies": { + "@types/lodash": "*" + } + }, + "node_modules/@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "node_modules/@types/mocha": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true + }, + "node_modules/@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" + }, + "node_modules/@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wry/equality": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", + "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "dependencies": { + "tslib": "^2.3.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/@xpla/xpla.js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", + "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", + "dependencies": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" + }, + "engines": { + "node": ">=14" + } + }, + "node_modules/@xpla/xpla.js/node_modules/axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "dependencies": { + "follow-redirects": "^1.14.8" + } + }, + "node_modules/acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "node_modules/agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "dependencies": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + }, + "engines": { + "node": ">= 8.0.0" + } + }, + "node_modules/algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==", + "engines": { + "node": ">= 10" + } + }, + "node_modules/algosdk": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", + "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", + "dependencies": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.2", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", + "engines": { + "node": ">=6" + } + }, + "node_modules/ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "dependencies": { + "color-convert": "^1.9.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "dependencies": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + }, + "engines": { + "node": ">= 8" + } + }, + "node_modules/aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", + "dependencies": { + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, + "engines": { + "node": ">=11.0.0" + } + }, + "node_modules/aptos/node_modules/@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ] + }, + "node_modules/aptos/node_modules/@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } + }, + "node_modules/aptos/node_modules/axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "dependencies": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "node_modules/arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", + "engines": { + "node": "*" + } + }, + "node_modules/asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "node_modules/axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "dependencies": { + "follow-redirects": "^1.14.4" + } + }, + "node_modules/axios-retry": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.4.0.tgz", + "integrity": "sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==", + "dependencies": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "node_modules/balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "node_modules/big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.3.0" + }, + "engines": { + "node": ">= 10.0.0" + } + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } + }, + "node_modules/binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==", + "engines": { + "node": ">=12" + } + }, + "node_modules/bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "dependencies": { + "file-uri-to-path": "1.0.0" + } + }, + "node_modules/bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", + "dependencies": { + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/bip32/node_modules/@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + }, + "node_modules/bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "dependencies": { + "@noble/hashes": "^1.2.0" + } + }, + "node_modules/bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", + "optional": true, + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "dependencies": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "node_modules/brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dependencies": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "node_modules/braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "dependencies": { + "fill-range": "^7.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "node_modules/browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "node_modules/buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "node_modules/buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==", + "engines": { + "node": ">=4.5" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "node_modules/bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", + "engines": { + "node": ">=6" + } + }, + "node_modules/capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" + }, + "node_modules/chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "dependencies": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "dependencies": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==", + "engines": { + "node": "*" + } + }, + "node_modules/chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "funding": [ + { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + ], + "dependencies": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + }, + "engines": { + "node": ">= 8.10.0" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" + } + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dependencies": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "node_modules/color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "dependencies": { + "color-name": "1.1.3" + } + }, + "node_modules/color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "node_modules/combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "dependencies": { + "delayed-stream": "~1.0.0" + }, + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "node_modules/copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "dependencies": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + }, + "bin": { + "copyfiles": "copyfiles", + "copyup": "copyfiles" + } + }, + "node_modules/core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "node_modules/cosmjs-types": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", + "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", + "dependencies": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + } + }, + "node_modules/cosmjs-types/node_modules/protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + }, + "bin": { + "pbjs": "bin/pbjs", + "pbts": "bin/pbts" + } + }, + "node_modules/crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==", + "bin": { + "crc32": "bin/crc32.njs" + }, + "engines": { + "node": ">=0.8" + } + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "dependencies": { + "node-fetch": "2.6.7" + } + }, + "node_modules/cross-fetch/node_modules/node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "dependencies": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "node_modules/crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dependencies": { + "ms": "2.1.2" + }, + "engines": { + "node": ">=6.0" + }, + "peerDependenciesMeta": { + "supports-color": { + "optional": true + } + } + }, + "node_modules/decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "node_modules/deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "dependencies": { + "type-detect": "^4.0.0" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "dependencies": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "engines": { + "node": ">= 0.8" + } + }, + "node_modules/diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "dependencies": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==", + "engines": { + "node": ">=12" + } + }, + "node_modules/drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "optional": true, + "dependencies": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + }, + "engines": { + "node": ">=0.10" + } + }, + "node_modules/eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "hasInstallScript": true, + "dependencies": { + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0" + }, + "optionalDependencies": { + "secp256k1": "3.7.1" + } + }, + "node_modules/eccrypto/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true + }, + "node_modules/eccrypto/node_modules/secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "hasInstallScript": true, + "optional": true, + "dependencies": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + }, + "engines": { + "node": ">=4.0.0" + } + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "node_modules/error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", + "dependencies": { + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" + } + }, + "node_modules/es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "node_modules/es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "dependencies": { + "es6-promise": "^4.0.3" + } + }, + "node_modules/escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", + "engines": { + "node": ">=6" + } + }, + "node_modules/escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==", + "engines": { + "node": ">=0.8.0" + } + }, + "node_modules/eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", + "dependencies": { + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" + }, + "funding": { + "url": "https://github.com/sponsors/pubkey" + } + }, + "node_modules/eth-crypto/node_modules/@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "dependencies": { + "regenerator-runtime": "^0.13.11" + }, + "engines": { + "node": ">=6.9.0" + } + }, + "node_modules/eth-crypto/node_modules/node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" + }, + "node_modules/eth-crypto/node_modules/secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "dependencies": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "node_modules/ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "dependencies": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + } + }, + "node_modules/ethereumjs-abi/node_modules/@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "dependencies": { + "@types/node": "*" + } + }, + "node_modules/ethereumjs-abi/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/ethereumjs-abi/node_modules/ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "dependencies": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + }, + "node_modules/ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "dependencies": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "funding": [ + { + "type": "individual", + "url": "https://gitcoin.co/grants/13/ethersjs-complete-simple-and-tiny-2" + }, + { + "type": "individual", + "url": "https://www.buymeacoffee.com/ricmoo" + } + ], + "dependencies": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "node_modules/ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "dependencies": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==", + "engines": { + "node": "> 0.1.90" + } + }, + "node_modules/fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "node_modules/file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "node_modules/fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "dependencies": { + "to-regex-range": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "dependencies": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==", + "bin": { + "flat": "cli.js" + } + }, + "node_modules/follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==", + "funding": [ + { + "type": "individual", + "url": "https://github.com/sponsors/RubenVerborgh" + } + ], + "engines": { + "node": ">=4.0" + }, + "peerDependenciesMeta": { + "debug": { + "optional": true + } + } + }, + "node_modules/form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "dependencies": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "node_modules/fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "hasInstallScript": true, + "optional": true, + "os": [ + "darwin" + ], + "engines": { + "node": "^8.16.0 || ^10.6.0 || >=11.0.0" + } + }, + "node_modules/function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "node_modules/get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", + "engines": { + "node": "6.* || 8.* || >= 10.*" + } + }, + "node_modules/get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==", + "engines": { + "node": "*" + } + }, + "node_modules/get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "dependencies": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "dependencies": { + "is-glob": "^4.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "dependencies": { + "define-properties": "^1.1.3" + }, + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "node_modules/graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==", + "engines": { + "node": "^12.22.0 || ^14.16.0 || ^16.0.0 || >=17.0.0" + } + }, + "node_modules/graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=10" + }, + "peerDependencies": { + "graphql": "^0.9.0 || ^0.10.0 || ^0.11.0 || ^0.12.0 || ^0.13.0 || ^14.0.0 || ^15.0.0 || ^16.0.0" + } + }, + "node_modules/has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dependencies": { + "function-bind": "^1.1.1" + }, + "engines": { + "node": ">= 0.4.0" + } + }, + "node_modules/has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==", + "engines": { + "node": ">=4" + } + }, + "node_modules/has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dependencies": { + "get-intrinsic": "^1.1.1" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==", + "bin": { + "he": "bin/he" + } + }, + "node_modules/hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "dependencies": { + "react-is": "^16.7.0" + } + }, + "node_modules/http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "dependencies": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-errors/node_modules/depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" + }, + "node_modules/humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dependencies": { + "ms": "^2.0.0" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "dependencies": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==", + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "dependencies": { + "binary-extensions": "^2.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "dependencies": { + "has": "^1.0.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dependencies": { + "is-extglob": "^2.1.1" + }, + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==", + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "engines": { + "node": ">=0.12.0" + } + }, + "node_modules/is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==", + "engines": { + "node": ">=8" + } + }, + "node_modules/is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "node_modules/isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "peerDependencies": { + "ws": "*" + } + }, + "node_modules/jayson": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", + "dependencies": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "bin": { + "jayson": "bin/jayson.js" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/jayson/node_modules/@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + }, + "node_modules/js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "node_modules/js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "node_modules/js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" + }, + "node_modules/js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "node_modules/js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "dependencies": { + "argparse": "^2.0.1" + }, + "bin": { + "js-yaml": "bin/js-yaml.js" + } + }, + "node_modules/jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==", + "bin": { + "jscrypto": "bin/cli.js" + } + }, + "node_modules/json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "dependencies": { + "bignumber.js": "^9.0.0" + } + }, + "node_modules/json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "node_modules/json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "optional": true, + "dependencies": { + "minimist": "^1.2.0" + }, + "bin": { + "json5": "lib/cli.js" + } + }, + "node_modules/jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==", + "engines": [ + "node >= 0.2.0" + ] + }, + "node_modules/jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==", + "engines": { + "node": "*" + } + }, + "node_modules/JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "dependencies": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + }, + "bin": { + "JSONStream": "bin.js" + }, + "engines": { + "node": "*" + } + }, + "node_modules/keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "hasInstallScript": true, + "dependencies": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "dependencies": { + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" + } + }, + "node_modules/libsodium": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", + "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" + }, + "node_modules/libsodium-wrappers": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", + "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", + "dependencies": { + "libsodium": "^0.7.11" + } + }, + "node_modules/link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", + "dependencies": { + "chalk": "^2.4.1" + }, + "bin": { + "link-module-alias": "index.js" + }, + "engines": { + "node": "> 8.0.0" + } + }, + "node_modules/locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "dependencies": { + "p-locate": "^5.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "node_modules/lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, + "node_modules/log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "dependencies": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/log-symbols/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dependencies": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/chalk?sponsor=1" + } + }, + "node_modules/log-symbols/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/log-symbols/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/log-symbols/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/log-symbols/node_modules/supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "node_modules/loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dependencies": { + "js-tokens": "^3.0.0 || ^4.0.0" + }, + "bin": { + "loose-envify": "cli.js" + } + }, + "node_modules/loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "dependencies": { + "get-func-name": "^2.0.0" + } + }, + "node_modules/lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "dependencies": { + "tslib": "^2.0.3" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "dependencies": { + "mime-db": "1.52.0" + }, + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==", + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "bin": { + "mkdirp": "bin/cmd.js" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "dependencies": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "bin": { + "_mocha": "bin/_mocha", + "mocha": "bin/mocha.js" + }, + "engines": { + "node": ">= 14.0.0" + }, + "funding": { + "type": "opencollective", + "url": "https://opencollective.com/mochajs" + } + }, + "node_modules/mocha/node_modules/escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/mocha/node_modules/glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "dependencies": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "engines": { + "node": "*" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/mocha/node_modules/glob/node_modules/minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dependencies": { + "brace-expansion": "^1.1.7" + }, + "engines": { + "node": "*" + } + }, + "node_modules/mocha/node_modules/has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "engines": { + "node": ">=8" + } + }, + "node_modules/mocha/node_modules/minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dependencies": { + "brace-expansion": "^2.0.1" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/mocha/node_modules/minimatch/node_modules/brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dependencies": { + "balanced-match": "^1.0.0" + } + }, + "node_modules/mocha/node_modules/ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" + }, + "node_modules/mocha/node_modules/supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "dependencies": { + "has-flag": "^4.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/supports-color?sponsor=1" + } + }, + "node_modules/ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "node_modules/mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==", + "bin": { + "mustache": "bin/mustache" + } + }, + "node_modules/nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "node_modules/nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==", + "bin": { + "nanoid": "bin/nanoid.cjs" + }, + "engines": { + "node": "^10 || ^12 || ^13.7 || ^14 || >=15.0.1" + } + }, + "node_modules/near-api-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", + "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", + "dependencies": { + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" + } + }, + "node_modules/no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "dependencies": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "dependencies": { + "whatwg-url": "^5.0.0" + }, + "engines": { + "node": "4.x || >=6.0.0" + }, + "peerDependencies": { + "encoding": "^0.1.0" + }, + "peerDependenciesMeta": { + "encoding": { + "optional": true + } + } + }, + "node_modules/node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "dependencies": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + } + }, + "node_modules/noms/node_modules/readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } + }, + "node_modules/noms/node_modules/string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + }, + "node_modules/normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", + "dependencies": { + "capability": "^0.2.5" + } + }, + "node_modules/object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "engines": { + "node": ">= 0.4" + } + }, + "node_modules/once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "dependencies": { + "wrappy": "1" + } + }, + "node_modules/optimism": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", + "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", + "dependencies": { + "@wry/context": "^0.7.0", + "@wry/trie": "^0.3.0" + } + }, + "node_modules/p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "dependencies": { + "yocto-queue": "^0.1.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "dependencies": { + "p-limit": "^3.0.2" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "node_modules/path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "engines": { + "node": ">=8" + } + }, + "node_modules/path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "node_modules/pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==", + "engines": { + "node": "*" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", + "engines": { + "node": ">=8.6" + }, + "funding": { + "url": "https://github.com/sponsors/jonschlinkert" + } + }, + "node_modules/prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==", + "bin": { + "prettier": "bin-prettier.js" + }, + "engines": { + "node": ">=10.13.0" + }, + "funding": { + "url": "https://github.com/prettier/prettier?sponsor=1" + } + }, + "node_modules/process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "node_modules/prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "dependencies": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "node_modules/protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "hasInstallScript": true, + "dependencies": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/protobufjs/node_modules/long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + }, + "node_modules/proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "node_modules/readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "dependencies": { + "picomatch": "^2.2.1" + }, + "engines": { + "node": ">=8.10.0" + } + }, + "node_modules/readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + }, + "node_modules/rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "dependencies": { + "resolve": "^1.1.6" + }, + "engines": { + "node": ">= 0.10" + } + }, + "node_modules/regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "node_modules/require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "dependencies": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + }, + "bin": { + "resolve": "bin/resolve" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==", + "engines": { + "node": ">=0.8" + } + }, + "node_modules/rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dependencies": { + "glob": "^7.1.3" + }, + "bin": { + "rimraf": "bin.js" + }, + "funding": { + "url": "https://github.com/sponsors/isaacs" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==", + "engines": { + "node": ">=8" + } + }, + "node_modules/rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "dependencies": { + "bn.js": "^5.2.0" + }, + "bin": { + "rlp": "bin/rlp" + } + }, + "node_modules/rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "dependencies": { + "@babel/runtime": "^7.17.2", + "eventemitter3": "^4.0.7", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "funding": { + "type": "paypal", + "url": "https://paypal.me/kozjak" + }, + "optionalDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + } + }, + "node_modules/rpc-websockets/node_modules/ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "engines": { + "node": ">=10.0.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": ">=5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "dependencies": { + "tslib": "^2.1.0" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "dependencies": { + "randombytes": "^2.1.0" + } + }, + "node_modules/setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "node_modules/setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "dependencies": { + "buffer": "6.0.3" + } + }, + "node_modules/shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "dependencies": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + }, + "bin": { + "shjs": "bin/shjs" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "dependencies": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + }, + "bin": { + "shx": "lib/cli.js" + }, + "engines": { + "node": ">=6" + } + }, + "node_modules/snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "dependencies": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "node_modules/snakecase-keys": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", + "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", + "dependencies": { + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "engines": { + "node": ">=0.10.0" + } + }, + "node_modules/source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dependencies": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "node_modules/statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", + "engines": { + "node": ">= 0.6" + } + }, + "node_modules/store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dependencies": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dependencies": { + "ansi-regex": "^5.0.1" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "optional": true, + "engines": { + "node": ">=4" + } + }, + "node_modules/strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "dependencies": { + "is-hex-prefixed": "1.0.0" + }, + "engines": { + "node": ">=6.5.0", + "npm": ">=3" + } + }, + "node_modules/strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==", + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==", + "engines": { + "node": ">=14.0.0" + } + }, + "node_modules/supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "dependencies": { + "has-flag": "^3.0.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", + "engines": { + "node": ">= 0.4" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, + "node_modules/symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "node_modules/through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "node_modules/through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "dependencies": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + } + }, + "node_modules/through2/node_modules/isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" + }, + "node_modules/through2/node_modules/readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "dependencies": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + }, + "node_modules/through2/node_modules/safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "node_modules/through2/node_modules/string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dependencies": { + "safe-buffer": "~5.1.0" + } + }, + "node_modules/tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "hasInstallScript": true, + "dependencies": { + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" + }, + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/tiny-secp256k1/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dependencies": { + "rimraf": "^3.0.0" + }, + "engines": { + "node": ">=8.17.0" + } + }, + "node_modules/to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dependencies": { + "is-number": "^7.0.0" + }, + "engines": { + "node": ">=8.0" + } + }, + "node_modules/toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "engines": { + "node": ">=0.6" + } + }, + "node_modules/toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "node_modules/tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "node_modules/ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "dependencies": { + "tslib": "^2.1.0" + }, + "engines": { + "node": ">=8" + } + }, + "node_modules/ts-log": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", + "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==" + }, + "node_modules/ts-mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", + "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", + "dependencies": { + "ts-node": "7.0.1" + }, + "bin": { + "ts-mocha": "bin/ts-mocha" + }, + "engines": { + "node": ">= 6.X.X" + }, + "optionalDependencies": { + "tsconfig-paths": "^3.5.0" + }, + "peerDependencies": { + "mocha": "^3.X.X || ^4.X.X || ^5.X.X || ^6.X.X || ^7.X.X || ^8.X.X || ^9.X.X || ^10.X.X" + } + }, + "node_modules/ts-mocha/node_modules/diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/ts-mocha/node_modules/mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "dependencies": { + "minimist": "^1.2.6" + }, + "bin": { + "mkdirp": "bin/cmd.js" + } + }, + "node_modules/ts-mocha/node_modules/ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "dependencies": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + }, + "bin": { + "ts-node": "dist/bin.js" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/ts-mocha/node_modules/yn": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==", + "engines": { + "node": ">=4" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/ts-node/node_modules/acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/ts-node/node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "optional": true, + "dependencies": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "node_modules/tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "node_modules/type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", + "engines": { + "node": ">=4" + } + }, + "node_modules/type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==", + "engines": { + "node": ">=12.20" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + }, + "node_modules/typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==", + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=12.20" + } + }, + "node_modules/u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + }, + "node_modules/untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==", + "engines": { + "node": ">=8" + } + }, + "node_modules/utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "hasInstallScript": true, + "dependencies": { + "node-gyp-build": "^4.3.0" + }, + "engines": { + "node": ">=6.14.2" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "bin": { + "uuid": "dist/bin/uuid" + } + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "node_modules/webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "node_modules/whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "dependencies": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "node_modules/wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", + "dependencies": { + "bs58check": "<3.0.0" + } + }, + "node_modules/workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "node_modules/wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dependencies": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/chalk/wrap-ansi?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dependencies": { + "color-convert": "^2.0.1" + }, + "engines": { + "node": ">=8" + }, + "funding": { + "url": "https://github.com/chalk/ansi-styles?sponsor=1" + } + }, + "node_modules/wrap-ansi/node_modules/color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dependencies": { + "color-name": "~1.1.4" + }, + "engines": { + "node": ">=7.0.0" + } + }, + "node_modules/wrap-ansi/node_modules/color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "node_modules/wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "node_modules/ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "engines": { + "node": ">=8.3.0" + }, + "peerDependencies": { + "bufferutil": "^4.0.1", + "utf-8-validate": "^5.0.2" + }, + "peerDependenciesMeta": { + "bufferutil": { + "optional": true }, - "prop-types": { - "version": "15.8.1", - "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", - "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", - "requires": { - "loose-envify": "^1.4.0", - "object-assign": "^4.1.1", - "react-is": "^16.13.1" - } + "utf-8-validate": { + "optional": true + } + } + }, + "node_modules/xstream": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", + "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", + "dependencies": { + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" + } + }, + "node_modules/xstream/node_modules/symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==", + "engines": { + "node": ">=0.10" + } + }, + "node_modules/xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", + "engines": { + "node": ">=0.4" + } + }, + "node_modules/y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dependencies": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==", + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "dependencies": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "engines": { + "node": ">=10" + } + }, + "node_modules/yargs-unparser/node_modules/camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + }, + "node_modules/yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", + "engines": { + "node": ">=10" + }, + "funding": { + "url": "https://github.com/sponsors/sindresorhus" + } + }, + "node_modules/zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "node_modules/zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "dependencies": { + "zen-observable": "0.8.15" + } + } + }, + "dependencies": { + "@apollo/client": { + "version": "3.7.13", + "resolved": "https://registry.npmjs.org/@apollo/client/-/client-3.7.13.tgz", + "integrity": "sha512-wi63WnO2mhb6uHGB/8x1qIOL4ZtZocrxdHS0VBQ9KwBDkwoP/TdVVgZ29J2WkiAPmJ0SK07ju4R2AjHor1gPxQ==", + "requires": { + "@graphql-typed-document-node/core": "^3.1.1", + "@wry/context": "^0.7.0", + "@wry/equality": "^0.5.0", + "@wry/trie": "^0.3.0", + "graphql-tag": "^2.12.6", + "hoist-non-react-statics": "^3.3.2", + "optimism": "^0.16.2", + "prop-types": "^15.7.2", + "response-iterator": "^0.2.6", + "symbol-observable": "^4.0.0", + "ts-invariant": "^0.10.3", + "tslib": "^2.3.0", + "zen-observable-ts": "^1.2.5" + } + }, + "@babel/runtime": { + "version": "7.21.5", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.21.5.tgz", + "integrity": "sha512-8jI69toZqqcsnqGGqwGS4Qb1VwLOEp4hz+CXPywcvjs60u3B4Pom/U/7rm4W8tMOYEB+E9wgD0mW1l3r8qlI9Q==", + "requires": { + "regenerator-runtime": "^0.13.11" + } + }, + "@certusone/wormhole-sdk": { + "version": "0.9.14", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk/-/wormhole-sdk-0.9.14.tgz", + "integrity": "sha512-xR1dkMkzWJz+EfIvlzThQ5AkU6oY1UjRsyxaxvDEcd9NxZMRHfXJSgHFdP8gWjDfg3nUnj4NGY/UeqAxq9l1+g==", + "requires": { + "@certusone/wormhole-sdk-proto-web": "0.0.6", + "@certusone/wormhole-sdk-wasm": "^0.0.1", + "@coral-xyz/borsh": "0.2.6", + "@injectivelabs/networks": "1.10.7", + "@injectivelabs/sdk-ts": "1.10.47", + "@injectivelabs/utils": "1.10.5", + "@project-serum/anchor": "^0.25.0", + "@solana/spl-token": "^0.3.5", + "@solana/web3.js": "^1.66.2", + "@terra-money/terra.js": "^3.1.3", + "@xpla/xpla.js": "^0.2.1", + "algosdk": "^1.15.0", + "aptos": "1.5.0", + "axios": "^0.24.0", + "bech32": "^2.0.0", + "binary-parser": "^2.2.1", + "bs58": "^4.0.1", + "elliptic": "^6.5.4", + "js-base64": "^3.6.1", + "near-api-js": "^1.0.0" + } + }, + "@certusone/wormhole-sdk-proto-web": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-proto-web/-/wormhole-sdk-proto-web-0.0.6.tgz", + "integrity": "sha512-LTyjsrWryefx5WmkoBP6FQ2EjLxhMExAGxLkloHUhufVQZdrbGh0htBBUviP+HaDSJBCMPMtulNFwkBJV6muqQ==", + "requires": { + "@improbable-eng/grpc-web": "^0.15.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.5.6" + } + }, + "@certusone/wormhole-sdk-wasm": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@certusone/wormhole-sdk-wasm/-/wormhole-sdk-wasm-0.0.1.tgz", + "integrity": "sha512-LdIwLhOyr4pPs2jqYubqC7d4UkqYBX0EG/ppspQlW3qlVE0LZRMrH6oVzzLMyHtV0Rw7O9sIKzORW/T3mrJv2w==", + "requires": { + "@types/long": "^4.0.2", + "@types/node": "^18.0.3" + } + }, + "@classic-terra/terra.proto": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@classic-terra/terra.proto/-/terra.proto-1.1.0.tgz", + "integrity": "sha512-bYhQG5LUaGF0KPRY9hYT/HEcd1QExZPQd6zLV/rQkCe/eDxfwFRLzZHpaaAdfWoAAZjsRWqJbUCqCg7gXBbJpw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "requires": { + "browser-headers": "^0.4.1" + } }, "protobufjs": { - "version": "7.2.3", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", - "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/node": ">=13.7.0", - "long": "^5.0.0" - }, - "dependencies": { - "long": { - "version": "5.2.3", - "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", - "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" - } - } - }, - "proxy-from-env": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", - "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" - }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "requires": { - "safe-buffer": "^5.1.0" - } - }, - "react-is": { - "version": "16.13.1", - "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", - "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" - }, - "readable-stream": { - "version": "3.6.2", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", - "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "requires": { - "picomatch": "^2.2.1" - } - }, - "readonly-date": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", - "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" - }, - "rechoir": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", - "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", - "requires": { - "resolve": "^1.1.6" - } - }, - "regenerator-runtime": { - "version": "0.13.11", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", - "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" - }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" - }, - "resolve": { - "version": "1.22.2", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", - "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", - "requires": { - "is-core-module": "^2.11.0", - "path-parse": "^1.0.7", - "supports-preserve-symlinks-flag": "^1.0.0" - } - }, - "response-iterator": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", - "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "requires": { - "glob": "^7.1.3" - } - }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "ripemd160-min": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", - "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" - }, - "rlp": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", - "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", - "requires": { - "bn.js": "^5.2.0" - } - }, - "rpc-websockets": { - "version": "7.5.1", - "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", - "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", - "requires": { - "@babel/runtime": "^7.17.2", - "bufferutil": "^4.0.1", - "eventemitter3": "^4.0.7", - "utf-8-validate": "^5.0.2", - "uuid": "^8.3.2", - "ws": "^8.5.0" - }, - "dependencies": { - "ws": { - "version": "8.13.0", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", - "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", - "requires": {} - } - } + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@confio/ics23": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/@confio/ics23/-/ics23-0.6.8.tgz", + "integrity": "sha512-wB6uo+3A50m0sW/EWcU64xpV/8wShZ6bMTa7pF8eYsTrSkQA7oLUIJcs/wb8g4y2Oyq701BaGiO6n/ak5WXO1w==", + "requires": { + "@noble/hashes": "^1.0.0", + "protobufjs": "^6.8.8" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@coral-xyz/anchor": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/anchor/-/anchor-0.26.0.tgz", + "integrity": "sha512-PxRl+wu5YyptWiR9F2MBHOLLibm87Z4IMUBPreX+DYBtPM+xggvcPi0KAN7+kIL4IrIhXI8ma5V0MCXxSN1pHg==", + "requires": { + "@coral-xyz/borsh": "^0.26.0", + "@solana/web3.js": "^1.68.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^6.3.0", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } }, - "rxjs": { - "version": "7.8.1", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", - "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", - "requires": { - "tslib": "^2.1.0" - } + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + } + } + }, + "@coral-xyz/borsh": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.2.6.tgz", + "integrity": "sha512-y6nmHw1bFcJib7sMHsQPpC8r47xhqDZVvhUdna7NUPzpSbOZG6f46N21+aXsQ2w/tG8Ggls488J/ZmwbgVmyjg==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "@cosmjs/amino": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/amino/-/amino-0.30.1.tgz", + "integrity": "sha512-yNHnzmvAlkETDYIpeCTdVqgvrdt1qgkOXwuRVi8s27UKI5hfqyE9fJ/fuunXE6ZZPnKkjIecDznmuUOMrMvw4w==", + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1" + } + }, + "@cosmjs/crypto": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/crypto/-/crypto-0.30.1.tgz", + "integrity": "sha512-rAljUlake3MSXs9xAm87mu34GfBLN0h/1uPPV6jEwClWjNkAMotzjC0ab9MARy5FFAvYHL3lWb57bhkbt2GtzQ==", + "requires": { + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "@noble/hashes": "^1", + "bn.js": "^5.2.0", + "elliptic": "^6.5.4", + "libsodium-wrappers": "^0.7.6" + } + }, + "@cosmjs/encoding": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/encoding/-/encoding-0.30.1.tgz", + "integrity": "sha512-rXmrTbgqwihORwJ3xYhIgQFfMSrwLu1s43RIK9I8EBudPx3KmnmyAKzMOVsRDo9edLFNuZ9GIvysUCwQfq3WlQ==", + "requires": { + "base64-js": "^1.3.0", + "bech32": "^1.1.4", + "readonly-date": "^1.0.0" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" + } + } + }, + "@cosmjs/json-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/json-rpc/-/json-rpc-0.30.1.tgz", + "integrity": "sha512-pitfC/2YN9t+kXZCbNuyrZ6M8abnCC2n62m+JtU9vQUfaEtVsgy+1Fk4TRQ175+pIWSdBMFi2wT8FWVEE4RhxQ==", + "requires": { + "@cosmjs/stream": "^0.30.1", + "xstream": "^11.14.0" + } + }, + "@cosmjs/math": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/math/-/math-0.30.1.tgz", + "integrity": "sha512-yaoeI23pin9ZiPHIisa6qqLngfnBR/25tSaWpkTm8Cy10MX70UF5oN4+/t1heLaM6SSmRrhk3psRkV4+7mH51Q==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "@cosmjs/proto-signing": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/proto-signing/-/proto-signing-0.30.1.tgz", + "integrity": "sha512-tXh8pPYXV4aiJVhTKHGyeZekjj+K9s2KKojMB93Gcob2DxUjfKapFYBMJSgfKPuWUPEmyr8Q9km2hplI38ILgQ==", + "requires": { + "@cosmjs/amino": "^0.30.1", + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0" + } + }, + "@cosmjs/socket": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/socket/-/socket-0.30.1.tgz", + "integrity": "sha512-r6MpDL+9N+qOS/D5VaxnPaMJ3flwQ36G+vPvYJsXArj93BjgyFB7BwWwXCQDzZ+23cfChPUfhbINOenr8N2Kow==", + "requires": { + "@cosmjs/stream": "^0.30.1", + "isomorphic-ws": "^4.0.1", + "ws": "^7", + "xstream": "^11.14.0" + } + }, + "@cosmjs/stargate": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stargate/-/stargate-0.30.1.tgz", + "integrity": "sha512-RdbYKZCGOH8gWebO7r6WvNnQMxHrNXInY/gPHPzMjbQF6UatA6fNM2G2tdgS5j5u7FTqlCI10stNXrknaNdzog==", + "requires": { + "@confio/ics23": "^0.6.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/tendermint-rpc": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "cosmjs-types": "^0.7.1", + "long": "^4.0.0", + "protobufjs": "~6.11.3", + "xstream": "^11.14.0" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@cosmjs/stream": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/stream/-/stream-0.30.1.tgz", + "integrity": "sha512-Fg0pWz1zXQdoxQZpdHRMGvUH5RqS6tPv+j9Eh7Q953UjMlrwZVo0YFLC8OTf/HKVf10E4i0u6aM8D69Q6cNkgQ==", + "requires": { + "xstream": "^11.14.0" + } + }, + "@cosmjs/tendermint-rpc": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/tendermint-rpc/-/tendermint-rpc-0.30.1.tgz", + "integrity": "sha512-Z3nCwhXSbPZJ++v85zHObeUggrEHVfm1u18ZRwXxFE9ZMl5mXTybnwYhczuYOl7KRskgwlB+rID0WYACxj4wdQ==", + "requires": { + "@cosmjs/crypto": "^0.30.1", + "@cosmjs/encoding": "^0.30.1", + "@cosmjs/json-rpc": "^0.30.1", + "@cosmjs/math": "^0.30.1", + "@cosmjs/socket": "^0.30.1", + "@cosmjs/stream": "^0.30.1", + "@cosmjs/utils": "^0.30.1", + "axios": "^0.21.2", + "readonly-date": "^1.0.0", + "xstream": "^11.14.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@cosmjs/utils": { + "version": "0.30.1", + "resolved": "https://registry.npmjs.org/@cosmjs/utils/-/utils-0.30.1.tgz", + "integrity": "sha512-KvvX58MGMWh7xA+N+deCfunkA/ZNDvFLw4YbOmX3f/XBIkqrVY7qlotfy2aNb1kgp6h4B6Yc8YawJPDTfvWX7g==" + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@ethereumjs/common": { + "version": "2.6.5", + "resolved": "https://registry.npmjs.org/@ethereumjs/common/-/common-2.6.5.tgz", + "integrity": "sha512-lRyVQOeCDaIVtgfbowla32pzeDv2Obr8oR8Put5RdUBNRGr1VGPGQNGP6elWIpgK3YdpzqTOh4GyUGOureVeeA==", + "requires": { + "crc-32": "^1.2.0", + "ethereumjs-util": "^7.1.5" + } + }, + "@ethereumjs/tx": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/@ethereumjs/tx/-/tx-3.5.2.tgz", + "integrity": "sha512-gQDNJWKrSDGu2w7w0PzVXVBNMzb7wwdDOmOqczmhNjqFxFuIbhVJDwiGEnxFNC2/b8ifcZzY7MLcluizohRzNw==", + "requires": { + "@ethereumjs/common": "^2.6.4", + "ethereumjs-util": "^7.1.5" + } + }, + "@ethersproject/abi": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abi/-/abi-5.7.0.tgz", + "integrity": "sha512-351ktp42TiRcYB3H1OP8yajPeAQstMW/yCFokj/AthP9bLHzQFPlOrxOcwYEDkUAICmOHljvN4K39OMTMUa9RA==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/abstract-provider": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-provider/-/abstract-provider-5.7.0.tgz", + "integrity": "sha512-R41c9UkchKCpAqStMYUpdunjo3pkEvZC3FAwZn5S5MGbXoMQOHIdHItezTETxAO5bevtMApSyEhn9+CHcDsWBw==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0" + } + }, + "@ethersproject/abstract-signer": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/abstract-signer/-/abstract-signer-5.7.0.tgz", + "integrity": "sha512-a16V8bq1/Cz+TGCkE2OPMTOUDLS3grCpdjoJCYNnVBbdYEMSgKrU0+B90s8b6H+ByYTBZN7a3g76jdIJi7UfKQ==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/address": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/address/-/address-5.7.0.tgz", + "integrity": "sha512-9wYhYt7aghVGo758POM5nqcOMaE168Q6aRLJZwUmiqSrAungkG74gSSeKEIR7ukixesdRZGPgVqme6vmxs1fkA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/rlp": "^5.7.0" + } + }, + "@ethersproject/base64": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/base64/-/base64-5.7.0.tgz", + "integrity": "sha512-Dr8tcHt2mEbsZr/mwTPIQAf3Ai0Bks/7gTw9dSqk1mQvhW3XvRlmDJr/4n+wg1JmCl16NZue17CDh8xb/vZ0sQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0" + } + }, + "@ethersproject/basex": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/basex/-/basex-5.7.0.tgz", + "integrity": "sha512-ywlh43GwZLv2Voc2gQVTKBoVQ1mti3d8HK5aMxsfu/nRDnMmNqaSJ3r3n85HBByT8OpoY96SXM1FogC533T4zw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/properties": "^5.7.0" + } + }, + "@ethersproject/bignumber": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bignumber/-/bignumber-5.7.0.tgz", + "integrity": "sha512-n1CAdIHRWjSucQO3MC1zPSVgV/6dy/fjL9pMrPP9peL+QxEg9wOsVqwD4+818B6LUEtaXzVHQiuivzRoxPxUGw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "bn.js": "^5.2.1" + } + }, + "@ethersproject/bytes": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/bytes/-/bytes-5.7.0.tgz", + "integrity": "sha512-nsbxwgFXWh9NyYWo+U8atvmMsSdKJprTcICAkvbBffT75qDocbuggBU0SJiVK2MuTrp0q+xvLkTnGMPK1+uA9A==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/constants": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/constants/-/constants-5.7.0.tgz", + "integrity": "sha512-DHI+y5dBNvkpYUMiRQyxRBYBefZkJfo70VUkUAsRjcPs47muV9evftfZ0PJVCXYbAiCgght0DtcF9srFQmIgWA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0" + } + }, + "@ethersproject/contracts": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/contracts/-/contracts-5.7.0.tgz", + "integrity": "sha512-5GJbzEU3X+d33CdfPhcyS+z8MzsTrBGk/sc+G+59+tPa9yFkl6HQ9D6L0QMgNTA9q8dT0XKxxkyp883XsQvbbg==", + "requires": { + "@ethersproject/abi": "^5.7.0", + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/transactions": "^5.7.0" + } + }, + "@ethersproject/hash": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hash/-/hash-5.7.0.tgz", + "integrity": "sha512-qX5WrQfnah1EFnO5zJv1v46a8HW0+E5xuBBDTwMFZLuVTx0tbU2kkx15NqdjxecrLGatQN9FGQKpb1FKdHCt+g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/hdnode": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/hdnode/-/hdnode-5.7.0.tgz", + "integrity": "sha512-OmyYo9EENBPPf4ERhR7oj6uAtUAhYGqOnIS+jE5pTXvdKBS99ikzq1E7Iv0ZQZ5V36Lqx1qZLeak0Ra16qpeOg==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/json-wallets": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/json-wallets/-/json-wallets-5.7.0.tgz", + "integrity": "sha512-8oee5Xgu6+RKgJTkvEMl2wDgSPSAQ9MB/3JYjFV9jlKvcYHUXZC+cQp0njgmxdHkYWn8s6/IqIZYm0YWCjO/0g==", + "requires": { + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/pbkdf2": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "aes-js": "3.0.0", + "scrypt-js": "3.0.1" + } + }, + "@ethersproject/keccak256": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/keccak256/-/keccak256-5.7.0.tgz", + "integrity": "sha512-2UcPboeL/iW+pSg6vZ6ydF8tCnv3Iu/8tUmLLzWWGzxWKFFqOBQFLo6uLUv6BDrLgCDfN28RJ/wtByx+jZ4KBg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "js-sha3": "0.8.0" + } + }, + "@ethersproject/logger": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/logger/-/logger-5.7.0.tgz", + "integrity": "sha512-0odtFdXu/XHtjQXJYA3u9G0G8btm0ND5Cu8M7i5vhEcE8/HmF4Lbdqanwyv4uQTr2tx6b7fQRmgLrsnpQlmnig==" + }, + "@ethersproject/networks": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/networks/-/networks-5.7.1.tgz", + "integrity": "sha512-n/MufjFYv3yFcUyfhnXotyDlNdFb7onmkSy8aQERi2PjNcnWQ66xXxa3XlS8nCcA8aJKJjIIMNJTC7tu80GwpQ==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/pbkdf2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/pbkdf2/-/pbkdf2-5.7.0.tgz", + "integrity": "sha512-oR/dBRZR6GTyaofd86DehG72hY6NpAjhabkhxgr3X2FpJtJuodEl2auADWBZfhDHgVCbu3/H/Ocq2uC6dpNjjw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/sha2": "^5.7.0" + } + }, + "@ethersproject/properties": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/properties/-/properties-5.7.0.tgz", + "integrity": "sha512-J87jy8suntrAkIZtecpxEPxY//szqr1mlBaYlQ0r4RCaiD2hjheqF9s1LVE8vVuJCXisjIP+JgtK/Do54ej4Sw==", + "requires": { + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/providers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/@ethersproject/providers/-/providers-5.7.2.tgz", + "integrity": "sha512-g34EWZ1WWAVgr4aptGlVBF8mhl3VWjv+8hoAnzStu8Ah22VHBsuGzP17eb6xDVRzw895G4W7vvx60lFFur/1Rg==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/base64": "^5.7.0", + "@ethersproject/basex": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/networks": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/web": "^5.7.0", + "bech32": "1.1.4", + "ws": "7.4.6" + }, + "dependencies": { + "bech32": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-1.1.4.tgz", + "integrity": "sha512-s0IrSOzLlbvX7yp4WBfPITzpAU8sqQcpsmwXDiKwrG4r491vwCO/XpejasRNl0piBMe/DvP4Tz0mIS/X1DPJBQ==" }, - "scrypt-js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", - "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + "ws": { + "version": "7.4.6", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.6.tgz", + "integrity": "sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==", + "requires": {} + } + } + }, + "@ethersproject/random": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/random/-/random-5.7.0.tgz", + "integrity": "sha512-19WjScqRA8IIeWclFme75VMXSBvi4e6InrUNuaR4s5pTF2qNhcGdCUwdxUVGtDDqC00sDLCO93jPQoDUH4HVmQ==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/rlp": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/rlp/-/rlp-5.7.0.tgz", + "integrity": "sha512-rBxzX2vK8mVF7b0Tol44t5Tb8gomOHkj5guL+HhzQ1yBh/ydjGnpw6at+X6Iw0Kp3OzzzkcKp8N9r0W4kYSs9w==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/sha2": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/sha2/-/sha2-5.7.0.tgz", + "integrity": "sha512-gKlH42riwb3KYp0reLsFTokByAKoJdgFCwI+CCiX/k+Jm2mbNs6oOaCjYQSlI1+XBVejwH2KrmCbMAT/GnRDQw==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "hash.js": "1.1.7" + } + }, + "@ethersproject/signing-key": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/signing-key/-/signing-key-5.7.0.tgz", + "integrity": "sha512-MZdy2nL3wO0u7gkB4nA/pEf8lu1TlFswPNmy8AiYkfKTdO6eXBJyUdmHO/ehm/htHw9K/qF8ujnTyUAD+Ry54Q==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "bn.js": "^5.2.1", + "elliptic": "6.5.4", + "hash.js": "1.1.7" + } + }, + "@ethersproject/solidity": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/solidity/-/solidity-5.7.0.tgz", + "integrity": "sha512-HmabMd2Dt/raavyaGukF4XxizWKhKQ24DoLtdNbBmNKUOPqwjsKQSdV9GQtj9CBEea9DlzETlVER1gYeXXBGaA==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/sha2": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/strings": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/strings/-/strings-5.7.0.tgz", + "integrity": "sha512-/9nu+lj0YswRNSH0NXYqrh8775XNyEdUQAuf3f+SmOrnVewcJ5SBNAjF7lpgehKi4abvNNXyf+HX86czCdJ8Mg==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/transactions": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/transactions/-/transactions-5.7.0.tgz", + "integrity": "sha512-kmcNicCp1lp8qanMTC3RIikGgoJ80ztTyvtsFvCYpSCfkjhD0jZ2LOrnbcuxuToLIUYYf+4XwD1rP+B/erDIhQ==", + "requires": { + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/rlp": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0" + } + }, + "@ethersproject/units": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/units/-/units-5.7.0.tgz", + "integrity": "sha512-pD3xLMy3SJu9kG5xDGI7+xhTEmGXlEqXU4OfNapmfnxLVY4EMSSRp7j1k7eezutBPH7RBN/7QPnwR7hzNlEFeg==", + "requires": { + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/constants": "^5.7.0", + "@ethersproject/logger": "^5.7.0" + } + }, + "@ethersproject/wallet": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wallet/-/wallet-5.7.0.tgz", + "integrity": "sha512-MhmXlJXEJFBFVKrDLB4ZdDzxcBxQ3rLyCkhNqVu3CDYvR97E+8r01UgrI+TI99Le+aYm/in/0vp86guJuM7FCA==", + "requires": { + "@ethersproject/abstract-provider": "^5.7.0", + "@ethersproject/abstract-signer": "^5.7.0", + "@ethersproject/address": "^5.7.0", + "@ethersproject/bignumber": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/hdnode": "^5.7.0", + "@ethersproject/json-wallets": "^5.7.0", + "@ethersproject/keccak256": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/random": "^5.7.0", + "@ethersproject/signing-key": "^5.7.0", + "@ethersproject/transactions": "^5.7.0", + "@ethersproject/wordlists": "^5.7.0" + } + }, + "@ethersproject/web": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/@ethersproject/web/-/web-5.7.1.tgz", + "integrity": "sha512-Gueu8lSvyjBWL4cYsWsjh6MtMwM0+H4HvqFPZfB6dV8ctbP9zFAO73VG1cMWae0FLPCtz0peKPpZY8/ugJJX2w==", + "requires": { + "@ethersproject/base64": "^5.7.0", + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@ethersproject/wordlists": { + "version": "5.7.0", + "resolved": "https://registry.npmjs.org/@ethersproject/wordlists/-/wordlists-5.7.0.tgz", + "integrity": "sha512-S2TFNJNfHWVHNE6cNDjbVlZ6MgE17MIxMbMg2zv3wn+3XSJGosL1m9ZVv3GXCf/2ymSsQ+hRI5IzoMJTG6aoVA==", + "requires": { + "@ethersproject/bytes": "^5.7.0", + "@ethersproject/hash": "^5.7.0", + "@ethersproject/logger": "^5.7.0", + "@ethersproject/properties": "^5.7.0", + "@ethersproject/strings": "^5.7.0" + } + }, + "@graphql-typed-document-node/core": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/@graphql-typed-document-node/core/-/core-3.2.0.tgz", + "integrity": "sha512-mB9oAsNCm9aM3/SOv4YtBMqZbYj10R7dkq8byBqxGY/ncFwhf2oQzMV+LCRlWoDSEBJ3COiR1yeDvMtsoOsuFQ==", + "requires": {} + }, + "@improbable-eng/grpc-web": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.15.0.tgz", + "integrity": "sha512-ERft9/0/8CmYalqOVnJnpdDry28q+j+nAlFFARdjyxXDJ+Mhgv9+F600QC8BR9ygOfrXRlAk6CvST2j+JCpQPg==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "@injectivelabs/core-proto-ts": { + "version": "0.0.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/core-proto-ts/-/core-proto-ts-0.0.12.tgz", + "integrity": "sha512-axdL+KWuv4aORIdYqJQy5k9H+bPsi5Y4KWNcYPxrFQ0FAu+sjpvm5PmbIzBSgv/hnIB2cHcLuKvE3BtEa3vJ/w==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/exceptions": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/exceptions/-/exceptions-1.10.12.tgz", + "integrity": "sha512-9x8WDRi/K6JRMRAGJblbS0wQKckIX69CPU61ea22RprkO0sPazxpzp56txgHj0uHYkq2bg/exrX8N6UxdrNCMg==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/ts-types": "^1.10.12", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/grpc-web": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web/-/grpc-web-0.0.1.tgz", + "integrity": "sha512-Pu5YgaZp+OvR5UWfqbrPdHer3+gDf+b5fQoY+t2VZx1IAVHX8bzbN9EreYTvTYtFeDpYRWM8P7app2u4EX5wTw==", + "requires": { + "browser-headers": "^0.4.1" + } + }, + "@injectivelabs/grpc-web-node-http-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-node-http-transport/-/grpc-web-node-http-transport-0.0.2.tgz", + "integrity": "sha512-rpyhXLiGY/UMs6v6YmgWHJHiO9l0AgDyVNv+jcutNVt4tQrmNvnpvz2wCAGOFtq5LuX/E9ChtTVpk3gWGqXcGA==", + "requires": {} + }, + "@injectivelabs/grpc-web-react-native-transport": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/@injectivelabs/grpc-web-react-native-transport/-/grpc-web-react-native-transport-0.0.2.tgz", + "integrity": "sha512-mk+aukQXnYNgPsPnu3KBi+FD0ZHQpazIlaBZ2jNZG7QAVmxTWtv3R66Zoq99Wx2dnE946NsZBYAoa0K5oSjnow==", + "requires": {} + }, + "@injectivelabs/indexer-proto-ts": { + "version": "1.10.8-rc.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/indexer-proto-ts/-/indexer-proto-ts-1.10.8-rc.4.tgz", + "integrity": "sha512-IwbepTfsHHAv3Z36As6yH/+HIplOEpUu6SFHBCVgdSIaQ8GuvTib4HETiVnV4mjYqoyVgWs+zLSAfih46rdMJQ==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/mito-proto-ts": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/@injectivelabs/mito-proto-ts/-/mito-proto-ts-1.0.4.tgz", + "integrity": "sha512-8raVmZnaXVbpikMTmnc+OtViBPzgyx2ilezUTZFCNcQzZM01lbJlpd0NbF6K5tG76eJ3Wjwj+YpAdRPNuayZ4A==", + "requires": { + "@injectivelabs/grpc-web": "^0.0.1", + "google-protobuf": "^3.14.0", + "protobufjs": "^7.0.0", + "rxjs": "^7.4.0" + } + }, + "@injectivelabs/networks": { + "version": "1.10.7", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.7.tgz", + "integrity": "sha512-qnU3A7FgTVi4bGEMaSsSIN2wTBhKZfV+3fiwU09aX8ZNcWAilMx8d/mlE1naZFAHs7Kf5hFBxzgeSRZa1GJqiA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/sdk-ts": { + "version": "1.10.47", + "resolved": "https://registry.npmjs.org/@injectivelabs/sdk-ts/-/sdk-ts-1.10.47.tgz", + "integrity": "sha512-G11Cdf5iO6is0qWzQRdfiUJLI8IPF4VtD5mVfBwnakrk78syN/Dy492trL7hispDSQaCJaP6a/fa6HnMPCsvzA==", + "requires": { + "@apollo/client": "^3.5.8", + "@cosmjs/amino": "^0.30.1", + "@cosmjs/proto-signing": "^0.30.1", + "@cosmjs/stargate": "^0.30.1", + "@ethersproject/bytes": "^5.7.0", + "@injectivelabs/core-proto-ts": "^0.0.12", + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/grpc-web": "^0.0.1", + "@injectivelabs/grpc-web-node-http-transport": "^0.0.2", + "@injectivelabs/grpc-web-react-native-transport": "^0.0.2", + "@injectivelabs/indexer-proto-ts": "1.10.8-rc.4", + "@injectivelabs/mito-proto-ts": "1.0.4", + "@injectivelabs/networks": "^1.10.7", + "@injectivelabs/test-utils": "^1.10.2", + "@injectivelabs/token-metadata": "^1.10.25", + "@injectivelabs/ts-types": "^1.10.4", + "@injectivelabs/utils": "^1.10.5", + "@metamask/eth-sig-util": "^4.0.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip39": "^3.0.4", + "cosmjs-types": "^0.7.1", + "eth-crypto": "^2.6.0", + "ethereumjs-util": "^7.1.4", + "ethers": "^5.7.2", + "google-protobuf": "^3.21.0", + "graphql": "^16.3.0", + "http-status-codes": "^2.2.0", + "js-sha3": "^0.8.0", + "jscrypto": "^1.0.3", + "keccak256": "^1.0.6", + "link-module-alias": "^1.2.0", + "rxjs": "^7.8.0", + "secp256k1": "^4.0.3", + "shx": "^0.3.2", + "snakecase-keys": "^5.4.1" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + } + } + }, + "@injectivelabs/test-utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/test-utils/-/test-utils-1.10.12.tgz", + "integrity": "sha512-IFqlEeFXXf6V1NEt65W2SfAN5/73lK4BmTrfeOQANfOFa3TUAJcPuU8rhx4jhi801cZLV3R9D/iQdgE1tbUK9A==", + "requires": { + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@injectivelabs/token-metadata": { + "version": "1.10.42", + "resolved": "https://registry.npmjs.org/@injectivelabs/token-metadata/-/token-metadata-1.10.42.tgz", + "integrity": "sha512-j5S+f05/Xtcqbg7pPHRI6hjJpdjIIuMHo16nLecU86mEHhXOzdJzhi/yzrtW7dstlgshyUJKRPZ7HaiOvZNrjA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/networks": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "@types/lodash.values": "^4.3.6", + "copyfiles": "^2.4.1", + "jsonschema": "^1.4.0", + "link-module-alias": "^1.2.0", + "lodash": "^4.17.21", + "lodash.values": "^4.3.0", + "shx": "^0.3.2" + }, + "dependencies": { + "@injectivelabs/networks": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/networks/-/networks-1.10.12.tgz", + "integrity": "sha512-tTHyLls1Nik5QTs/S03qqG2y/ITvNwI8CJOQbMmmsr1CL2CdjJBtzRYn9Dyx2p8XgzRFf9hmlybpe20tq9O3SA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "@injectivelabs/utils": "^1.10.12", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } + "@injectivelabs/utils": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.12.tgz", + "integrity": "sha512-c8al79nxIJgV1cBAdW2TPDGldj/8gm5k0h5TIN/AJs8/AeIjpTwwVGfLY3QvPOpRsxuQ9CjBkTXrAcSL1wwkcw==", + "requires": { + "@injectivelabs/exceptions": "^1.10.12", + "@injectivelabs/ts-types": "^1.10.12", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + } }, - "serialize-javascript": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", - "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", - "requires": { - "randombytes": "^2.1.0" - } + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@injectivelabs/ts-types": { + "version": "1.10.12", + "resolved": "https://registry.npmjs.org/@injectivelabs/ts-types/-/ts-types-1.10.12.tgz", + "integrity": "sha512-Z/qeZ9jwhqpreXFNiox6NrXLiMyhvMEd79RWMZ9lVOLjTeXRTUh/Vl7ry7KBE2OypsPPTMUP+k7Dhsn0ufFwgw==", + "requires": { + "link-module-alias": "^1.2.0", + "shx": "^0.3.2" + } + }, + "@injectivelabs/utils": { + "version": "1.10.5", + "resolved": "https://registry.npmjs.org/@injectivelabs/utils/-/utils-1.10.5.tgz", + "integrity": "sha512-9t+9xOh8wQWs/kuUrfWjGAJMVbtgwu20AWdDQl5qeoNxstE7uKTM0hJWCn+OhF5WYloZH7kwfqEUSNZ84G/VpA==", + "requires": { + "@injectivelabs/exceptions": "^1.10.5", + "@injectivelabs/ts-types": "^1.10.4", + "axios": "^0.21.1", + "bignumber.js": "^9.0.1", + "http-status-codes": "^2.2.0", + "link-module-alias": "^1.2.0", + "shx": "^0.3.2", + "snakecase-keys": "^5.1.2", + "store2": "^2.12.0" + }, + "dependencies": { + "axios": { + "version": "0.21.4", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", + "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", + "requires": { + "follow-redirects": "^1.14.0" + } + } + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.1.tgz", + "integrity": "sha512-dSYZh7HhCDtCKm4QakX0xFpsRDqjjtZf/kjI/v3T3Nwt5r8/qz/M19F9ySyOqU94SXBmeG9ttTul+YnR4LOxFA==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.15", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.15.tgz", + "integrity": "sha512-eF2rxCRulEKXHTRiDrDy6erMYWqNw4LPdQ8UQA4huuxaQsVeRPFl2oM8oDGxMFhJUWZf9McpLtJasDDZb/Bpeg==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@metamask/eth-sig-util": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@metamask/eth-sig-util/-/eth-sig-util-4.0.1.tgz", + "integrity": "sha512-tghyZKLHZjcdlDqCA3gNZmLeR0XvOE9U1qoQO9ohyAZT6Pya+H9vkBPcsyXytmYLNgVoin7CKCmweo/R43V+tQ==", + "requires": { + "ethereumjs-abi": "^0.6.8", + "ethereumjs-util": "^6.2.1", + "ethjs-util": "^0.1.6", + "tweetnacl": "^1.0.3", + "tweetnacl-util": "^0.15.1" + }, + "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "@mysten/bcs": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/@mysten/bcs/-/bcs-0.7.1.tgz", + "integrity": "sha512-wFPb8bkhwrbiStfZMV5rFM7J+umpke59/dNjDp+UYJKykNlW23LCk2ePyEUvGdb62HGJM1jyOJ8g4egE3OmdKA==", + "requires": { + "bs58": "^5.0.0" + }, + "dependencies": { + "base-x": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-4.0.0.tgz", + "integrity": "sha512-FuwxlW4H5kh37X/oW59pwTzzTKRzfrrQwhmyspRM7swOEZcHtDZSCt45U6oKgtuFE+WYPblePMVIPR4RZrh/hw==" }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } + "bs58": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-5.0.0.tgz", + "integrity": "sha512-r+ihvQJvahgYT50JD05dyJNKlmmSlMoOGwn1lCcEzanPglg7TxYjioQUYehQ9mAR/+hOSd2jRc/Z2y5UxBymvQ==", + "requires": { + "base-x": "^4.0.0" + } + } + } + }, + "@mysten/sui.js": { + "version": "0.32.2", + "resolved": "https://registry.npmjs.org/@mysten/sui.js/-/sui.js-0.32.2.tgz", + "integrity": "sha512-/Hm4xkGolJhqj8FvQr7QSHDTlxIvL52mtbOao9f75YjrBh7y1Uh9kbJSY7xiTF1NY9sv6p5hUVlYRJuM0Hvn9A==", + "requires": { + "@mysten/bcs": "0.7.1", + "@noble/curves": "^1.0.0", + "@noble/hashes": "^1.3.0", + "@scure/bip32": "^1.3.0", + "@scure/bip39": "^1.2.0", + "@suchipi/femver": "^1.0.0", + "jayson": "^4.0.0", + "rpc-websockets": "^7.5.1", + "superstruct": "^1.0.3", + "tweetnacl": "^1.0.3" + } + }, + "@noble/curves": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@noble/curves/-/curves-1.0.0.tgz", + "integrity": "sha512-2upgEu0iLiDVDZkNLeFV2+ht0BAVgQnEmCk6JsOch9Rp8xfkMCbvbAZlA2pBHQc73dbl+vFOXfqkf4uemdn0bw==", + "requires": { + "@noble/hashes": "1.3.0" + } + }, + "@noble/ed25519": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/@noble/ed25519/-/ed25519-1.7.3.tgz", + "integrity": "sha512-iR8GBkDt0Q3GyaVcIu7mSsVIqnFbkbRzGLWlvhwunacoLwt4J3swfKhfaM6rN6WY+TBGoYT1GtT1mIh2/jGbRQ==" + }, + "@noble/hashes": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.3.0.tgz", + "integrity": "sha512-ilHEACi9DwqJB0pw7kv+Apvh50jiiSyR/cQ3y4W7lOR5mhvn/50FLUfsnfJz0BDZtl/RR16kXvptiv6q1msYZg==" + }, + "@noble/secp256k1": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/@noble/secp256k1/-/secp256k1-1.7.1.tgz", + "integrity": "sha512-hOUk6AyBFmqVrv7k5WAw/LpszxVbj9gGN4JRkIX52fdFAj1UA61KXmZDvqVEm+pOyec3+fIeZB02LYa/pWOArw==" + }, + "@project-serum/anchor": { + "version": "0.25.0", + "resolved": "https://registry.npmjs.org/@project-serum/anchor/-/anchor-0.25.0.tgz", + "integrity": "sha512-E6A5Y/ijqpfMJ5psJvbw0kVTzLZFUcOFgs6eSM2M2iWE1lVRF18T6hWZVNl6zqZsoz98jgnNHtVGJMs+ds9A7A==", + "requires": { + "@project-serum/borsh": "^0.2.5", + "@solana/web3.js": "^1.36.0", + "base64-js": "^1.5.1", + "bn.js": "^5.1.2", + "bs58": "^4.0.1", + "buffer-layout": "^1.2.2", + "camelcase": "^5.3.1", + "cross-fetch": "^3.1.5", + "crypto-hash": "^1.3.0", + "eventemitter3": "^4.0.7", + "js-sha256": "^0.9.0", + "pako": "^2.0.3", + "snake-case": "^3.0.4", + "superstruct": "^0.15.4", + "toml": "^3.0.0" + }, + "dependencies": { + "superstruct": { + "version": "0.15.5", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.15.5.tgz", + "integrity": "sha512-4AOeU+P5UuE/4nOUkmcQdW5y7i9ndt1cQd/3iUe+LTz3RxESf/W/5lg4B74HbDMMv8PHnPnGCQFH45kBcrQYoQ==" + } + } + }, + "@project-serum/borsh": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/@project-serum/borsh/-/borsh-0.2.5.tgz", + "integrity": "sha512-UmeUkUoKdQ7rhx6Leve1SssMR/Ghv8qrEiyywyxSWg7ooV7StdpPBhciiy5eB3T0qU1BXvdRNC8TdrkxK7WC5Q==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + }, + "@protobufjs/aspromise": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", + "integrity": "sha512-j+gKExEuLmKwvz3OgROXtrJ2UG2x8Ch2YZUxahh+s1F2HZ+wAceUNLkvy6zKCPVRkU++ZWQrdxsUeQXmcg4uoQ==" + }, + "@protobufjs/base64": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", + "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" + }, + "@protobufjs/codegen": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", + "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" + }, + "@protobufjs/eventemitter": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", + "integrity": "sha512-j9ednRT81vYJ9OfVuXG6ERSTdEL1xVsNgqpkxMsbIabzSo3goCjDIveeGv5d03om39ML71RdmrGNjG5SReBP/Q==" + }, + "@protobufjs/fetch": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", + "integrity": "sha512-lljVXpqXebpsijW71PZaCYeIcE5on1w5DlQy5WH6GLbFryLUrBD4932W/E2BSpfRJWseIL4v/KPgBFxDOIdKpQ==", + "requires": { + "@protobufjs/aspromise": "^1.1.1", + "@protobufjs/inquire": "^1.1.0" + } + }, + "@protobufjs/float": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", + "integrity": "sha512-Ddb+kVXlXst9d+R9PfTIxh1EdNkgoRe5tOX6t01f1lYWOvJnSPDBlG241QLzcyPdoNTsblLUdujGSE4RzrTZGQ==" + }, + "@protobufjs/inquire": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", + "integrity": "sha512-kdSefcPdruJiFMVSbn801t4vFK7KB/5gd2fYvrxhuJYg8ILrmn9SKSX2tZdV6V+ksulWqS7aXjBcRXl3wHoD9Q==" + }, + "@protobufjs/path": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", + "integrity": "sha512-6JOcJ5Tm08dOHAbdR3GrvP+yUUfkjG5ePsHYczMFLq3ZmMkAD98cDgcT2iA1lJ9NVwFd4tH/iSSoe44YWkltEA==" + }, + "@protobufjs/pool": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", + "integrity": "sha512-0kELaGSIDBKvcgS4zkjz1PeddatrjYcmMWOlAuAPwAeccUrPHdUqo/J6LiymHHEiJT5NrF1UVwxY14f+fy4WQw==" + }, + "@protobufjs/utf8": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", + "integrity": "sha512-Vvn3zZrhQZkkBE8LSuW3em98c0FwgO4nxzv6OdSxPKJIEKY2bGbHn+mhGIPerzI4twdxaP8/0+06HBpwf345Lw==" + }, + "@pythnetwork/client": { + "version": "2.17.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/client/-/client-2.17.0.tgz", + "integrity": "sha512-hv285vehmLH6N762Z4jqvPTM+hCYnXQaUp6DMgLUpDHvE0mTbwW9PvlxYoUJZGtyeCDkgn9HrTWXPtnaXTRr+Q==", + "requires": { + "@coral-xyz/anchor": "^0.26.0", + "@coral-xyz/borsh": "^0.26.0", + "buffer": "^6.0.1" + }, + "dependencies": { + "@coral-xyz/borsh": { + "version": "0.26.0", + "resolved": "https://registry.npmjs.org/@coral-xyz/borsh/-/borsh-0.26.0.tgz", + "integrity": "sha512-uCZ0xus0CszQPHYfWAqKS5swS1UxvePu83oOF+TWpUkedsNlg6p2p4azxZNSSqwXb9uXMFgxhuMBX9r3Xoi0vQ==", + "requires": { + "bn.js": "^5.1.2", + "buffer-layout": "^1.2.0" + } + } + } + }, + "@pythnetwork/price-service-client": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-client/-/price-service-client-1.4.0.tgz", + "integrity": "sha512-ibFxczDll/GdXX3jT7YB7+tbxyoXisop7EWXebaBjJqvc+OTctVNmJHCjlz4goDy5l1IDDsxEEYJyjckGsLjVA==", + "requires": { + "@pythnetwork/price-service-sdk": "*", + "@types/ws": "^8.5.3", + "axios": "^1.2.5", + "axios-retry": "^3.4.0", + "isomorphic-ws": "^4.0.1", + "ts-log": "^2.2.4", + "ws": "^8.6.0" + }, + "dependencies": { + "@types/ws": { + "version": "8.5.4", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.4.tgz", + "integrity": "sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==", + "requires": { + "@types/node": "*" + } }, - "sha3": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", - "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", - "requires": { - "buffer": "6.0.3" - } + "axios": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-1.4.0.tgz", + "integrity": "sha512-S4XCWMEmzvo64T9GfvQDOXgYRDJ/wsSZc7Jvdgx5u1sd0JwsuPLqb3SYmusag+edF6ziyMensPVqLTSc1PiSEA==", + "requires": { + "follow-redirects": "^1.15.0", + "form-data": "^4.0.0", + "proxy-from-env": "^1.1.0" + } }, - "shelljs": { - "version": "0.8.5", - "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", - "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", - "requires": { - "glob": "^7.0.0", - "interpret": "^1.0.0", - "rechoir": "^0.6.2" - } + "ws": { + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + } + } + }, + "@pythnetwork/price-service-sdk": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@pythnetwork/price-service-sdk/-/price-service-sdk-1.2.0.tgz", + "integrity": "sha512-h4HcUwBPFEZwa5nLMTz9YnwdLE5m+Bfctzqbj09vpSJo2DyPHCyEXScFUuizWBbfofxB/pF+OnZXjU3pJxtm/w==" + }, + "@scure/base": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@scure/base/-/base-1.1.1.tgz", + "integrity": "sha512-ZxOhsSyxYwLJj3pLZCefNitxsj093tb2vq90mp2txoYeBqbcjDjqFhyM8eUjq/uFm6zJ+mUuqxlS2FkuSY1MTA==" + }, + "@scure/bip32": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@scure/bip32/-/bip32-1.3.0.tgz", + "integrity": "sha512-bcKpo1oj54hGholplGLpqPHRbIsnbixFtc06nwuNM5/dwSXOq/AAYoIBRsBmnZJSdfeNW5rnff7NTAz3ZCqR9Q==", + "requires": { + "@noble/curves": "~1.0.0", + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@scure/bip39": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.2.0.tgz", + "integrity": "sha512-SX/uKq52cuxm4YFXWFaVByaSHJh2w3BnokVSeUJVCv6K7WulT9u2BuNRBhuFl8vAuYnzx9bEu9WgpcNYTrYieg==", + "requires": { + "@noble/hashes": "~1.3.0", + "@scure/base": "~1.1.0" + } + }, + "@solana/buffer-layout": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout/-/buffer-layout-4.0.1.tgz", + "integrity": "sha512-E1ImOIAD1tBZFRdjeM4/pzTiTApC0AOBGwyAMS4fwIodCWArzJ3DWdoh8cKxeFM2fElkxBh2Aqts1BPC373rHA==", + "requires": { + "buffer": "~6.0.3" + } + }, + "@solana/buffer-layout-utils": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/@solana/buffer-layout-utils/-/buffer-layout-utils-0.2.0.tgz", + "integrity": "sha512-szG4sxgJGktbuZYDg2FfNmkMi0DYQoVjN2h7ta1W1hPrwzarcFLBq9UpX1UjNXsNpT9dn+chgprtWGioUAr4/g==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/web3.js": "^1.32.0", + "bigint-buffer": "^1.1.5", + "bignumber.js": "^9.0.1" + } + }, + "@solana/spl-token": { + "version": "0.3.7", + "resolved": "https://registry.npmjs.org/@solana/spl-token/-/spl-token-0.3.7.tgz", + "integrity": "sha512-bKGxWTtIw6VDdCBngjtsGlKGLSmiu/8ghSt/IOYJV24BsymRbgq7r12GToeetpxmPaZYLddKwAz7+EwprLfkfg==", + "requires": { + "@solana/buffer-layout": "^4.0.0", + "@solana/buffer-layout-utils": "^0.2.0", + "buffer": "^6.0.3" + } + }, + "@solana/web3.js": { + "version": "1.75.0", + "resolved": "https://registry.npmjs.org/@solana/web3.js/-/web3.js-1.75.0.tgz", + "integrity": "sha512-rHQgdo1EWfb+nPUpHe4O7i8qJPELHKNR5PAZRK+a7XxiykqOfbaAlPt5boDWAGPnYbSv0ziWZv5mq9DlFaQCxg==", + "requires": { + "@babel/runtime": "^7.12.5", + "@noble/ed25519": "^1.7.0", + "@noble/hashes": "^1.1.2", + "@noble/secp256k1": "^1.6.3", + "@solana/buffer-layout": "^4.0.0", + "agentkeepalive": "^4.2.1", + "bigint-buffer": "^1.1.5", + "bn.js": "^5.0.0", + "borsh": "^0.7.0", + "bs58": "^4.0.1", + "buffer": "6.0.3", + "fast-stable-stringify": "^1.0.0", + "jayson": "^3.4.4", + "node-fetch": "^2.6.7", + "rpc-websockets": "^7.5.1", + "superstruct": "^0.14.2" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" }, - "shx": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", - "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", - "requires": { - "minimist": "^1.2.3", - "shelljs": "^0.8.5" - } + "jayson": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-3.7.0.tgz", + "integrity": "sha512-tfy39KJMrrXJ+mFcMpxwBvFDetS8LAID93+rycFglIQM4kl3uNR3W4lBLE/FFhsoUCEox5Dt2adVpDm/XtebbQ==", + "requires": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "lodash": "^4.17.20", + "uuid": "^8.3.2", + "ws": "^7.4.5" + } }, - "snake-case": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", - "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", - "requires": { - "dot-case": "^3.0.4", - "tslib": "^2.0.3" - } + "superstruct": { + "version": "0.14.2", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-0.14.2.tgz", + "integrity": "sha512-nPewA6m9mR3d6k7WkZ8N8zpTWfenFH3q9pA2PkuiZxINr9DKB2+40wEQf0ixn8VaGuJ78AB6iWOtStI+/4FKZQ==" + } + } + }, + "@suchipi/femver": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/@suchipi/femver/-/femver-1.0.0.tgz", + "integrity": "sha512-bprE8+K5V+DPX7q2e2K57ImqNBdfGHDIWaGI5xHxZoxbKOuQZn4wzPiUxOAHnsUr3w3xHrWXwN7gnG/iIuEMIg==" + }, + "@terra-money/legacy.proto": { + "version": "npm:@terra-money/terra.proto@0.1.7", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-0.1.7.tgz", + "integrity": "sha512-NXD7f6pQCulvo6+mv6MAPzhOkUzRjgYVuHZE/apih+lVnPG5hDBU0rRYnOGGofwvKT5/jQoOENnFn/gioWWnyQ==", + "requires": { + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@terra-money/terra.js": { + "version": "3.1.8", + "resolved": "https://registry.npmjs.org/@terra-money/terra.js/-/terra.js-3.1.8.tgz", + "integrity": "sha512-Cd/fh4MswT00fDGVckoZ0cm77EpIy4+CjSDO0RqZ3Qfp4CJBp7sWTLRNsyzUWjdYOT5iTx+1wOMCYbbyKo6LAw==", + "requires": { + "@classic-terra/terra.proto": "^1.1.0", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.27.2", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "decimal.js": "^10.2.1", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.9" + }, + "dependencies": { + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + } + } + }, + "@terra-money/terra.proto": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@terra-money/terra.proto/-/terra.proto-2.1.0.tgz", + "integrity": "sha512-rhaMslv3Rkr+QsTQEZs64FKA4QlfO0DfQHaR6yct/EovenMkibDEQ63dEL6yJA6LCaEQGYhyVB9JO9pTUA8ybw==", + "requires": { + "@improbable-eng/grpc-web": "^0.14.1", + "google-protobuf": "^3.17.3", + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "@improbable-eng/grpc-web": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@improbable-eng/grpc-web/-/grpc-web-0.14.1.tgz", + "integrity": "sha512-XaIYuunepPxoiGVLLHmlnVminUGzBTnXr8Wv7khzmLWbNw4TCwJKX09GSMJlKhu/TRk6gms0ySFxewaETSBqgw==", + "requires": { + "browser-headers": "^0.4.1" + } }, - "snakecase-keys": { - "version": "5.4.5", - "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", - "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", - "requires": { - "map-obj": "^4.1.0", - "snake-case": "^3.0.4", - "type-fest": "^2.5.2" - } + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "@types/bn.js": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-5.1.1.tgz", + "integrity": "sha512-qNrYbZqMx0uJAfKnKclPh+dTwK33KfLHYqtyODwd5HnXOjnkhc4qgn3BrK6RWyGZm5+sIFE7Q7Vz6QQtJB7w7g==", + "requires": { + "@types/node": "*" + } + }, + "@types/chai": { + "version": "4.3.5", + "resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.5.tgz", + "integrity": "sha512-mEo1sAde+UCE6b2hxn332f1g1E8WfYRu6p5SvTKr2ZKC1f7gFJXk4h5PyGP9Dt6gCaG8y8XhwnXWC6Iy2cmBng==", + "dev": true + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/json5": { + "version": "0.0.29", + "resolved": "https://registry.npmjs.org/@types/json5/-/json5-0.0.29.tgz", + "integrity": "sha512-dRLjCWHYg4oaA77cxO64oO+7JwCwnIzkZPdrrC71jQmQtlhM556pwKo5bUzqvZndkVbeFLIIi+9TC40JNF5hNQ==", + "optional": true + }, + "@types/lodash": { + "version": "4.14.194", + "resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.14.194.tgz", + "integrity": "sha512-r22s9tAS7imvBt2lyHC9B8AGwWnXaYb1tY09oyLkXDs4vArpYJzw09nj8MLx5VfciBPGIb+ZwG0ssYnEPJxn/g==" + }, + "@types/lodash.values": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/@types/lodash.values/-/lodash.values-4.3.7.tgz", + "integrity": "sha512-Moex9/sWxtKEa+BKiH5zvmhfcieDlcz4wRxMhO/oJ2qOKUdujoU6dQjUTxWA8jwEREpHXmiY4HCwNRpycW8JQA==", + "requires": { + "@types/lodash": "*" + } + }, + "@types/long": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.2.tgz", + "integrity": "sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==" + }, + "@types/mocha": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-10.0.1.tgz", + "integrity": "sha512-/fvYntiO1GeICvqbQ3doGDIP97vWmvFt83GKguJ6prmQM2iXZfFcq6YE8KteFyRtX2/h5Hf91BYvPodJKFYv5Q==", + "dev": true + }, + "@types/node": { + "version": "18.16.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.16.3.tgz", + "integrity": "sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==" + }, + "@types/pbkdf2": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@types/pbkdf2/-/pbkdf2-3.1.0.tgz", + "integrity": "sha512-Cf63Rv7jCQ0LaL8tNXmEyqTHuIJxRdlS5vMh1mj5voN4+QFhVZnlZruezqpWYDiJ8UTzhP0VmeLXCmBk66YrMQ==", + "requires": { + "@types/node": "*" + } + }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "requires": { + "@types/node": "*" + } + }, + "@types/ws": { + "version": "7.4.7", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-7.4.7.tgz", + "integrity": "sha512-JQbbmxZTZehdc2iszGKs5oC3NFnjeay7mtAWrdt7qNtAVK0g19muApzAy4bm9byz79xa2ZnO/BOBC2R8RC5Lww==", + "requires": { + "@types/node": "*" + } + }, + "@wry/context": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/@wry/context/-/context-0.7.0.tgz", + "integrity": "sha512-LcDAiYWRtwAoSOArfk7cuYvFXytxfVrdX7yxoUmK7pPITLk5jYh2F8knCwS7LjgYL8u1eidPlKKV6Ikqq0ODqQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@wry/equality": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/@wry/equality/-/equality-0.5.3.tgz", + "integrity": "sha512-avR+UXdSrsF2v8vIqIgmeTY0UR91UT+IyablCyKe/uk22uOJ8fusKZnH9JH9e1/EtLeNJBtagNmL3eJdnOV53g==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@wry/trie": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@wry/trie/-/trie-0.3.2.tgz", + "integrity": "sha512-yRTyhWSls2OY/pYLfwff867r8ekooZ4UI+/gxot5Wj8EFwSf2rG+n+Mo/6LoLQm1TKA4GRj2+LCpbfS937dClQ==", + "requires": { + "tslib": "^2.3.0" + } + }, + "@xpla/xpla.js": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/@xpla/xpla.js/-/xpla.js-0.2.3.tgz", + "integrity": "sha512-Tfk7hCGWXtwr08reY3Pi6dmzIqFbzri9jcyzJdfNmdo4cN0PMwpRJuZZcPmtxiIUnNef3AN1E/6nJUD5MKniuA==", + "requires": { + "@ethersproject/bytes": "^5.6.1", + "@ethersproject/keccak256": "^5.6.1", + "@ethersproject/signing-key": "^5.6.2", + "@terra-money/legacy.proto": "npm:@terra-money/terra.proto@^0.1.7", + "@terra-money/terra.proto": "^2.1.0", + "axios": "^0.26.1", + "bech32": "^2.0.0", + "bip32": "^2.0.6", + "bip39": "^3.0.3", + "bufferutil": "^4.0.3", + "crypto-addr-codec": "^0.1.7", + "decimal.js": "^10.2.1", + "elliptic": "^6.5.4", + "ethereumjs-util": "^7.1.5", + "jscrypto": "^1.0.1", + "readable-stream": "^3.6.0", + "secp256k1": "^4.0.2", + "tmp": "^0.2.1", + "utf-8-validate": "^5.0.5", + "ws": "^7.5.8" + }, + "dependencies": { + "axios": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.26.1.tgz", + "integrity": "sha512-fPwcX4EvnSHuInCMItEhAGnaSEXRBjtzh9fOtsE6E1G6p7vl7edEeZe11QHf18+6+9gR5PbKV/sGKNaD8YaMeA==", + "requires": { + "follow-redirects": "^1.14.8" + } + } + } + }, + "acorn": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.1.1.tgz", + "integrity": "sha512-add7dgA5ppRPxCFJoAGfMDi7PIBXq1RtGo7BhbLaxwrXPOmw8gq48Y9ozT01hUKy9byMjlR20EJhu5zlkErEkg==" + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "aes-js": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aes-js/-/aes-js-3.0.0.tgz", + "integrity": "sha512-H7wUZRn8WpTq9jocdxQ2c8x2sKo9ZVmzfRE13GiNJXfp7NcKYEdvl3vspKjXox6RIG2VtaRe4JFvxG4rqp2Zuw==" + }, + "agentkeepalive": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.3.0.tgz", + "integrity": "sha512-7Epl1Blf4Sy37j4v9f9FjICCh4+KAQOyXgHEwlyBiAQLbhKdq/i2QQU3amQalS/wPhdPzDXPL5DMR5bkn+YeWg==", + "requires": { + "debug": "^4.1.0", + "depd": "^2.0.0", + "humanize-ms": "^1.2.1" + } + }, + "algo-msgpack-with-bigint": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/algo-msgpack-with-bigint/-/algo-msgpack-with-bigint-2.1.1.tgz", + "integrity": "sha512-F1tGh056XczEaEAqu7s+hlZUDWwOBT70Eq0lfMpBP2YguSQVyxRbprLq5rELXKQOyOaixTWYhMeMQMzP0U5FoQ==" + }, + "algosdk": { + "version": "1.24.1", + "resolved": "https://registry.npmjs.org/algosdk/-/algosdk-1.24.1.tgz", + "integrity": "sha512-9moZxdqeJ6GdE4N6fA/GlUP4LrbLZMYcYkt141J4Ss68OfEgH9qW0wBuZ3ZOKEx/xjc5bg7mLP2Gjg7nwrkmww==", + "requires": { + "algo-msgpack-with-bigint": "^2.1.1", + "buffer": "^6.0.2", + "cross-fetch": "^3.1.5", + "hi-base32": "^0.5.1", + "js-sha256": "^0.9.0", + "js-sha3": "^0.8.0", + "js-sha512": "^0.8.0", + "json-bigint": "^1.0.0", + "tweetnacl": "^1.0.3", + "vlq": "^2.0.4" + } + }, + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==" + }, + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.3.tgz", + "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "aptos": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/aptos/-/aptos-1.5.0.tgz", + "integrity": "sha512-N7OuRtU7IYHkDkNx+4QS3g/QQGCp+36KzYn3oXPmT7Kttfuv+UKliQVdjy3cLmwd/DCQSh9ObTovwdxnHjUn0g==", + "requires": { + "@noble/hashes": "1.1.3", + "@scure/bip39": "1.1.0", + "axios": "0.27.2", + "form-data": "4.0.0", + "tweetnacl": "1.0.3" + }, + "dependencies": { + "@noble/hashes": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@noble/hashes/-/hashes-1.1.3.tgz", + "integrity": "sha512-CE0FCR57H2acVI5UOzIGSSIYxZ6v/HOhDR0Ro9VLyhnzLwx0o8W1mmgaqlEUx4049qJDlIBRztv5k+MM8vbO3A==" }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + "@scure/bip39": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@scure/bip39/-/bip39-1.1.0.tgz", + "integrity": "sha512-pwrPOS16VeTKg98dYXQyIjJEcWfz7/1YJIwxUEPFfQPtc86Ym/1sVgQ2RLoD43AazMk2l/unK4ITySSpW2+82w==", + "requires": { + "@noble/hashes": "~1.1.1", + "@scure/base": "~1.1.0" + } }, - "source-map-support": { - "version": "0.5.21", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", - "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } + "axios": { + "version": "0.27.2", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.27.2.tgz", + "integrity": "sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==", + "requires": { + "follow-redirects": "^1.14.9", + "form-data": "^4.0.0" + } + } + } + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "argparse": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-2.0.1.tgz", + "integrity": "sha512-8+9WqebbFzpX9OR+Wa6O29asIogeRMzcGtAINdpMHHyAg10f05aSFVBbcEqGf/PXw1EjAZ+q2/bEBg3DvurK3Q==" + }, + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==" + }, + "assertion-error": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", + "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==" + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==" + }, + "axios": { + "version": "0.24.0", + "resolved": "https://registry.npmjs.org/axios/-/axios-0.24.0.tgz", + "integrity": "sha512-Q6cWsys88HoPgAaFAVUb0WpPk0O8iTeisR9IMqy9G8AbO4NlpVknrnQS03zzF9PGAWgO3cgletO3VjV/P7VztA==", + "requires": { + "follow-redirects": "^1.14.4" + } + }, + "axios-retry": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/axios-retry/-/axios-retry-3.4.0.tgz", + "integrity": "sha512-VdgaP+gHH4iQYCCNUWF2pcqeciVOdGrBBAYUfTY+wPcO5Ltvp/37MLFNCmJKo7Gj3SHvCSdL8ouI1qLYJN3liA==", + "requires": { + "@babel/runtime": "^7.15.4", + "is-retry-allowed": "^2.2.0" + } + }, + "balanced-match": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.2.tgz", + "integrity": "sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw==" + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bech32": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/bech32/-/bech32-2.0.0.tgz", + "integrity": "sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==" + }, + "big-integer": { + "version": "1.6.36", + "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.36.tgz", + "integrity": "sha512-t70bfa7HYEA1D9idDbmuv7YbsbVkQ+Hp+8KFSul4aE5e/i1bjCNIRYJZlA8Q8p0r9T8cF/RVvwUgRA//FydEyg==" + }, + "bigint-buffer": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bigint-buffer/-/bigint-buffer-1.1.5.tgz", + "integrity": "sha512-trfYco6AoZ+rKhKnxA0hgX0HAbVP/s808/EuDSe2JDzUnCp/xAsli35Orvk67UrTEcwuxZqYZDmfA2RXJgxVvA==", + "requires": { + "bindings": "^1.3.0" + } + }, + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + }, + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==" + }, + "binary-parser": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/binary-parser/-/binary-parser-2.2.1.tgz", + "integrity": "sha512-5ATpz/uPDgq5GgEDxTB4ouXCde7q2lqAQlSdBRQVl/AJnxmQmhIfyxJx+0MGu//D5rHQifkfGbWWlaysG0o9NA==" + }, + "bindings": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", + "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", + "requires": { + "file-uri-to-path": "1.0.0" + } + }, + "bip32": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/bip32/-/bip32-2.0.6.tgz", + "integrity": "sha512-HpV5OMLLGTjSVblmrtYRfFFKuQB+GArM0+XP8HGWfJ5vxYBqo+DesvJwOdC2WJ3bCkZShGf0QIfoIpeomVzVdA==", + "requires": { + "@types/node": "10.12.18", + "bs58check": "^2.1.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "tiny-secp256k1": "^1.1.3", + "typeforce": "^1.11.5", + "wif": "^2.0.6" + }, + "dependencies": { + "@types/node": { + "version": "10.12.18", + "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.18.tgz", + "integrity": "sha512-fh+pAqt4xRzPfqA6eh3Z2y6fyZavRIumvjhaCL753+TVkGKGhpPeyrJG2JftD0T9q4GF00KjefsQ+PQNDdWQaQ==" + } + } + }, + "bip39": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.1.0.tgz", + "integrity": "sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==", + "requires": { + "@noble/hashes": "^1.2.0" + } + }, + "bip66": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/bip66/-/bip66-1.1.5.tgz", + "integrity": "sha512-nemMHz95EmS38a26XbbdxIYj5csHd3RMP3H5bwQknX0WYHF01qhpufP42mLOwVICuH2JmhIhXiWs89MfUGL7Xw==", + "optional": true, + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "blakejs": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.2.1.tgz", + "integrity": "sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==" + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "borsh": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/borsh/-/borsh-0.7.0.tgz", + "integrity": "sha512-CLCsZGIBCFnPtkNnieW/a8wmreDmfUtjU2m9yHrzPXIlNbqVs0AQrSatSG6vdNYUqdc83tkQi2eHfF98ubzQLA==", + "requires": { + "bn.js": "^5.2.0", + "bs58": "^4.0.0", + "text-encoding-utf-8": "^1.0.2" + } + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", + "requires": { + "fill-range": "^7.0.1" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browser-headers": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/browser-headers/-/browser-headers-0.4.1.tgz", + "integrity": "sha512-CA9hsySZVo9371qEHjHZtYxV2cFtVj5Wj/ZHi8ooEsrtm4vOnl9Y9HmyYWk9q+05d7K3rdoAE0j3MVEFVvtQtg==" + }, + "browser-stdout": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", + "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-6.0.3.tgz", + "integrity": "sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.2.1" + } + }, + "buffer-from": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", + "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" + }, + "buffer-layout": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/buffer-layout/-/buffer-layout-1.2.2.tgz", + "integrity": "sha512-kWSuLN694+KTk8SrYvCqwP2WcgQjoRCiF5b4QDvkkz8EmgD+aWAIceGFKMIAdmF/pH+vpgNV3d3kAKorcdAmWA==" + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, + "bufferutil": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/bufferutil/-/bufferutil-4.0.7.tgz", + "integrity": "sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" + }, + "capability": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/capability/-/capability-0.2.5.tgz", + "integrity": "sha512-rsJZYVCgXd08sPqwmaIqjAd5SUTfonV0z/gDJ8D6cN8wQphky1kkAYEqQ+hmDxTw7UihvBfjUVUSY+DBEe44jg==" + }, + "chai": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/chai/-/chai-4.3.7.tgz", + "integrity": "sha512-HLnAzZ2iupm25PlN0xFreAlBA5zaBSv3og0DdeGA4Ar6h6rJ3A0rolRUKJhSF2V10GZKDgWF/VmAEsNWjCRB+A==", + "requires": { + "assertion-error": "^1.1.0", + "check-error": "^1.0.2", + "deep-eql": "^4.1.2", + "get-func-name": "^2.0.0", + "loupe": "^2.3.1", + "pathval": "^1.1.1", + "type-detect": "^4.0.5" + } + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", + "requires": { + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" + } + }, + "check-error": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", + "integrity": "sha512-BrgHpW9NURQgzoNyjfq0Wu6VFO6D7IZEmJNdtgNqpzGG8RuNFHt2jQxWlAs4HMe119chBnv+34syEZtc6IhLtA==" + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", + "requires": { + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" + } + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } + }, + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha512-72fSenhMw2HZMTVHeCA9KCmpEIbzWiQsjN+BHcBbS9vr1mtt+vJjPdksIBNUmKAW8TFUDPJK5SUU3QhE9NEXDw==" + }, + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", + "requires": { + "delayed-stream": "~1.0.0" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==" + }, + "copyfiles": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/copyfiles/-/copyfiles-2.4.1.tgz", + "integrity": "sha512-fereAvAvxDrQDOXybk3Qu3dPbOoKoysFMWtkY3mv5BsL8//OSZVL5DCLYqgRfY5cWirgRzlC+WSrxp6Bo3eNZg==", + "requires": { + "glob": "^7.0.5", + "minimatch": "^3.0.3", + "mkdirp": "^1.0.4", + "noms": "0.0.0", + "through2": "^2.0.1", + "untildify": "^4.0.0", + "yargs": "^16.1.0" + } + }, + "core-util-is": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.3.tgz", + "integrity": "sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==" + }, + "cosmjs-types": { + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cosmjs-types/-/cosmjs-types-0.7.2.tgz", + "integrity": "sha512-vf2uLyktjr/XVAgEq0DjMxeAWh1yYREe7AMHDKd7EiHVqxBPCaBS+qEEQUkXbR9ndnckqr1sUG8BQhazh4X5lA==", + "requires": { + "long": "^4.0.0", + "protobufjs": "~6.11.2" + }, + "dependencies": { + "protobufjs": { + "version": "6.11.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.11.3.tgz", + "integrity": "sha512-xL96WDdCZYdU7Slin569tFX712BxsxslWwAfAhCYjQKGTq7dAU91Lomy6nLLhh/dyGhk/YH4TwTSRxTzhuHyZg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/long": "^4.0.1", + "@types/node": ">=13.7.0", + "long": "^4.0.0" + } + } + } + }, + "crc-32": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/crc-32/-/crc-32-1.2.2.tgz", + "integrity": "sha512-ROmzCKrTnOwybPcJApAA6WBWij23HVfGVNKqqrZpuyZOHqK2CwHSvpGuyt/UNNvaIjEd8X5IFGp4Mh+Ie1IHJQ==" + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "cross-fetch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/cross-fetch/-/cross-fetch-3.1.5.tgz", + "integrity": "sha512-lvb1SBsI0Z7GDwmuid+mU3kWVBwTVUbe7S0H52yaaAdQOXq2YktTCZdlAcNKFzE6QtRz0snpw9bNiPeOIkkQvw==", + "requires": { + "node-fetch": "2.6.7" + }, + "dependencies": { + "node-fetch": { + "version": "2.6.7", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", + "integrity": "sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==", + "requires": { + "whatwg-url": "^5.0.0" + } + } + } + }, + "crypto-addr-codec": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/crypto-addr-codec/-/crypto-addr-codec-0.1.7.tgz", + "integrity": "sha512-X4hzfBzNhy4mAc3UpiXEC/L0jo5E8wAa9unsnA8nNXYzXjCcGk83hfC5avJWCSGT8V91xMnAS9AKMHmjw5+XCg==", + "requires": { + "base-x": "^3.0.8", + "big-integer": "1.6.36", + "blakejs": "^1.1.0", + "bs58": "^4.0.1", + "ripemd160-min": "0.0.6", + "safe-buffer": "^5.2.0", + "sha3": "^2.1.1" + } + }, + "crypto-hash": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/crypto-hash/-/crypto-hash-1.3.0.tgz", + "integrity": "sha512-lyAZ0EMyjDkVvz8WOeVnuCPvKVBXcMv1l5SVqO1yC7PzTwrD/pPje/BIRbWhMoPe436U+Y2nD7f5bFx0kt+Sbg==" + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "requires": { + "ms": "2.1.2" + } + }, + "decamelize": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-4.0.0.tgz", + "integrity": "sha512-9iE1PgSik9HeIIw2JO94IidnE3eBoQrFJ3w7sFuzSX4DpmZ3v5sZpUiV5Swcf6mQEF+Y0ru8Neo+p+nyh2J+hQ==" + }, + "decimal.js": { + "version": "10.4.3", + "resolved": "https://registry.npmjs.org/decimal.js/-/decimal.js-10.4.3.tgz", + "integrity": "sha512-VBBaLc1MgL5XpzgIP7ny5Z6Nx3UrRkIViUkPUdtl9aya5amy3De1gsUUSB1g3+3sExYNjCAsAznmukyxCb1GRA==" + }, + "deep-eql": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-4.1.3.tgz", + "integrity": "sha512-WaEtAOpRA1MQ0eohqZjpGD8zdI0Ovsm8mmFhaDN8dvDZzyoUMcYDnf5Y6iu7HTXxf8JDS23qWa4a+hKCDyOPzw==", + "requires": { + "type-detect": "^4.0.0" + } + }, + "define-properties": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.2.0.tgz", + "integrity": "sha512-xvqAVKGfT1+UAvPwKTVw/njhdQ8ZhXK4lI0bCIuCMrp2up9nPnaDftrLtmpTazqd1o+UY4zgzU+avtMbDP+ldA==", + "requires": { + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" + } + }, + "delay": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/delay/-/delay-5.0.0.tgz", + "integrity": "sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==" + }, + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==" + }, + "depd": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" + }, + "diff": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-5.0.0.tgz", + "integrity": "sha512-/VTCrvm5Z0JGty/BWHljh+BAiw3IK+2j87NGMu8Nwc/f48WoDAC395uomO9ZD117ZOBaHmkX1oyLvkVM/aIT3w==" + }, + "dot-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/dot-case/-/dot-case-3.0.4.tgz", + "integrity": "sha512-Kv5nKlh6yRrdrGvxeJ2e5y2eRUpkUosIW4A2AS38zwSz27zu7ufDwQPi5Jhs3XAlGNetl3bmnGhQsMtkKJnj3w==", + "requires": { + "no-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "dotenv": { + "version": "16.0.3", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.0.3.tgz", + "integrity": "sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==" + }, + "drbg.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/drbg.js/-/drbg.js-1.0.1.tgz", + "integrity": "sha512-F4wZ06PvqxYLFEZKkFxTDcns9oFNk34hvmJSEwdzsxVQ8YI5YaxtACgQatkYgv2VI2CFkUd2Y+xosPQnHv809g==", + "optional": true, + "requires": { + "browserify-aes": "^1.0.6", + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4" + } + }, + "eccrypto": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/eccrypto/-/eccrypto-1.1.6.tgz", + "integrity": "sha512-d78ivVEzu7Tn0ZphUUaL43+jVPKTMPFGtmgtz1D0LrFn7cY3K8CdrvibuLz2AAkHBLKZtR8DMbB2ukRYFk987A==", + "requires": { + "acorn": "7.1.1", + "elliptic": "6.5.4", + "es6-promise": "4.2.8", + "nan": "2.14.0", + "secp256k1": "3.7.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "optional": true }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + "secp256k1": { + "version": "3.7.1", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-3.7.1.tgz", + "integrity": "sha512-1cf8sbnRreXrQFdH6qsg2H71Xw91fCCS9Yp021GnUNJzWJS/py96fS4lHbnTnouLp08Xj6jBoBB6V78Tdbdu5g==", + "optional": true, + "requires": { + "bindings": "^1.5.0", + "bip66": "^1.1.5", + "bn.js": "^4.11.8", + "create-hash": "^1.2.0", + "drbg.js": "^1.0.1", + "elliptic": "^6.4.1", + "nan": "^2.14.0", + "safe-buffer": "^5.1.2" + } + } + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "error-polyfill": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/error-polyfill/-/error-polyfill-0.1.3.tgz", + "integrity": "sha512-XHJk60ufE+TG/ydwp4lilOog549iiQF2OAPhkk9DdiYWMrltz5yhDz/xnKuenNwP7gy3dsibssO5QpVhkrSzzg==", + "requires": { + "capability": "^0.2.5", + "o3": "^1.0.3", + "u3": "^0.1.1" + } + }, + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==" + }, + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha512-C+d6UdsYDk0lMebHNR4S2NybQMMngAOnOwYBQjTOiv0MkoJMP0Myw2mgpDLBcpfCmRLxyFqYhS/CfOENq4SJhQ==", + "requires": { + "es6-promise": "^4.0.3" + } + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha512-vbRorB5FUQWvla16U8R/qgaFIya2qGzwDrNmCZuYKrbdSUMG6I1ZCGQRefkRVhuOkIGVne7BQ35DSfo1qvJqFg==" + }, + "eth-crypto": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/eth-crypto/-/eth-crypto-2.6.0.tgz", + "integrity": "sha512-GCX4ffFYRUGgnuWR5qxcZIRQJ1KEqPFiyXU9yVy7s6dtXIMlUXZQ2h+5ID6rFaOHWbpJbjfkC6YdhwtwRYCnug==", + "requires": { + "@babel/runtime": "7.20.13", + "@ethereumjs/tx": "3.5.2", + "@types/bn.js": "5.1.1", + "eccrypto": "1.1.6", + "ethereumjs-util": "7.1.5", + "ethers": "5.7.2", + "secp256k1": "5.0.0" + }, + "dependencies": { + "@babel/runtime": { + "version": "7.20.13", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.20.13.tgz", + "integrity": "sha512-gt3PKXs0DBoL9xCvOIIZ2NEqAGZqHjAnmVbfQtB620V0uReIQutpel14KcneZuer7UioY8ALKZ7iocavvzTNFA==", + "requires": { + "regenerator-runtime": "^0.13.11" + } }, - "store2": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", - "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + "node-addon-api": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-5.1.0.tgz", + "integrity": "sha512-eh0GgfEkpnoWDq+VY8OyvYhFEzBk6jIYbRKdIlyTiAXIVJ8PyBaKb0rp7oDtoddbdoHWhq8wwr+XZ81F1rpNdA==" }, - "string_decoder": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", - "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", - "requires": { - "safe-buffer": "~5.2.0" - } + "secp256k1": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-5.0.0.tgz", + "integrity": "sha512-TKWX8xvoGHrxVdqbYeZM9w+izTF4b9z3NhSaDkdn81btvuh+ivbIMGT/zQvDtTFWhRlThpoz6LEYTr7n8A5GcA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^5.0.0", + "node-gyp-build": "^4.2.0" + } + } + } + }, + "ethereum-cryptography": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-0.1.3.tgz", + "integrity": "sha512-w8/4x1SGGzc+tO97TASLja6SLd3fRIK2tLVcV2Gx4IB21hE19atll5Cq9o3d0ZmAYC/8aw0ipieTSiekAea4SQ==", + "requires": { + "@types/pbkdf2": "^3.0.0", + "@types/secp256k1": "^4.0.1", + "blakejs": "^1.1.0", + "browserify-aes": "^1.2.0", + "bs58check": "^2.1.2", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "hash.js": "^1.1.7", + "keccak": "^3.0.0", + "pbkdf2": "^3.0.17", + "randombytes": "^2.1.0", + "safe-buffer": "^5.1.2", + "scrypt-js": "^3.0.0", + "secp256k1": "^4.0.1", + "setimmediate": "^1.0.5" + } + }, + "ethereumjs-abi": { + "version": "0.6.8", + "resolved": "https://registry.npmjs.org/ethereumjs-abi/-/ethereumjs-abi-0.6.8.tgz", + "integrity": "sha512-Tx0r/iXI6r+lRsdvkFDlut0N08jWMnKRZ6Gkq+Nmw75lZe4e6o3EkSnkaBP5NF6+m5PTGAr9JP43N3LyeoglsA==", + "requires": { + "bn.js": "^4.11.8", + "ethereumjs-util": "^6.0.0" + }, + "dependencies": { + "@types/bn.js": { + "version": "4.11.6", + "resolved": "https://registry.npmjs.org/@types/bn.js/-/bn.js-4.11.6.tgz", + "integrity": "sha512-pqr857jrp2kPuO9uRjZ3PwnJTjoQy+fcdxvBTvHm6dkmEL9q+hDD/2j/0ELOBPtPnS8LjCX0gI9nbl8lVkadpg==", + "requires": { + "@types/node": "*" + } }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" }, - "strip-ansi": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", - "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", - "requires": { - "ansi-regex": "^5.0.1" - } + "ethereumjs-util": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-6.2.1.tgz", + "integrity": "sha512-W2Ktez4L01Vexijrm5EB6w7dg4n/TgpoYU4avuT5T3Vmnw/eCRtiBrJfQYS/DCSvDIOLn2k57GcHdeBcgVxAqw==", + "requires": { + "@types/bn.js": "^4.11.3", + "bn.js": "^4.11.0", + "create-hash": "^1.1.2", + "elliptic": "^6.5.2", + "ethereum-cryptography": "^0.1.3", + "ethjs-util": "0.1.6", + "rlp": "^2.2.3" + } + } + } + }, + "ethereumjs-util": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/ethereumjs-util/-/ethereumjs-util-7.1.5.tgz", + "integrity": "sha512-SDl5kKrQAudFBUe5OJM9Ac6WmMyYmXX/6sTmLZ3ffG2eY6ZIGBes3pEDxNN6V72WyOw4CPD5RomKdsa8DAAwLg==", + "requires": { + "@types/bn.js": "^5.1.0", + "bn.js": "^5.1.2", + "create-hash": "^1.1.2", + "ethereum-cryptography": "^0.1.3", + "rlp": "^2.2.4" + } + }, + "ethers": { + "version": "5.7.2", + "resolved": "https://registry.npmjs.org/ethers/-/ethers-5.7.2.tgz", + "integrity": "sha512-wswUsmWo1aOK8rR7DIKiWSw9DbLWe6x98Jrn8wcTflTVvaXhAMaB5zGAXy0GYQEQp9iO1iSHWVyARQm11zUtyg==", + "requires": { + "@ethersproject/abi": "5.7.0", + "@ethersproject/abstract-provider": "5.7.0", + "@ethersproject/abstract-signer": "5.7.0", + "@ethersproject/address": "5.7.0", + "@ethersproject/base64": "5.7.0", + "@ethersproject/basex": "5.7.0", + "@ethersproject/bignumber": "5.7.0", + "@ethersproject/bytes": "5.7.0", + "@ethersproject/constants": "5.7.0", + "@ethersproject/contracts": "5.7.0", + "@ethersproject/hash": "5.7.0", + "@ethersproject/hdnode": "5.7.0", + "@ethersproject/json-wallets": "5.7.0", + "@ethersproject/keccak256": "5.7.0", + "@ethersproject/logger": "5.7.0", + "@ethersproject/networks": "5.7.1", + "@ethersproject/pbkdf2": "5.7.0", + "@ethersproject/properties": "5.7.0", + "@ethersproject/providers": "5.7.2", + "@ethersproject/random": "5.7.0", + "@ethersproject/rlp": "5.7.0", + "@ethersproject/sha2": "5.7.0", + "@ethersproject/signing-key": "5.7.0", + "@ethersproject/solidity": "5.7.0", + "@ethersproject/strings": "5.7.0", + "@ethersproject/transactions": "5.7.0", + "@ethersproject/units": "5.7.0", + "@ethersproject/wallet": "5.7.0", + "@ethersproject/web": "5.7.1", + "@ethersproject/wordlists": "5.7.0" + } + }, + "ethjs-util": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/ethjs-util/-/ethjs-util-0.1.6.tgz", + "integrity": "sha512-CUnVOQq7gSpDHZVVrQW8ExxUETWrnrvXYvYz55wOU8Uj4VCgw56XC2B/fVqQN+f7gmrnRHSLVnFAwsCuNwji8w==", + "requires": { + "is-hex-prefixed": "1.0.0", + "strip-hex-prefix": "1.0.0" + } + }, + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==" + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "eyes": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/eyes/-/eyes-0.1.8.tgz", + "integrity": "sha512-GipyPsXO1anza0AOZdy69Im7hGFCNB7Y/NGjDlZGJ3GJJLtwNSb2vrzYrTYJRrRloVx7pl+bhUaTB8yiccPvFQ==" + }, + "fast-stable-stringify": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fast-stable-stringify/-/fast-stable-stringify-1.0.0.tgz", + "integrity": "sha512-wpYMUmFu5f00Sm0cj2pfivpmawLZ0NKdviQ4w9zJeR8JVtOpOxHmLaJuj0vxvGqMJQWyP/COUkF75/57OKyRag==" + }, + "file-uri-to-path": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", + "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==" + }, + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "find-up": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-5.0.0.tgz", + "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", + "requires": { + "locate-path": "^6.0.0", + "path-exists": "^4.0.0" + } + }, + "flat": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/flat/-/flat-5.0.2.tgz", + "integrity": "sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ==" + }, + "follow-redirects": { + "version": "1.15.2", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.2.tgz", + "integrity": "sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==" + }, + "form-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-4.0.0.tgz", + "integrity": "sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==", + "requires": { + "asynckit": "^0.4.0", + "combined-stream": "^1.0.8", + "mime-types": "^2.1.12" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==" + }, + "fsevents": { + "version": "2.3.2", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "optional": true + }, + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-func-name": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", + "integrity": "sha512-Hm0ixYtaSZ/V7C8FJrtZIuBBI+iSgL+1Aq82zSu8VQNB4S3Gk8e7Qs3VwBDJAhmRZcFqkl3tQu36g/Foh5I5ig==" + }, + "get-intrinsic": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.0.tgz", + "integrity": "sha512-L049y6nFOuom5wGyRc3/gdTLO94dySVKRACj1RmJZBQXlbTMhtNIgkWkUHq+jYmZvKf14EW1EoJnnjbmoHij0Q==", + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", + "requires": { + "is-glob": "^4.0.1" + } + }, + "globalthis": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/globalthis/-/globalthis-1.0.3.tgz", + "integrity": "sha512-sFdI5LyBiNTHjRd7cGPWapiHWMOXKyuBNX/cWJ3NfzrZQVa8GI/8cofCl74AOVqq9W5kNmguTIzJ/1s2gyI9wA==", + "requires": { + "define-properties": "^1.1.3" + } + }, + "google-protobuf": { + "version": "3.21.2", + "resolved": "https://registry.npmjs.org/google-protobuf/-/google-protobuf-3.21.2.tgz", + "integrity": "sha512-3MSOYFO5U9mPGikIYCzK0SaThypfGgS6bHqrUGXG3DPHCrb+txNqeEcns1W0lkGfk0rCyNXm7xB9rMxnCiZOoA==" + }, + "graphql": { + "version": "16.6.0", + "resolved": "https://registry.npmjs.org/graphql/-/graphql-16.6.0.tgz", + "integrity": "sha512-KPIBPDlW7NxrbT/eh4qPXz5FiFdL5UbaA0XUNz2Rp3Z3hqBSkbj0GVjwFDztsWVauZUWsbKHgMg++sk8UX0bkw==" + }, + "graphql-tag": { + "version": "2.12.6", + "resolved": "https://registry.npmjs.org/graphql-tag/-/graphql-tag-2.12.6.tgz", + "integrity": "sha512-FdSNcu2QQcWnM2VNvSCCDCVS5PpPqpzgFT8+GXzqJuoDd0CBncxCY278u4mhRO7tMgo2JjgJA5aZ+nWSQ/Z+xg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "requires": { + "function-bind": "^1.1.1" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha512-sKJf1+ceQBr4SMkvQnBDNDtf4TXpVhVGateu0t918bl30FnbE2m4vNLX+VWe/dpjlb+HugGYzW7uQXH98HPEYw==" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "requires": { + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==" + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "he": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", + "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==" + }, + "hi-base32": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/hi-base32/-/hi-base32-0.5.1.tgz", + "integrity": "sha512-EmBBpvdYh/4XxsnUybsPag6VikPYnN30td+vQk+GI3qpahVEG9+gTkG0aXVxTjBqQ5T6ijbWIu77O+C5WFWsnA==" + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "hoist-non-react-statics": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/hoist-non-react-statics/-/hoist-non-react-statics-3.3.2.tgz", + "integrity": "sha512-/gGivxi8JPKWNm/W0jSmzcMPpfpPLc3dY/6GxhX2hQ9iGj3aDfklV4ET7NjKpSinLpJ5vafa9iiGIEZg10SfBw==", + "requires": { + "react-is": "^16.7.0" + } + }, + "http-errors": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.8.1.tgz", + "integrity": "sha512-Kpk9Sm7NmI+RHhnj6OIWDI1d6fIoFAtFt9RLaTMRlg/8w49juAStsrBgp0Dp4OdxdVbRIeKhtCUvoi/RuAhO4g==", + "requires": { + "depd": "~1.1.2", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.1" + }, + "dependencies": { + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==" + } + } + }, + "http-status-codes": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/http-status-codes/-/http-status-codes-2.2.0.tgz", + "integrity": "sha512-feERVo9iWxvnejp3SEfm/+oNG517npqL2/PIA8ORjyOZjGC7TwCRQsZylciLS64i6pJ0wRYz3rkXLRwbtFa8Ng==" + }, + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "requires": { + "ms": "^2.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "requires": { + "binary-extensions": "^2.0.0" + } + }, + "is-core-module": { + "version": "2.12.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.12.0.tgz", + "integrity": "sha512-RECHCBCd/viahWmwj6enj19sKbHfJrddi/6cBDsNTKbNq0f7VeaUkBo60BqzvPqo/W54ChS62Z5qyun7cfOMqQ==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==" + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-hex-prefixed": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", + "integrity": "sha512-WvtOiug1VFrE9v1Cydwm+FnXd3+w9GaeVUss5W4v/SLy3UW00vP+6iNF2SdnfiBoLy4bTqVdkftNGTUeOFVsbA==" + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + }, + "is-plain-obj": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-2.1.0.tgz", + "integrity": "sha512-YWnfyRwxL/+SsrWYfOpUtz5b3YD+nyfkHvjbcanzk8zgyO4ASD67uVMRt8k5bM4lLMDnXfriRhOpemw+NfT1eA==" + }, + "is-retry-allowed": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-retry-allowed/-/is-retry-allowed-2.2.0.tgz", + "integrity": "sha512-XVm7LOeLpTW4jV19QSH38vkswxoLud8sQ57YwJVTPWdiaI9I8keEhGFpBlslyVsgdQy4Opg8QOLb8YRgsyZiQg==" + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==" + }, + "isarray": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", + "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==" + }, + "isomorphic-ws": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/isomorphic-ws/-/isomorphic-ws-4.0.1.tgz", + "integrity": "sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==", + "requires": {} + }, + "jayson": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/jayson/-/jayson-4.1.0.tgz", + "integrity": "sha512-R6JlbyLN53Mjku329XoRT2zJAE6ZgOQ8f91ucYdMCD4nkGCF9kZSrcGXpHIU4jeKj58zUZke2p+cdQchU7Ly7A==", + "requires": { + "@types/connect": "^3.4.33", + "@types/node": "^12.12.54", + "@types/ws": "^7.4.4", + "commander": "^2.20.3", + "delay": "^5.0.0", + "es6-promisify": "^5.0.0", + "eyes": "^0.1.8", + "isomorphic-ws": "^4.0.1", + "json-stringify-safe": "^5.0.1", + "JSONStream": "^1.3.5", + "uuid": "^8.3.2", + "ws": "^7.4.5" + }, + "dependencies": { + "@types/node": { + "version": "12.20.55", + "resolved": "https://registry.npmjs.org/@types/node/-/node-12.20.55.tgz", + "integrity": "sha512-J8xLz7q2OFulZ2cyGTLE1TbbZcjpno7FaN6zdJNrgAdrJ+DZzh/uFR6YrTb4C+nXakvud8Q4+rbhoIWlYQbUFQ==" + } + } + }, + "js-base64": { + "version": "3.7.5", + "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-3.7.5.tgz", + "integrity": "sha512-3MEt5DTINKqfScXKfJFrRbxkrnk2AxPWGBL/ycjz4dK8iqiSJ06UxD8jh8xuh6p10TX4t2+7FsBYVxxQbMg+qA==" + }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "js-sha3": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha3/-/js-sha3-0.8.0.tgz", + "integrity": "sha512-gF1cRrHhIzNfToc802P800N8PpXS+evLLXfsVpowqmAFR9uwbi89WvXg2QspOmXL8QL86J4T1EpFu+yUkwJY3Q==" + }, + "js-sha512": { + "version": "0.8.0", + "resolved": "https://registry.npmjs.org/js-sha512/-/js-sha512-0.8.0.tgz", + "integrity": "sha512-PWsmefG6Jkodqt+ePTvBZCSMFgN7Clckjd0O7su3I0+BW2QWUTJNzjktHsztGLhncP2h8mcF9V9Y2Ha59pAViQ==" + }, + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" + }, + "js-yaml": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-4.1.0.tgz", + "integrity": "sha512-wpxZs9NoxZaJESJGIZTyDEaYpl0FKSA+FB9aJiyemKhMwkxQg63h4T1KJgUGHpTqPDNRcmmYLugrRjJlBtWvRA==", + "requires": { + "argparse": "^2.0.1" + } + }, + "jscrypto": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/jscrypto/-/jscrypto-1.0.3.tgz", + "integrity": "sha512-lryZl0flhodv4SZHOqyb1bx5sKcJxj0VBo0Kzb4QMAg3L021IC9uGpl0RCZa+9KJwlRGSK2C80ITcwbe19OKLQ==" + }, + "json-bigint": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", + "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "requires": { + "bignumber.js": "^9.0.0" + } + }, + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha512-ZClg6AaYvamvYEE82d3Iyd3vSSIjQ+odgjaTzRuO3s7toCdFKczob2i0zCh7JE8kWn17yvAWhUVxvqGwUalsRA==" + }, + "json5": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.2.tgz", + "integrity": "sha512-g1MWMLBiz8FKi1e4w0UyVL3w+iJceWAFBAaBnnGKOpNa5f8TLktkbre1+s6oICydWAm+HRUGTmI+//xv2hvXYA==", + "optional": true, + "requires": { + "minimist": "^1.2.0" + } + }, + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg==" + }, + "jsonschema": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.1.tgz", + "integrity": "sha512-S6cATIPVv1z0IlxdN+zUk5EPjkGCdnhN4wVSBlvoUO1tOLJootbo9CquNJmbIh4yikWHiUedhRYrNPn1arpEmQ==" + }, + "JSONStream": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", + "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "requires": { + "jsonparse": "^1.2.0", + "through": ">=2.2.7 <3" + } + }, + "keccak": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/keccak/-/keccak-3.0.3.tgz", + "integrity": "sha512-JZrLIAJWuZxKbCilMpNz5Vj7Vtb4scDG3dMXLOsbzBmQGyjwE61BbW7bJkfKKCShXiQZt3T6sBgALRtmd+nZaQ==", + "requires": { + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0", + "readable-stream": "^3.6.0" + } + }, + "keccak256": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/keccak256/-/keccak256-1.0.6.tgz", + "integrity": "sha512-8GLiM01PkdJVGUhR1e6M/AvWnSqYS0HaERI+K/QtStGDGlSTx2B1zTqZk4Zlqu5TxHJNTxWAdP9Y+WI50OApUw==", + "requires": { + "bn.js": "^5.2.0", + "buffer": "^6.0.3", + "keccak": "^3.0.2" + } + }, + "libsodium": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium/-/libsodium-0.7.11.tgz", + "integrity": "sha512-WPfJ7sS53I2s4iM58QxY3Inb83/6mjlYgcmZs7DJsvDlnmVUwNinBCi5vBT43P6bHRy01O4zsMU2CoVR6xJ40A==" + }, + "libsodium-wrappers": { + "version": "0.7.11", + "resolved": "https://registry.npmjs.org/libsodium-wrappers/-/libsodium-wrappers-0.7.11.tgz", + "integrity": "sha512-SrcLtXj7BM19vUKtQuyQKiQCRJPgbpauzl3s0rSwD+60wtHqSUuqcoawlMDheCJga85nKOQwxNYQxf/CKAvs6Q==", + "requires": { + "libsodium": "^0.7.11" + } + }, + "link-module-alias": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/link-module-alias/-/link-module-alias-1.2.0.tgz", + "integrity": "sha512-ahPjXepbSVKbahTB6LxR//VHm8HPfI+QQygCH+E82spBY4HR5VPJTvlhKBc9F7muVxnS6C1rRfoPOXAbWO/fyw==", + "requires": { + "chalk": "^2.4.1" + } + }, + "locate-path": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-6.0.0.tgz", + "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", + "requires": { + "p-locate": "^5.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.values": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-4.3.0.tgz", + "integrity": "sha512-r0RwvdCv8id9TUblb/O7rYPwVy6lerCbcawrfdo9iC/1t1wsNMJknO79WNBgwkH0hIeJ08jmvvESbFpNb4jH0Q==" + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", + "requires": { + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", - "optional": true + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } }, - "strip-hex-prefix": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", - "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", - "requires": { - "is-hex-prefixed": "1.0.0" - } + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } }, - "strip-json-comments": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", - "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" }, - "superstruct": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", - "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "requires": { - "has-flag": "^3.0.0" - } - }, - "supports-preserve-symlinks-flag": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", - "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" - }, - "symbol-observable": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", - "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" - }, - "text-encoding-utf-8": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", - "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" - }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" - }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - }, - "dependencies": { - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" - }, - "readable-stream": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", - "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", - "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "requires": { - "safe-buffer": "~5.1.0" - } - } - } - }, - "tiny-secp256k1": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", - "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", - "requires": { - "bindings": "^1.3.0", - "bn.js": "^4.11.8", - "create-hmac": "^1.1.7", - "elliptic": "^6.4.0", - "nan": "^2.13.2" - }, - "dependencies": { - "bn.js": { - "version": "4.12.0", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", - "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" - } - } - }, - "tmp": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", - "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", - "requires": { - "rimraf": "^3.0.0" - } - }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "requires": { - "is-number": "^7.0.0" - } - }, - "toidentifier": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", - "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" - }, - "toml": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", - "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" - }, - "tr46": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", - "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" - }, - "ts-invariant": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", - "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", - "requires": { - "tslib": "^2.1.0" - } - }, - "ts-log": { - "version": "2.2.5", - "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", - "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==" - }, - "ts-mocha": { - "version": "10.0.0", - "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", - "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", - "requires": { - "ts-node": "7.0.1", - "tsconfig-paths": "^3.5.0" - }, - "dependencies": { - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" - }, - "mkdirp": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", - "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", - "requires": { - "minimist": "^1.2.6" - } - }, - "ts-node": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", - "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", - "requires": { - "arrify": "^1.0.0", - "buffer-from": "^1.1.0", - "diff": "^3.1.0", - "make-error": "^1.1.1", - "minimist": "^1.2.0", - "mkdirp": "^0.5.1", - "source-map-support": "^0.5.6", - "yn": "^2.0.0" - } - }, - "yn": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", - "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==" - } - } - }, - "ts-node": { - "version": "10.9.1", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", - "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", - "requires": { - "@cspotcode/source-map-support": "^0.8.0", - "@tsconfig/node10": "^1.0.7", - "@tsconfig/node12": "^1.0.7", - "@tsconfig/node14": "^1.0.0", - "@tsconfig/node16": "^1.0.2", - "acorn": "^8.4.1", - "acorn-walk": "^8.1.1", - "arg": "^4.1.0", - "create-require": "^1.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "v8-compile-cache-lib": "^3.0.1", - "yn": "3.1.1" - }, - "dependencies": { - "acorn": { - "version": "8.8.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", - "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" - } - } - }, - "tsconfig-paths": { - "version": "3.14.2", - "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", - "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", - "optional": true, - "requires": { - "@types/json5": "^0.0.29", - "json5": "^1.0.2", - "minimist": "^1.2.6", - "strip-bom": "^3.0.0" - } - }, - "tslib": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", - "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" - }, - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" - }, - "tweetnacl-util": { - "version": "0.15.1", - "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", - "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" - }, - "type-detect": { - "version": "4.0.8", - "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", - "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" - }, - "type-fest": { - "version": "2.19.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", - "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" - }, - "typeforce": { - "version": "1.18.0", - "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", - "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" - }, - "typescript": { - "version": "5.0.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", - "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" - }, - "u3": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", - "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" - }, - "untildify": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", - "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "long": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", + "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" + }, + "loose-envify": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", + "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "requires": { + "js-tokens": "^3.0.0 || ^4.0.0" + } + }, + "loupe": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/loupe/-/loupe-2.3.6.tgz", + "integrity": "sha512-RaPMZKiMy8/JruncMU5Bt6na1eftNoo++R4Y+N2FrxkDVTrGvcyzFTsaGif4QTeKESheMGegbhw6iUAq+5A8zA==", + "requires": { + "get-func-name": "^2.0.0" + } + }, + "lower-case": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lower-case/-/lower-case-2.0.2.tgz", + "integrity": "sha512-7fm3l3NAF9WfN6W3JOmf5drwpVqX78JtoGJ3A6W0a6ZnldM41w2fV5D490psKFTpMds8TJse/eHLFFsNHHjHgg==", + "requires": { + "tslib": "^2.0.3" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "map-obj": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.3.0.tgz", + "integrity": "sha512-hdN1wVrZbb29eBGiGjJbeP8JbKjq1urkHJ/LIP/NY48MZ1QVXUsQBV1G1zvYFHn1XE06cwjBsOI2K3Ulnj1YXQ==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==" + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", + "requires": { + "mime-db": "1.52.0" + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.8.tgz", + "integrity": "sha512-2yyAR8qBkN3YuheJanUpWC5U3bb5osDywNB8RzDVlDwDHbocAJveqqj1u8+SVD7jkWT4yvsHCpWqqWqAxb0zCA==" + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==" + }, + "mocha": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-10.2.0.tgz", + "integrity": "sha512-IDY7fl/BecMwFHzoqF2sg/SHHANeBoMMXFlS9r0OXKDssYE1M5O43wUY/9BVPeIvfH2zmEbBfseqN9gBQZzXkg==", + "requires": { + "ansi-colors": "4.1.1", + "browser-stdout": "1.3.1", + "chokidar": "3.5.3", + "debug": "4.3.4", + "diff": "5.0.0", + "escape-string-regexp": "4.0.0", + "find-up": "5.0.0", + "glob": "7.2.0", + "he": "1.2.0", + "js-yaml": "4.1.0", + "log-symbols": "4.1.0", + "minimatch": "5.0.1", + "ms": "2.1.3", + "nanoid": "3.3.3", + "serialize-javascript": "6.0.0", + "strip-json-comments": "3.1.1", + "supports-color": "8.1.1", + "workerpool": "6.2.1", + "yargs": "16.2.0", + "yargs-parser": "20.2.4", + "yargs-unparser": "2.0.0" + }, + "dependencies": { + "escape-string-regexp": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-4.0.0.tgz", + "integrity": "sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==" }, - "utf-8-validate": { - "version": "5.0.10", - "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", - "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", - "requires": { - "node-gyp-build": "^4.3.0" + "glob": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz", + "integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } } + } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" - }, - "uuid": { - "version": "8.3.2", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", - "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" - }, - "v8-compile-cache-lib": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", - "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" - }, - "vlq": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", - "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" - }, - "webidl-conversions": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", - "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" - }, - "whatwg-url": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", - "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", - "requires": { - "tr46": "~0.0.3", - "webidl-conversions": "^3.0.0" - } + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==" }, - "wif": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", - "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", - "requires": { - "bs58check": "<3.0.0" + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "requires": { + "brace-expansion": "^2.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } } + } }, - "workerpool": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", - "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" - }, - "wrap-ansi": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", - "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", - "requires": { - "ansi-styles": "^4.0.0", - "string-width": "^4.1.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "requires": { - "color-convert": "^2.0.1" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" - } - } + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==" }, - "wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", + "requires": { + "has-flag": "^4.0.0" + } + } + } + }, + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mustache": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/mustache/-/mustache-4.2.0.tgz", + "integrity": "sha512-71ippSywq5Yb7/tVYyGbkBggbU8H3u5Rz56fH60jGFgr8uHwxs+aSKeqmluIVzM0m0kB7xQjKS6qPfd0b2ZoqQ==" + }, + "nan": { + "version": "2.14.0", + "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.0.tgz", + "integrity": "sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg==" + }, + "nanoid": { + "version": "3.3.3", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.3.tgz", + "integrity": "sha512-p1sjXuopFs0xg+fPASzQ28agW1oHD7xDsd9Xkf3T15H3c/cifrFHVwrh74PdoklAPi+i7MdRsE47vm2r6JoB+w==" + }, + "near-api-js": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/near-api-js/-/near-api-js-1.1.0.tgz", + "integrity": "sha512-qYKv1mYsaDZc2uYndhS+ttDhR9+60qFc+ZjD6lWsAxr3ZskMjRwPffDGQZYhC7BRDQMe1HEbk6d5mf+TVm0Lqg==", + "requires": { + "bn.js": "5.2.1", + "borsh": "^0.7.0", + "bs58": "^4.0.0", + "depd": "^2.0.0", + "error-polyfill": "^0.1.3", + "http-errors": "^1.7.2", + "js-sha256": "^0.9.0", + "mustache": "^4.0.0", + "node-fetch": "^2.6.1", + "text-encoding-utf-8": "^1.0.2", + "tweetnacl": "^1.0.1" + } + }, + "no-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/no-case/-/no-case-3.0.4.tgz", + "integrity": "sha512-fgAN3jGAh+RoxUGZHTSOLJIqUc2wmoBwGR4tbpNAKmmovFoWq0OdRkb0VkldReO2a2iBT/OEulG9XSUc10r3zg==", + "requires": { + "lower-case": "^2.0.2", + "tslib": "^2.0.3" + } + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-fetch": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.9.tgz", + "integrity": "sha512-DJm/CJkZkRjKKj4Zi4BsKVZh3ValV5IR5s7LVZnW+6YMh0W1BfNA8XSs6DLMGYlId5F3KnA70uu2qepcR08Qqg==", + "requires": { + "whatwg-url": "^5.0.0" + } + }, + "node-gyp-build": { + "version": "4.6.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.6.0.tgz", + "integrity": "sha512-NTZVKn9IylLwUzaKjkas1e4u2DLNcV4rdYagA4PWdPwW87Bi7z+BznyKSRwS/761tV/lzCGXplWsiaMjLqP2zQ==" + }, + "noms": { + "version": "0.0.0", + "resolved": "https://registry.npmjs.org/noms/-/noms-0.0.0.tgz", + "integrity": "sha512-lNDU9VJaOPxUmXcLb+HQFeUgQQPtMI24Gt6hgfuMHRJgMRHMF/qZ4HJD3GDru4sSw9IQl2jPjAYnQrdIeLbwow==", + "requires": { + "inherits": "^2.0.1", + "readable-stream": "~1.0.31" + }, + "dependencies": { + "readable-stream": { + "version": "1.0.34", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz", + "integrity": "sha512-ok1qVCJuRkNmvebYikljxJA/UEsKwLl2nI1OmaqAu4/UE+h0wKCHok4XkL/gvi39OacXvw59RJUOFUkDib2rHg==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.1", + "isarray": "0.0.1", + "string_decoder": "~0.10.x" + } }, + "string_decoder": { + "version": "0.10.31", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", + "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==" + } + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "o3": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/o3/-/o3-1.0.3.tgz", + "integrity": "sha512-f+4n+vC6s4ysy7YO7O2gslWZBUu8Qj2i2OUJOvjRxQva7jVjYjB29jrr9NCjmxZQR0gzrOcv1RnqoYOeMs5VRQ==", + "requires": { + "capability": "^0.2.5" + } + }, + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==", + "requires": { + "wrappy": "1" + } + }, + "optimism": { + "version": "0.16.2", + "resolved": "https://registry.npmjs.org/optimism/-/optimism-0.16.2.tgz", + "integrity": "sha512-zWNbgWj+3vLEjZNIh/okkY2EUfX+vB9TJopzIZwT1xxaMqC5hRLLraePod4c5n4He08xuXNH+zhKFFCu390wiQ==", + "requires": { + "@wry/context": "^0.7.0", + "@wry/trie": "^0.3.0" + } + }, + "p-limit": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", + "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", + "requires": { + "yocto-queue": "^0.1.0" + } + }, + "p-locate": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-5.0.0.tgz", + "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", + "requires": { + "p-limit": "^3.0.2" + } + }, + "pako": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/pako/-/pako-2.1.0.tgz", + "integrity": "sha512-w+eufiZ1WuJYgPXbV/PO3NCMEc3xqylkKHzp8bxp1uW4qaSNQUkwmLLEc3kKsfz8lpV1F8Ht3U1Cm+9Srog2ug==" + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==" + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "pathval": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.1.tgz", + "integrity": "sha512-Dp6zGqpTdETdR63lehJYPeIOqpiNBNtc7BpWSLrOje7UaIsE5aY92r/AunQA7rsXvet3lrJ3JnZX29UPTKXyKQ==" + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "prettier": { + "version": "2.8.8", + "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.8.8.tgz", + "integrity": "sha512-tdN8qQGvNjw4CHbY+XXk0JgCXn9QiF21a55rBe5LJAU+kDyC4WQn4+awm2Xfk2lQMk5fKup9XgzTZtGkjBdP9Q==" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "prop-types": { + "version": "15.8.1", + "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.8.1.tgz", + "integrity": "sha512-oj87CgZICdulUohogVAR7AjlC0327U4el4L6eAvOqCeudMDVU0NThNaV+b9Df4dXgSP1gXMTnPdhfe/2qDH5cg==", + "requires": { + "loose-envify": "^1.4.0", + "object-assign": "^4.1.1", + "react-is": "^16.13.1" + } + }, + "protobufjs": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-7.2.3.tgz", + "integrity": "sha512-TtpvOqwB5Gdz/PQmOjgsrGH1nHjAQVCN7JG4A6r1sXRWESL5rNMAiRcBQlCAdKxZcAbstExQePYG8xof/JVRgg==", + "requires": { + "@protobufjs/aspromise": "^1.1.2", + "@protobufjs/base64": "^1.1.2", + "@protobufjs/codegen": "^2.0.4", + "@protobufjs/eventemitter": "^1.1.0", + "@protobufjs/fetch": "^1.1.0", + "@protobufjs/float": "^1.0.2", + "@protobufjs/inquire": "^1.1.0", + "@protobufjs/path": "^1.1.2", + "@protobufjs/pool": "^1.1.0", + "@protobufjs/utf8": "^1.1.0", + "@types/node": ">=13.7.0", + "long": "^5.0.0" + }, + "dependencies": { + "long": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/long/-/long-5.2.3.tgz", + "integrity": "sha512-lcHwpNoggQTObv5apGNCTdJrO69eHOZMi4BNC+rTLER8iHAqGrUVeLh/irVIM7zTw2bOXA8T6uNPeujwOLg/2Q==" + } + } + }, + "proxy-from-env": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/proxy-from-env/-/proxy-from-env-1.1.0.tgz", + "integrity": "sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "react-is": { + "version": "16.13.1", + "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.13.1.tgz", + "integrity": "sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==" + }, + "readable-stream": { + "version": "3.6.2", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz", + "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", + "requires": { + "picomatch": "^2.2.1" + } + }, + "readonly-date": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/readonly-date/-/readonly-date-1.0.0.tgz", + "integrity": "sha512-tMKIV7hlk0h4mO3JTmmVuIlJVXjKk3Sep9Bf5OH0O+758ruuVkUy2J9SttDLm91IEX/WHlXPSpxMGjPj4beMIQ==" + }, + "rechoir": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", + "integrity": "sha512-HFM8rkZ+i3zrV+4LQjwQ0W+ez98pApMGM3HUrN04j3CqzPOzl9nmP15Y8YXNm8QHGv/eacOVEjqhmWpkRV0NAw==", + "requires": { + "resolve": "^1.1.6" + } + }, + "regenerator-runtime": { + "version": "0.13.11", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.11.tgz", + "integrity": "sha512-kY1AZVr2Ra+t+piVaJ4gxaFaReZVH40AKNo7UCX6W+dEwBo/2oZJzqfuN1qLq1oL45o56cPaTXELwrTh8Fpggg==" + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha512-fGxEI7+wsG9xrvdjsrlmL22OMTTiHRwAMroiEeMgq8gzoLC/PQr7RsRDSTLUg/bZAZtF+TVIkHc6/4RIKrui+Q==" + }, + "resolve": { + "version": "1.22.2", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.2.tgz", + "integrity": "sha512-Sb+mjNHOULsBv818T40qSPeRiuWLyaGMa5ewydRLFimneixmVy2zdivRl+AF6jaYPC8ERxGDmFSiqui6SfPd+g==", + "requires": { + "is-core-module": "^2.11.0", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "response-iterator": { + "version": "0.2.6", + "resolved": "https://registry.npmjs.org/response-iterator/-/response-iterator-0.2.6.tgz", + "integrity": "sha512-pVzEEzrsg23Sh053rmDUvLSkGXluZio0qu8VT6ukrYuvtjVfCbDZH9d6PGXb8HZfzdNZt8feXv/jvUzlhRgLnw==" + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "requires": { + "glob": "^7.1.3" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "ripemd160-min": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/ripemd160-min/-/ripemd160-min-0.0.6.tgz", + "integrity": "sha512-+GcJgQivhs6S9qvLogusiTcS9kQUfgR75whKuy5jIhuiOfQuJ8fjqxV6EGD5duH1Y/FawFUMtMhyeq3Fbnib8A==" + }, + "rlp": { + "version": "2.2.7", + "resolved": "https://registry.npmjs.org/rlp/-/rlp-2.2.7.tgz", + "integrity": "sha512-d5gdPmgQ0Z+AklL2NVXr/IoSjNZFfTVvQWzL/AM2AOcSzYP2xjlb0AC8YyCLc41MSNf6P6QVtjgPdmVtzb+4lQ==", + "requires": { + "bn.js": "^5.2.0" + } + }, + "rpc-websockets": { + "version": "7.5.1", + "resolved": "https://registry.npmjs.org/rpc-websockets/-/rpc-websockets-7.5.1.tgz", + "integrity": "sha512-kGFkeTsmd37pHPMaHIgN1LVKXMi0JD782v4Ds9ZKtLlwdTKjn+CxM9A9/gLT2LaOuEcEFGL98h1QWQtlOIdW0w==", + "requires": { + "@babel/runtime": "^7.17.2", + "bufferutil": "^4.0.1", + "eventemitter3": "^4.0.7", + "utf-8-validate": "^5.0.2", + "uuid": "^8.3.2", + "ws": "^8.5.0" + }, + "dependencies": { "ws": { - "version": "7.5.9", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", - "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", - "requires": {} - }, - "xstream": { - "version": "11.14.0", - "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", - "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", - "requires": { - "globalthis": "^1.0.1", - "symbol-observable": "^2.0.3" - }, - "dependencies": { - "symbol-observable": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", - "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==" - } - } + "version": "8.13.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.13.0.tgz", + "integrity": "sha512-x9vcZYTrFPC7aSIbj7sRCYo7L/Xb8Iy+pW0ng0wt2vCJv7M9HOMy0UoN3rr+IFC7hb7vXoqS+P9ktyLLLhO+LA==", + "requires": {} + } + } + }, + "rxjs": { + "version": "7.8.1", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.8.1.tgz", + "integrity": "sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==", + "requires": { + "tslib": "^2.1.0" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "scrypt-js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/scrypt-js/-/scrypt-js-3.0.1.tgz", + "integrity": "sha512-cdwTTnqPu0Hyvf5in5asVdZocVDTNRmR7XEcJuIzMjJeSHybHl7vpB66AzwTaIg6CLSbtjcxc8fqcySfnTkccA==" + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", + "requires": { + "randombytes": "^2.1.0" + } + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==" + }, + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==" + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "sha3": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/sha3/-/sha3-2.1.4.tgz", + "integrity": "sha512-S8cNxbyb0UGUM2VhRD4Poe5N58gJnJsLJ5vC7FYWGUmGhcsj4++WaIOBFVDxlG0W3To6xBuiRh+i0Qp2oNCOtg==", + "requires": { + "buffer": "6.0.3" + } + }, + "shelljs": { + "version": "0.8.5", + "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.5.tgz", + "integrity": "sha512-TiwcRcrkhHvbrZbnRcFYMLl30Dfov3HKqzp5tO5b4pt6G/SezKcYhmDg15zXVBswHmctSAQKznqNW2LO5tTDow==", + "requires": { + "glob": "^7.0.0", + "interpret": "^1.0.0", + "rechoir": "^0.6.2" + } + }, + "shx": { + "version": "0.3.4", + "resolved": "https://registry.npmjs.org/shx/-/shx-0.3.4.tgz", + "integrity": "sha512-N6A9MLVqjxZYcVn8hLmtneQWIJtp8IKzMP4eMnx+nqkvXoqinUPCbUFLp2UcWTEIUONhlk0ewxr/jaVGlc+J+g==", + "requires": { + "minimist": "^1.2.3", + "shelljs": "^0.8.5" + } + }, + "snake-case": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/snake-case/-/snake-case-3.0.4.tgz", + "integrity": "sha512-LAOh4z89bGQvl9pFfNF8V146i7o7/CqFPbqzYgP+yYzDIDeS9HaNFtXABamRW+AQzEVODcvE79ljJ+8a9YSdMg==", + "requires": { + "dot-case": "^3.0.4", + "tslib": "^2.0.3" + } + }, + "snakecase-keys": { + "version": "5.4.5", + "resolved": "https://registry.npmjs.org/snakecase-keys/-/snakecase-keys-5.4.5.tgz", + "integrity": "sha512-qSQVcgcWk8mQUN1miVGnRMAUye1dbj9+F9PVkR7wZUXNCidQwrl/kOKmoYf+WbH2ju6c9pXnlmbS2he7pb2/9A==", + "requires": { + "map-obj": "^4.1.0", + "snake-case": "^3.0.4", + "type-fest": "^2.5.2" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==" + }, + "store2": { + "version": "2.14.2", + "resolved": "https://registry.npmjs.org/store2/-/store2-2.14.2.tgz", + "integrity": "sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==" + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "strip-bom": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", + "integrity": "sha512-vavAMRXOgBVNF6nyEEmL3DBK19iRpDcoIwW+swQ+CbGiu7lju6t+JklA1MHweoWtadgt4ISVUsXLyDq34ddcwA==", + "optional": true + }, + "strip-hex-prefix": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/strip-hex-prefix/-/strip-hex-prefix-1.0.0.tgz", + "integrity": "sha512-q8d4ue7JGEiVcypji1bALTos+0pWtyGlivAWyPuTkHzuTCJqrK9sWxYQZUq6Nq3cuyv3bm734IhHvHtGGURU6A==", + "requires": { + "is-hex-prefixed": "1.0.0" + } + }, + "strip-json-comments": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz", + "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==" + }, + "superstruct": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/superstruct/-/superstruct-1.0.3.tgz", + "integrity": "sha512-8iTn3oSS8nRGn+C2pgXSKPI3jmpm6FExNazNpjvqS6ZUJQCej3PUXEKM8NjHBOs54ExM+LPW/FBRhymrdcCiSg==" + }, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", + "requires": { + "has-flag": "^3.0.0" + } + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==" + }, + "text-encoding-utf-8": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/text-encoding-utf-8/-/text-encoding-utf-8-1.0.2.tgz", + "integrity": "sha512-8bw4MY9WjdsD2aMtO0OzOCY3pXGYNx2d2FfHRVUKkiCPDWjKuOlhLVASS+pD7VkLTVjW268LYJHwsnPFlBpbAg==" + }, + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==" + }, + "through2": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", + "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "requires": { + "readable-stream": "~2.3.6", + "xtend": "~4.0.1" + }, + "dependencies": { + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ==" }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + "readable-stream": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.8.tgz", + "integrity": "sha512-8p0AUk4XODgIewSi0l8Epjs+EVnWiK7NoDIEGU0HhE7+ZyY8D1IMY7odu5lRrFXGg71L15KG8QrPmum45RTtdA==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } }, - "y18n": { - "version": "5.0.8", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", - "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" }, - "yargs": { - "version": "16.2.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", - "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + } + } + }, + "tiny-secp256k1": { + "version": "1.1.6", + "resolved": "https://registry.npmjs.org/tiny-secp256k1/-/tiny-secp256k1-1.1.6.tgz", + "integrity": "sha512-FmqJZGduTyvsr2cF3375fqGHUovSwDi/QytexX1Se4BPuPZpTE5Ftp5fg+EFSuEf3lhZqgCRjEG3ydUQ/aNiwA==", + "requires": { + "bindings": "^1.3.0", + "bn.js": "^4.11.8", + "create-hmac": "^1.1.7", + "elliptic": "^6.4.0", + "nan": "^2.13.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "requires": { + "rimraf": "^3.0.0" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==" + }, + "toml": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/toml/-/toml-3.0.0.tgz", + "integrity": "sha512-y/mWCZinnvxjTKYhJ+pYxwD0mRLVvOtdS2Awbgxln6iEnt4rk0yBxeSBHkGJcPucRiG0e55mwWp+g/05rsrd6w==" + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==" + }, + "ts-invariant": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/ts-invariant/-/ts-invariant-0.10.3.tgz", + "integrity": "sha512-uivwYcQaxAucv1CzRp2n/QdYPo4ILf9VXgH19zEIjFx2EJufV16P0JtJVpYHy89DItG6Kwj2oIUjrcK5au+4tQ==", + "requires": { + "tslib": "^2.1.0" + } + }, + "ts-log": { + "version": "2.2.5", + "resolved": "https://registry.npmjs.org/ts-log/-/ts-log-2.2.5.tgz", + "integrity": "sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==" + }, + "ts-mocha": { + "version": "10.0.0", + "resolved": "https://registry.npmjs.org/ts-mocha/-/ts-mocha-10.0.0.tgz", + "integrity": "sha512-VRfgDO+iiuJFlNB18tzOfypJ21xn2xbuZyDvJvqpTbWgkAgD17ONGr8t+Tl8rcBtOBdjXp5e/Rk+d39f7XBHRw==", + "requires": { + "ts-node": "7.0.1", + "tsconfig-paths": "^3.5.0" + }, + "dependencies": { + "diff": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", + "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==" }, - "yargs-parser": { - "version": "20.2.4", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", - "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + "mkdirp": { + "version": "0.5.6", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.6.tgz", + "integrity": "sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw==", + "requires": { + "minimist": "^1.2.6" + } }, - "yargs-unparser": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", - "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", - "requires": { - "camelcase": "^6.0.0", - "decamelize": "^4.0.0", - "flat": "^5.0.2", - "is-plain-obj": "^2.1.0" - }, - "dependencies": { - "camelcase": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", - "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" - } - } + "ts-node": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-7.0.1.tgz", + "integrity": "sha512-BVwVbPJRspzNh2yfslyT1PSbl5uIk03EZlb493RKHN4qej/D06n1cEhjlOJG69oFsE7OT8XjpTUcYf6pKTLMhw==", + "requires": { + "arrify": "^1.0.0", + "buffer-from": "^1.1.0", + "diff": "^3.1.0", + "make-error": "^1.1.1", + "minimist": "^1.2.0", + "mkdirp": "^0.5.1", + "source-map-support": "^0.5.6", + "yn": "^2.0.0" + } }, "yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yn/-/yn-2.0.0.tgz", + "integrity": "sha512-uTv8J/wiWTgUTg+9vLTi//leUl5vDQS6uii/emeTb2ssY7vl6QWf2fFbIIGjnhjvbdKlU0ed7QPgY1htTC86jQ==" + } + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "dependencies": { + "acorn": { + "version": "8.8.2", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.2.tgz", + "integrity": "sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==" }, - "yocto-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", - "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + } + } + }, + "tsconfig-paths": { + "version": "3.14.2", + "resolved": "https://registry.npmjs.org/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz", + "integrity": "sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g==", + "optional": true, + "requires": { + "@types/json5": "^0.0.29", + "json5": "^1.0.2", + "minimist": "^1.2.6", + "strip-bom": "^3.0.0" + } + }, + "tslib": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.5.0.tgz", + "integrity": "sha512-336iVw3rtn2BUK7ORdIAHTyxHGRIHVReokCR3XjbckJMK7ms8FysBfhLR8IXnAgy7T0PTPNBWKiH514FOW/WSg==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "tweetnacl-util": { + "version": "0.15.1", + "resolved": "https://registry.npmjs.org/tweetnacl-util/-/tweetnacl-util-0.15.1.tgz", + "integrity": "sha512-RKJBIj8lySrShN4w6i/BonWp2Z/uxwC3h4y7xsRrpP59ZboCd0GpEVsOnMDYLMmKBpYhb5TgHzZXy7wTfYFBRw==" + }, + "type-detect": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", + "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==" + }, + "type-fest": { + "version": "2.19.0", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-2.19.0.tgz", + "integrity": "sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==" + }, + "typeforce": { + "version": "1.18.0", + "resolved": "https://registry.npmjs.org/typeforce/-/typeforce-1.18.0.tgz", + "integrity": "sha512-7uc1O8h1M1g0rArakJdf0uLRSSgFcYexrVoKo+bzJd32gd4gDy2L/Z+8/FjPnU9ydY3pEnVPtr9FyscYY60K1g==" + }, + "typescript": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-5.0.4.tgz", + "integrity": "sha512-cW9T5W9xY37cc+jfEnaUvX91foxtHkza3Nw3wkoF4sSlKn0MONdkdEndig/qPBWXNkmplh3NzayQzCiHM4/hqw==" + }, + "u3": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/u3/-/u3-0.1.1.tgz", + "integrity": "sha512-+J5D5ir763y+Am/QY6hXNRlwljIeRMZMGs0cT6qqZVVzzT3X3nFPXVyPOFRMOR4kupB0T8JnCdpWdp6Q/iXn3w==" + }, + "untildify": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/untildify/-/untildify-4.0.0.tgz", + "integrity": "sha512-KK8xQ1mkzZeg9inewmFVDNkg3l5LUhoq9kN6iWYB/CC9YMG8HA+c1Q8HwDe6dEX7kErrEVNVBO3fWsVq5iDgtw==" + }, + "utf-8-validate": { + "version": "5.0.10", + "resolved": "https://registry.npmjs.org/utf-8-validate/-/utf-8-validate-5.0.10.tgz", + "integrity": "sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==", + "requires": { + "node-gyp-build": "^4.3.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "vlq": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/vlq/-/vlq-2.0.4.tgz", + "integrity": "sha512-aodjPa2wPQFkra1G8CzJBTHXhgk3EVSwxSWXNPr1fgdFLUb8kvLV1iEb6rFgasIsjP82HWI6dsb5Io26DDnasA==" + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==" + }, + "whatwg-url": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-5.0.0.tgz", + "integrity": "sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==", + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "wif": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/wif/-/wif-2.0.6.tgz", + "integrity": "sha512-HIanZn1zmduSF+BQhkE+YXIbEiH0xPr1012QbFEGB0xsKqJii0/SqJjyn8dFv6y36kOznMgMB+LGcbZTJ1xACQ==", + "requires": { + "bs58check": "<3.0.0" + } + }, + "workerpool": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/workerpool/-/workerpool-6.2.1.tgz", + "integrity": "sha512-ILEIE97kDZvF9Wb9f6h5aXK4swSlKGUcOEGiIYb2OOu/IrDU9iwj0fD//SsA6E5ibwJxpEvhullJY4Sl4GcpAw==" + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } }, - "zen-observable": { - "version": "0.8.15", - "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", - "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } }, - "zen-observable-ts": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", - "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", - "requires": { - "zen-observable": "0.8.15" - } + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" } + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==" + }, + "ws": { + "version": "7.5.9", + "resolved": "https://registry.npmjs.org/ws/-/ws-7.5.9.tgz", + "integrity": "sha512-F+P9Jil7UiSKSkppIiD94dN07AwvFixvLIj1Og1Rl9GGMuNipJnV9JzjD6XuqmAeiswGvUmNLjr5cFuXwNS77Q==", + "requires": {} + }, + "xstream": { + "version": "11.14.0", + "resolved": "https://registry.npmjs.org/xstream/-/xstream-11.14.0.tgz", + "integrity": "sha512-1bLb+kKKtKPbgTK6i/BaoAn03g47PpFstlbe1BA+y3pNS/LfvcaghS5BFf9+EE1J+KwSQsEpfJvFN5GqFtiNmw==", + "requires": { + "globalthis": "^1.0.1", + "symbol-observable": "^2.0.3" + }, + "dependencies": { + "symbol-observable": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-2.0.3.tgz", + "integrity": "sha512-sQV7phh2WCYAn81oAkakC5qjq2Ml0g8ozqz03wOGnx9dDlG1de6yrF+0RAzSJD8fPUow3PTSMf2SAbOGxb93BA==" + } + } + }, + "xtend": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", + "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==" + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.4", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.4.tgz", + "integrity": "sha512-WOkpgNhPTlE73h4VFAFsOnomJVaovO8VqLDzy5saChRBFQFBoMYirowyW+Q9HB4HFF4Z7VZTiG3iSzJJA29yRA==" + }, + "yargs-unparser": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-2.0.0.tgz", + "integrity": "sha512-7pRTIA9Qc1caZ0bZ6RYRGbHJthJWuakf+WmHK0rVeLkNrrGhfoabBNdue6kdINI6r4if7ocq9aD/n7xwKOdzOA==", + "requires": { + "camelcase": "^6.0.0", + "decamelize": "^4.0.0", + "flat": "^5.0.2", + "is-plain-obj": "^2.1.0" + }, + "dependencies": { + "camelcase": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-6.3.0.tgz", + "integrity": "sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==" + } + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + }, + "yocto-queue": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/yocto-queue/-/yocto-queue-0.1.0.tgz", + "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==" + }, + "zen-observable": { + "version": "0.8.15", + "resolved": "https://registry.npmjs.org/zen-observable/-/zen-observable-0.8.15.tgz", + "integrity": "sha512-PQ2PC7R9rslx84ndNBZB/Dkv8V8fZEpk83RLgXtYd0fwUgEjseMn1Dgajh2x6S8QbZAFa9p2qVCEuYZNgve0dQ==" + }, + "zen-observable-ts": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/zen-observable-ts/-/zen-observable-ts-1.2.5.tgz", + "integrity": "sha512-QZWQekv6iB72Naeake9hS1KxHlotfRpe+WGNbNx5/ta+R3DNjVO2bswf63gXlWDcs+EMd7XY8HfVQyP1X6T4Zg==", + "requires": { + "zen-observable": "0.8.15" + } } + } } diff --git a/target_chains/sui/scripts/package.json b/target_chains/sui/scripts/package.json index db265d07ff..1e16491e4f 100644 --- a/target_chains/sui/scripts/package.json +++ b/target_chains/sui/scripts/package.json @@ -1,27 +1,27 @@ { - "name": "pyth-sui-integration-test-and-deploy-scripts", - "version": "0.0.1", - "description": "Pyth Sui Integration Tests and Scripts", - "main": "index.js", - "license": "MIT", - "dependencies": { - "@certusone/wormhole-sdk": "^0.9.12", - "@mysten/sui.js": "^0.32.2", - "@optke3/sui.js": "0.33.0", - "@pythnetwork/client": "^2.17.0", - "@pythnetwork/price-service-client": "^1.4.0", - "@pythnetwork/price-service-sdk": "^1.2.0", - "chai": "^4.3.7", - "dotenv": "^16.0.3", - "mocha": "^10.2.0", - "prettier": "^2.8.7", - "ts-mocha": "^10.0.0", - "ts-node": "^10.9.1", - "typescript": "^5.0.4" - }, - "devDependencies": { - "@types/chai": "^4.3.4", - "@types/mocha": "^10.0.1", - "@types/node": "^18.16.3" - } + "name": "pyth-sui-integration-test-and-deploy-scripts", + "version": "0.0.1", + "description": "Pyth Sui Integration Tests and Scripts", + "main": "index.js", + "license": "MIT", + "dependencies": { + "@certusone/wormhole-sdk": "^0.9.12", + "@mysten/sui.js": "^0.32.2", + "@optke3/sui.js": "0.33.0", + "@pythnetwork/client": "^2.17.0", + "@pythnetwork/price-service-client": "^1.4.0", + "@pythnetwork/price-service-sdk": "^1.2.0", + "chai": "^4.3.7", + "dotenv": "^16.0.3", + "mocha": "^10.2.0", + "prettier": "^2.8.7", + "ts-mocha": "^10.0.0", + "ts-node": "^10.9.1", + "typescript": "^5.0.4" + }, + "devDependencies": { + "@types/chai": "^4.3.4", + "@types/mocha": "^10.0.1", + "@types/node": "^18.16.3" + } } diff --git a/target_chains/sui/scripts/price_identifier_to_object_id.json b/target_chains/sui/scripts/price_identifier_to_object_id.json index 37f0ba411a..79ccdc3256 100644 --- a/target_chains/sui/scripts/price_identifier_to_object_id.json +++ b/target_chains/sui/scripts/price_identifier_to_object_id.json @@ -1,198 +1,198 @@ { - "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", - "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x813dab097dc9a913a37553dc21a51ec264c5b3018a9148530ee5d4131d9cd948", - "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x12cd27871301e7b10488d294b21fdca0e02208d60d966cc363137c432bce49dd", - "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0x8f011dc003102d272bcfb9a1423ed9ab16bf8720102888dbdf3481dc2b81fe52", - "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xbff692a9a42736393001e997f0895203c81a0b0d7d100177150d3ca2404c2264", - "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0x7b06c8e0204faba400a6b69c75b51fe84ef24c4251340f4b00eca37852ef9944", - "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0xc9c0f5b0c331f02792cf47a6136fdea01772aa6e8bcd0acd7927b2cbf0c9500b", - "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0x73198faa767ea791159fb8c64c71ff490793fbe1abec0af9d959653739b86242", - "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0x7786857b0713ec6b060c873ba9ebf70cdbe8770453214aa7129e0965d3a8725d", - "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xd9b07adaceffb21296de31b46ef0f1db8825a83098d22af07f60205c6394bdd7", - "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x2b9e4beab792ea64bf6dea7d1d4455a6ff70744602a73388b3d03fc58cc0eca4", - "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0xe6eb8bc3a9cdab5955a78ebf0dd3f5e4ed3458ab4491285345dd8a6d0aecd2af", - "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x29405b9f25ad9deb23357298732edb4383d3745ffd9a0373cf3028992d85cf99", - "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0x94223482aa78b4dc59f670ca42c8c9a93b90b0c21721f6a9d679e3f5a50e4434", - "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0x6f5059e755771ad838278b6407a769717b40629f4655bfe9c2afe781cce5d966", - "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x08eae5969d90a4f03e33582077407608f74df4ccc5273cae3236710f68dc348e", - "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0xe883778d404e7c9eb7ff6fa190e8ddaa26a1b175c02cb00b1b72a4390e38c5f7", - "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0x0ec8b3c28c4240c5acc6c7ff145310d6d2129e6b718189be9c36828d75cf136e", - "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0x72f36e3b229031b91718b533cde17bf48a3222f4821486f47801671f8d584308", - "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0x35f9fa1bc253e91cfb42396800a37886b7d5fda5e015a9a5d7eea24b4a516421", - "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0xc6e1c6307fa87aa0f3c8e33ce786c6a80ca4aa6de74b8e1a62d9e65ad1047aac", - "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0x75b7db1ba4946126fa9193d4d00216cd1a52a17087c35feda74905bd0386c076", - "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0x1666ee917cb925fd3d78da42bfb14c8aa2f51ba1fdfe7a424220fa709133426a", - "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x7ceb15c8e72d0b917103e43a695e94e40dc653bccbc0806bb71d3ea6539884da", - "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0x663c14c977c46b85b5ea3f1a97ebc5b93d8cf6cf2c94d01dbcfaef0d0ef9efdf", - "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0x8e812924daaf7dc02188976e71d20d86baaf90129d1c1f4470b7e79084fed804", - "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0x54499295661a8cfb2c4da4184e330ab5948c4ec7522cad5f96e923b97bc91e61", - "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0x3c90b83f0acb025336debeb37d6014cdc788d9bece7828eb1412ebe44a01d31f", - "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0x0ffe43da21a5d957c833d778b0f527b82980f1b210cafa592054f0a026b658b4", - "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0xb9792f919aebd4ce7eb2a4c4b400dc40c2260f81b516e62cd3bb16a2f1cdaec3", - "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0x784f3db957f968930f9ac749c9b61ef614716964d93e689a482e15c665cf210e", - "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x847b4e30707fbaedbe1ebf261a9c08299b53389def13b6268f0aaed06118b711", - "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0x243536ac6942683448eb0f0013540ee72a6d31dd4f6efebb44a0918de2234a67", - "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0x421f3e1cc42aa5cfd4dc87de41c16bde36a9dffb3392bf61c70d6b3f0ba73a99", - "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0xf6bcaef2cb75a98bf2c16af8e0b0a36127f865be99a456ebbbbcfc2d54632fc2", - "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0x2ef5a5df964ff7cecceb968fbe84e8e12e6048518ab3c24e9343b46f6d1dd011", - "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xc38286eec0a9bdc4f7f8ebff7070bf4441ddb06af48cca506cd5477f72a1ec56", - "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0x8190db687f806ebb5a85e19789a969680e0fd8380724c4f51353ed0fd57d0a35", - "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x3192a035740b7d8a9a2f34e87983f43052bda1a8df4f257dba38d0d021b5afe5", - "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0x7c9f660c492c80357be785fb2b2eeb37147343740244975bc9622311281c945c", - "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0x6535ece8ec0e0a6a6f1baf5b80f64bd8d5c18fa2f40b5023e495ad02a9564a49", - "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xe6638d450412b1934890a43d48606d91ad5c945a25ace66f211ccc9f606cf405", - "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0x25325258fd0fb6965aedf380cde6636109d6e3b6c2faa47ec91d2f976bbae702", - "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0x537d0fd5f9576506fce8c81f976a5e7dd183ef875585e78cde420baa9c2dc0cf", - "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0x342f11fa43dbe19d0d5097f28526f4c40a7c9e84097a59d66bb619bff59d971b", - "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x300a7f0a24b012be8b90b21761624f1da3109b33bf47d8b0e34816b824ce2472", - "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x88f936c9b272a119b80045783f70f119b5d7214242c2ffa1dab67c1d2645043c", - "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x3aa76ccda83a8025ad9d12ae64b8efff22fbefa2edee12ddb6a8ee62c15db628", - "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0x1e81c65a2bb74c8870cbf7620003dc978623b83da4f8ad0615d02a4c8ee9be71", - "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x6728f81af4b438713f0a6bafac0a9c5b19559fcb8c9c3da9107a5c5715c77150", - "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x4f8d4f109c805cf57b95add8534e96c2652cf80fc9d6b390797367361c6f9f87", - "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0x393e4f0af86f2b7c4f6cf87053a90fce28be9507462183c08112ab680f5b222b", - "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0x5e5f1fa6a90893daf6400a009781b4e146a9714c9e432719d3dd970d58782dbc", - "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0x25a108e8fabff628d547ade6e7fb5ffba5e3fc4a86d5563c7c9c3f7f89c2838d", - "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0x969a55ba2749858a67b5ac3740218859ff91958711a4726e4729b6358c592541", - "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0x3d4f0ed8ede749b0b7969a845a78a3e04052c5bd67632f9ca3e6b8c95e0471e0", - "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0xa2621adcdd0a0eb0856a4bbc95a7a29ac2576915025f1ffff42a0387c659bd0f", - "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0x7e427b11a67228418d02657537dbbe12e653fb6e25c0553e6cccfd93e09b62f9", - "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x6bc83acae136c07fb371388c5701aab8c4093719964434c48fcbb24fcd242302", - "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x6da106d1876e1ae75110398ba4b4170b8617fdfd7f765682fc2556cfd8fad477", - "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0xdc8c7a10228f753c4a806f00e624f6d5111bcb01fa1a25e49deb8eab5ef3b959", - "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x41810c3ebd3ff83df1d52fce4ae30ae393defeada8c35334f658b552e702a808", - "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0xa59919df888ea0a69aeeb865145ee208e0b5e96e744276097dc5d370ce12c937", - "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0x094c553dcaefa8daccac6512a27b6bd518962acac070c4a90fd4cbcc7d93cd2d", - "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x7cc9590c0632c06b336a729fb338855fa50a4c1f56f6bf19792607545ebfce75", - "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0x0beeaa7af57e04218e931c260a19f7cd5d73728ca9b992e7eaadda5a92352a6c", - "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x5be5a532a4234472bd42f648c860cc6ce505f4abba1d1ff280c307edaa91c6e5", - "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0x970d1a400036ee4ed970edc5fc28c1e1a063fd70abaa5635609f84fda603477c", - "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0xb9b0291e4443cf2919528d4f190963f59f73b2fa60d042ab6d3525ea747e012e", - "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0x84acdb9701e59d7fe938dafaf9d84161838cb862e84f307124a1b1e81e6b77d1", - "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0x9be7c21f6f7d2b6271fe5dfa45f71c067b0a680aa1ca46ff436afba19336059f", - "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0x4e959b3d766a38dd63a3dccadda27ee46608b13a0a17d66ba50f6c6b43794492", - "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0xfdbf22be9ca4e8be48886404f4eda806287824318d22fbd8bbea6a06ff21a749", - "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0x82f7cc493ac5c0c0e32c5797cb61372a985439b996ae320926df3eaf982255f9", - "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0x06e3b2601f985409297e81f89b64df8a22e4bda271630322b723c799b3ca558f", - "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0x60cf8eb3bb66b9f1ee5ad5971ce24f85750ed6d65357278cdd24508018c0fb77", - "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x2819077ee5dc736f75d74505f2686240d84618948ec7c94ac67139c8335c3dfa", - "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x0948ff7e93869e56cfa994a8611af061dab31d429017b64cbdbdec687807a4bd", - "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x59432d2fe5002ddeb6d4b245cfdc6ee8a0b441ff2fb5a9d154f12ef526f40d86", - "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0xc7dd91bb190bb6b918bcbc1671b8820088e5aab9502236f55ed204aae8d437c7", - "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0x97e8f6a69d1e3bd5a9aea5cbc12ebaf74a2268c21220306c5a4fcce978c3134e", - "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0xf8a94a60b67fc29212788ff0d125bd00a78873ce64a5f166989fa0a8a6051880", - "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0xfc6f0ecf57581be16f246383c1b0d39d27d47fd96097b77dd3d9a052f7efd9e5", - "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0x2121ae366fc6daf8a79c5420153e16a31b4c6a485666c11ef4ab20dcedfc1904", - "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xb6dfe8dd1f13f5db49e93909e8151cda0b3eb873950522e2c6dd9409057eea03", - "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0x397baeff4f1ad933330bff0101898d7dd376d33467bfee1fe4c8a13b6930c669", - "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0x6a2caf39dec7db0ca51e6cf1462756efc7b3637490920c3d111cd3d7da46a6e9", - "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0x5e0b5d2f55fe8ea36709508a4741219a009e32273daa8c43278a89b4c67112e4", - "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0xe2f01b5ad1edec664d3d646a708b26f85adde915999d56b2f15c0076a140cbd1", - "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x8274e4be99bf8117209b4cdcc963fc397b868f360d20ecf15233591a84da752c", - "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0x0e8d64923791a322a31ccc8a8c7e1da47622c776414cc2a57c73795dcdad7b88", - "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0x3f0a05354694d442310e2acba79deb48621a7ca32c170d5bc068fd85dbec760e", - "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0x3a552d9bcc7dbb8f9bb088f9fc81163a27aae54b79de7192a2ee88803a2c4598", - "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x262feca09bba056ee9b05c8d0e438c11862533bdabd42f8e79e37a03e994031e", - "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0x35988ff2b50960965250ccfc4a1be70ffa1a327e0cacfb7618db155d5a93d95f", - "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0xf21863beeed8d8213ad163a37547ca404879875838cefd773f45966140e03536", - "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x94538413241766c917b5837bc66a2f07201f9df610e985bc70f6f1a65bc8b824", - "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0xe477c82786dd5186a36ada1d0092522bc04422a133bee0882cbffebee74bdfaf", - "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0x83e3bcf94d15dd8246f343a0c3a25b531da1882a237e65d0e3afa8ccc29c2b53", - "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0xa6f4d72ebb3d8d3b847f560c0e1b9b53be59c61cb17905efcb78d9e59097eb61", - "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x2a2acf181c73055bfbce46e0bd01ffbb73b4481fee51d1442dd0fcfca7011ee1", - "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0x415149af9fd9d712a5c543d203f5e7a4647232c93291b51cc77dda27591acdf3", - "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0x3d537759f6eb0f5d8a0894ab553553e70c7526f15c026641ab457d6e600dd488", - "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0xf8bb072d7779c1f9eab2b5de52a0c7db7603cfc9076151bb5a2ba1ca2ed385b0", - "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0xede216a9f98d06bf4ebab1a696ae992590605bf9bbaf05f742b96ab5d6ba0426", - "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0xdc7f9dbd88b507e36df3737e44106b8594b75eb4324412e960d113f5f61e2f55", - "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0xb148065aef7a6902b5a56404db8dc728253cc3562d6a0c274de4d4db91746cd7", - "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0xd3261ba9e558eda4056861879ede295549b416c75f3b756ca59145552b43ed03", - "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0xa6241689d50ea973e4e0efa11e64f05d85255e18610bd094c6ee95efc2f670b7", - "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0xc9552aff3ed695958e7279ac930e5f4062fb3d9e0831c5fdcf1564019d2581b2", - "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0x1df777cf70c4741367735002de6dbbed06346194749d9825b8578587a139f964", - "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0x57bd3abe704df070c95bd142463c919f7eb8aab851f56a437429d40a2bcc5c04", - "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0x44b2efb1ffc530ee28b53ad75aba15d03beeac3d3ac00ab456a95e72b6e46e28", - "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0xfaa34d98d5776b63a0aa707cac04e3906a769c7b9822181e5831c3fdbe3852bc", - "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0xec8b5dc385c72e1925585a8809df24b1797663b362d7ee698e94c244d95c4502", - "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0xdd9518d23f6500d095760fe27b6be884cb729141828840501c745fbbb4077ac1", - "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x2ad5bca64988a60eb6c015984d86f896d7780f89ba4e17d239a8d18dd0ff3c62", - "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0xb1ce5c0bc015130411f74c52c69b17b34778beda878cf35582f4db10e1b37798", - "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0xf159bc6a781614afd84e7452a57afcea4b02c2a1d89e2af4b345d5704648274f", - "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0x17d6e86db99e31eec29b25faf06888bbb0cc5f5bad64d462c36c095384236eb8", - "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0x1f81a0a54c5acf8c6849d3555566ae3bcc078fac98ac44d95a248579e00254a6", - "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x0c51789af2ef3a02c1a8dd4a5e90898ae4ab495909a0dec337d2adbf641f9e14", - "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xc1ee9666521d2494288b3a4264e7428c4be31fbfd0412b7d3e480fa66cb7868e", - "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0x1e56055aa5510e42a522ac0d45baadeec54cb1ab4f80ed05fbcb01d6a63fe709", - "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0x6c9fce723d522ec708cd4ff6d363277b03fe48fafee79e2b53ce7dfd95838f72", - "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0x1d8e49343d812229fba1f2e7f04a6162224a566681d781c71b792fdc1b08947c", - "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0xce84576e03736d879f77af0652b62185234af2ccc4e2e21e276813fa0ca47dbd", - "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x30a78a430a10cae0d78913036d460eef5c6085c46f8ecf1ad7ba8dee76a12527", - "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xf261698164fef1649da47f846c6677648f524bc880b257fc771dd65ac540487d", - "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0xedbc661a883e5f47ea5fa4bf5a06374fb60827e5e0e2ac413a96187e3f39a1e3", - "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x65dfab50959d4f7a0e4bec441a6e0422d4dfcd0e23921c0069e35cc59cad38aa", - "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0x511286c4c9ce19b57a4ec47efd46f4a336175d36659a5b2741e611205b184853", - "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x6ed3ddec8444bee9863077d70a0e8ca506242de914f1b3b581c88aecfa67bae3", - "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0x7e1303e5cfb944c6b0d95e5f9fab038b305c8d80054394e24d8bf64b34b8553a", - "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x57f5289b1bb4008c2090b3e7401e8abdfdfb1bc5b6a4d649752bd537ddc04722", - "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x2eb3509bf33b5e29124d61b4affc78b271c5b13aa60d4be9ec1d659ff41eaaff", - "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c", - "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0x97faf2540a0b1ddff6e7f25bbfc7067eecad0334524a70e1caffdc519e2098d3", - "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x9e743ce40f1f5cad26d7b9a83dd1b7750d9637f13edcfa95ec45ffaaac81cf4d", - "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0x794047e361d3837b84a3941bb8fee704e083433404e68e20e6d54dbb5673cad5", - "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0xec956a3c13b3db5c34acc7a19b2d655886c25483254065c7f770ebe64c71b3a2", - "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0x6928f835a904ad05c54fc1eb9d1269d5396e62eac58cf53f7967dfe54c2e8ced", - "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0xf680a00084f0e61980327af92d5bd5f5eead25d5ad392c18669fe9db72ab1de8", - "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0x7b86aa064d0d8c77685fe76955f83ecc2c63d06bbdf5ee21273e6866243653f9", - "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0x2746e22f8f134808ba8332294d5687b975c8dbabca51f5e773483a8b5c006de9", - "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0xd698c1ab8cecb252cd6c05371b19885d7f3937ababd26250745bb1d9fa6ee019", - "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x70e632d62a24202debf5e4099010c5c360b26f8ce9bcfbd49d52789a3c45a9c5", - "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0xb5469f185e5a69f8591b4cc9d326eae8fddb86df381408d8ea428ad1001231b3", - "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x6acb3837b8b069d5af140c6ec99358c862d9af443aa87ca8dbdecdc4963dc83e", - "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0x43c1205fc3af779d6b9719327d60bc4cf61a2509264defcd7cbc104e731cf461", - "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0x104ef1548854fd68403152a4661360a484e116c8926d5435325684339e7a4792", - "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0x81879f4a1e9a6115d6a8f1cb02a13cd6bf9e2713ccd4518c39290ab0aab855bf", - "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0x4e960abf91b2868b8f7003d4c788f2971f17fdd673c552d8c6c7abdbcf1264f3", - "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x3b2e581f72613f5ca5845ecd97fa54133c4ef2edb41d4cee048050ae61352891", - "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xf7aa8fb0db1de5d2e102c3bac7c4b664c7c4f190100681e826d93784c76126f5", - "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0x838e80e58c62e04a7420ff13e450b65df38095aa51471975742b89a6c23e2e0a", - "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0xe42b1d1c8ee5efd399068416bf77f3f194e29a94406acc88a90dd8029bb706aa", - "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0xf5a4f393712a9dc7164f0decbf90af2594a4a7199ea0d380c8e4f265ca7ddd59", - "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0xc15d506b720e9e47f1ab76510eb0d8d93f1a8331a0edb71d30fe2a862693e607", - "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0x858a716e3b2e9e71be3120de427ebf5ec1b461721645c245f948274f13f87c33", - "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0x3736ba57e9fa1f82ba9dcdb63142c2871ab6664ec6d2bae0e185feb698b16211", - "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0xe3e1904ab43bab2a002c7cbfe2a25087211a92f163eb4f8f5ea89905fc0232e2", - "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0x300a46a6b7c9574270a6a261b1fe09765b1d186991b5a7f054b2fb6b89980310", - "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0xa9f457c3e8f90ce4147a5368ac7d1bad29fc3e7a7b566e9da8caea80e70f9015", - "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xf23a24daea2a46388337064f8e466bdc9b848414b246769da8dc756cd19ed352", - "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xda049b4223747412a535f4b007166fbf1b6d7de42f9f49ddf8453d5312a3e66b", - "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0xc840d2761d833abbc469ae1140d1eb5827d2cd2d1bf70520fa1281debdf99926", - "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0x2d7aa5836ae880f2bd9b1b14d18abef42b5cc8116b332c368457555899fdf184", - "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0xcc7b6d3a8fc8b32878e333578ab57e96a7ef8ec4498bcc6e839c362924ea52d3", - "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0xd79ce52a240701df5add9d5f325ab0222271e8ff70e36150426546470bdfd3bc", - "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0x0950d9b3f34603308ac7583d791fff9e2b9627dbbf9490f5dd7dd67410a6093f", - "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0x7438e09365085c82eabdf045069e749fb95b4e7d39c1ac56fa74c1f5e62500c4", - "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0x21a473555224392259558994ae30f93250f305fa14569e452539df785576b629", - "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0x70c306983d152a50905f7561c77ee48938deeb794beaef341bb294c2bb5aa996", - "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0x09ecce08348f4ae9b6f3ac6fac862e441ed9876e33212694c0a4d6639a797c3f", - "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x5854ab7960bb36c34701a6509fd85eed4b505cf15fc68a2e6c297361c0847d50", - "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0x359325eddf76b5a758697c7be661653a0cec39c51214da8e5a7155b6877753fe", - "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0xfb993017bb92a8e2868d6d52b486aea8013dcd9bca8fd557306ee48bdfacbecb", - "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0x1d0afcbaf07da5e4eb570df8b551b24ecfc889c54036de1f31a27bd15a9268d1", - "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x51ca0aacdd00a18ce65eb4614b17c7a50b05861841dcb6b652936463527f38dd", - "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0x374088f90087c668259444d8b4118937cc5b296f2b9f3b9a2435c019fca6c4de", - "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x7a410b6e800f2e2a15b5027b90e855b8cd0954fbb22dd245c4a884a6603f3e55", - "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0x0d0f6fdadb7b2dcd0b4130e44d20195c4b13caeaa1f65c38249c330b4c1307d2", - "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0x00330abb569ac93d08b902bbd9e4c69041511417d3c88450b7291f99422c1587", - "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0xf2a08b0909acde30ef72a7291cda5314b76e544136d83ceb0339fa2c1221aed5", - "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0x1c15c9326be25b19496c25ee66545bfd8151c573a49c6a9075d0a5a98e4f7981", - "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0x540988b6594c264ac5fced6a9021e98b3a3c6764e6f9d1112536c6d2445dbc63", - "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0xa351d146407bd613cb443031d474c0639f3a328af429866b38d094caa21a44a0", - "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x2fc81e546084af17b8d99788f4d05254499de49fa2065d79950f19355e23c781", - "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0xc2d8c65d82ab5413d81ef44e28833be0dd286376ea47e02b26400a67f34c579e", - "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x0624b35d4b654877cf5331f3865b28a8e872efbe40cd877a5470a1e4509107cc", - "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0xc4209783660db421a861200b7164aacd682ca5bc2a53dcd40c9235b78245a0c0", - "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0xa8539d032e6aba8837568af71ddfe4494139ba37e2ccba5df3a6cb0b5d157c60", - "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xcd40ec7af217643b816992906439d9c638e4b97203bebc5a4ceb5eed92f5f82f", - "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0x8c1fd6c6d4e328f4ac2d47d67bde6223d9ba3b1ab9d2d2d819462bb8a39d9079", - "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x16f6f47720607a364c0df4718d78810d5ed8ec5ecac4c18380d6acef614a08e9" - } + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e": "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", + "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad": "0x813dab097dc9a913a37553dc21a51ec264c5b3018a9148530ee5d4131d9cd948", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1": "0x12cd27871301e7b10488d294b21fdca0e02208d60d966cc363137c432bce49dd", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b": "0x8f011dc003102d272bcfb9a1423ed9ab16bf8720102888dbdf3481dc2b81fe52", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0": "0xbff692a9a42736393001e997f0895203c81a0b0d7d100177150d3ca2404c2264", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5": "0x7b06c8e0204faba400a6b69c75b51fe84ef24c4251340f4b00eca37852ef9944", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63": "0xc9c0f5b0c331f02792cf47a6136fdea01772aa6e8bcd0acd7927b2cbf0c9500b", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86": "0x73198faa767ea791159fb8c64c71ff490793fbe1abec0af9d959653739b86242", + "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4": "0x7786857b0713ec6b060c873ba9ebf70cdbe8770453214aa7129e0965d3a8725d", + "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf": "0xd9b07adaceffb21296de31b46ef0f1db8825a83098d22af07f60205c6394bdd7", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717": "0x2b9e4beab792ea64bf6dea7d1d4455a6ff70744602a73388b3d03fc58cc0eca4", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88": "0xe6eb8bc3a9cdab5955a78ebf0dd3f5e4ed3458ab4491285345dd8a6d0aecd2af", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0": "0x29405b9f25ad9deb23357298732edb4383d3745ffd9a0373cf3028992d85cf99", + "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7": "0x94223482aa78b4dc59f670ca42c8c9a93b90b0c21721f6a9d679e3f5a50e4434", + "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0": "0x6f5059e755771ad838278b6407a769717b40629f4655bfe9c2afe781cce5d966", + "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c": "0x08eae5969d90a4f03e33582077407608f74df4ccc5273cae3236710f68dc348e", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32": "0xe883778d404e7c9eb7ff6fa190e8ddaa26a1b175c02cb00b1b72a4390e38c5f7", + "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627": "0x0ec8b3c28c4240c5acc6c7ff145310d6d2129e6b718189be9c36828d75cf136e", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e": "0x72f36e3b229031b91718b533cde17bf48a3222f4821486f47801671f8d584308", + "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879": "0x35f9fa1bc253e91cfb42396800a37886b7d5fda5e015a9a5d7eea24b4a516421", + "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e": "0xc6e1c6307fa87aa0f3c8e33ce786c6a80ca4aa6de74b8e1a62d9e65ad1047aac", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812": "0x75b7db1ba4946126fa9193d4d00216cd1a52a17087c35feda74905bd0386c076", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1": "0x1666ee917cb925fd3d78da42bfb14c8aa2f51ba1fdfe7a424220fa709133426a", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e": "0x7ceb15c8e72d0b917103e43a695e94e40dc653bccbc0806bb71d3ea6539884da", + "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5": "0x663c14c977c46b85b5ea3f1a97ebc5b93d8cf6cf2c94d01dbcfaef0d0ef9efdf", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1": "0x8e812924daaf7dc02188976e71d20d86baaf90129d1c1f4470b7e79084fed804", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a": "0x54499295661a8cfb2c4da4184e330ab5948c4ec7522cad5f96e923b97bc91e61", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623": "0x3c90b83f0acb025336debeb37d6014cdc788d9bece7828eb1412ebe44a01d31f", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d": "0x0ffe43da21a5d957c833d778b0f527b82980f1b210cafa592054f0a026b658b4", + "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd": "0xb9792f919aebd4ce7eb2a4c4b400dc40c2260f81b516e62cd3bb16a2f1cdaec3", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293": "0x784f3db957f968930f9ac749c9b61ef614716964d93e689a482e15c665cf210e", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a": "0x847b4e30707fbaedbe1ebf261a9c08299b53389def13b6268f0aaed06118b711", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58": "0x243536ac6942683448eb0f0013540ee72a6d31dd4f6efebb44a0918de2234a67", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f": "0x421f3e1cc42aa5cfd4dc87de41c16bde36a9dffb3392bf61c70d6b3f0ba73a99", + "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483": "0xf6bcaef2cb75a98bf2c16af8e0b0a36127f865be99a456ebbbbcfc2d54632fc2", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6": "0x2ef5a5df964ff7cecceb968fbe84e8e12e6048518ab3c24e9343b46f6d1dd011", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271": "0xc38286eec0a9bdc4f7f8ebff7070bf4441ddb06af48cca506cd5477f72a1ec56", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5": "0x8190db687f806ebb5a85e19789a969680e0fd8380724c4f51353ed0fd57d0a35", + "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a": "0x3192a035740b7d8a9a2f34e87983f43052bda1a8df4f257dba38d0d021b5afe5", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688": "0x7c9f660c492c80357be785fb2b2eeb37147343740244975bc9622311281c945c", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1": "0x6535ece8ec0e0a6a6f1baf5b80f64bd8d5c18fa2f40b5023e495ad02a9564a49", + "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef": "0xe6638d450412b1934890a43d48606d91ad5c945a25ace66f211ccc9f606cf405", + "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c": "0x25325258fd0fb6965aedf380cde6636109d6e3b6c2faa47ec91d2f976bbae702", + "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8": "0x537d0fd5f9576506fce8c81f976a5e7dd183ef875585e78cde420baa9c2dc0cf", + "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8": "0x342f11fa43dbe19d0d5097f28526f4c40a7c9e84097a59d66bb619bff59d971b", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9": "0x300a7f0a24b012be8b90b21761624f1da3109b33bf47d8b0e34816b824ce2472", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9": "0x88f936c9b272a119b80045783f70f119b5d7214242c2ffa1dab67c1d2645043c", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b": "0x3aa76ccda83a8025ad9d12ae64b8efff22fbefa2edee12ddb6a8ee62c15db628", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c": "0x1e81c65a2bb74c8870cbf7620003dc978623b83da4f8ad0615d02a4c8ee9be71", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628": "0x6728f81af4b438713f0a6bafac0a9c5b19559fcb8c9c3da9107a5c5715c77150", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e": "0x4f8d4f109c805cf57b95add8534e96c2652cf80fc9d6b390797367361c6f9f87", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933": "0x393e4f0af86f2b7c4f6cf87053a90fce28be9507462183c08112ab680f5b222b", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554": "0x5e5f1fa6a90893daf6400a009781b4e146a9714c9e432719d3dd970d58782dbc", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca": "0x25a108e8fabff628d547ade6e7fb5ffba5e3fc4a86d5563c7c9c3f7f89c2838d", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7": "0x969a55ba2749858a67b5ac3740218859ff91958711a4726e4729b6358c592541", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415": "0x3d4f0ed8ede749b0b7969a845a78a3e04052c5bd67632f9ca3e6b8c95e0471e0", + "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd": "0xa2621adcdd0a0eb0856a4bbc95a7a29ac2576915025f1ffff42a0387c659bd0f", + "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485": "0x7e427b11a67228418d02657537dbbe12e653fb6e25c0553e6cccfd93e09b62f9", + "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2": "0x6bc83acae136c07fb371388c5701aab8c4093719964434c48fcbb24fcd242302", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445": "0x6da106d1876e1ae75110398ba4b4170b8617fdfd7f765682fc2556cfd8fad477", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc": "0xdc8c7a10228f753c4a806f00e624f6d5111bcb01fa1a25e49deb8eab5ef3b959", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a": "0x41810c3ebd3ff83df1d52fce4ae30ae393defeada8c35334f658b552e702a808", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0": "0xa59919df888ea0a69aeeb865145ee208e0b5e96e744276097dc5d370ce12c937", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c": "0x094c553dcaefa8daccac6512a27b6bd518962acac070c4a90fd4cbcc7d93cd2d", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501": "0x7cc9590c0632c06b336a729fb338855fa50a4c1f56f6bf19792607545ebfce75", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32": "0x0beeaa7af57e04218e931c260a19f7cd5d73728ca9b992e7eaadda5a92352a6c", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2": "0x5be5a532a4234472bd42f648c860cc6ce505f4abba1d1ff280c307edaa91c6e5", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9": "0x970d1a400036ee4ed970edc5fc28c1e1a063fd70abaa5635609f84fda603477c", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386": "0xb9b0291e4443cf2919528d4f190963f59f73b2fa60d042ab6d3525ea747e012e", + "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b": "0x84acdb9701e59d7fe938dafaf9d84161838cb862e84f307124a1b1e81e6b77d1", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab": "0x9be7c21f6f7d2b6271fe5dfa45f71c067b0a680aa1ca46ff436afba19336059f", + "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace": "0x4e959b3d766a38dd63a3dccadda27ee46608b13a0a17d66ba50f6c6b43794492", + "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d": "0xfdbf22be9ca4e8be48886404f4eda806287824318d22fbd8bbea6a06ff21a749", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411": "0x82f7cc493ac5c0c0e32c5797cb61372a985439b996ae320926df3eaf982255f9", + "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449": "0x06e3b2601f985409297e81f89b64df8a22e4bda271630322b723c799b3ca558f", + "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b": "0x60cf8eb3bb66b9f1ee5ad5971ce24f85750ed6d65357278cdd24508018c0fb77", + "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819": "0x2819077ee5dc736f75d74505f2686240d84618948ec7c94ac67139c8335c3dfa", + "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca": "0x0948ff7e93869e56cfa994a8611af061dab31d429017b64cbdbdec687807a4bd", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4": "0x59432d2fe5002ddeb6d4b245cfdc6ee8a0b441ff2fb5a9d154f12ef526f40d86", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5": "0xc7dd91bb190bb6b918bcbc1671b8820088e5aab9502236f55ed204aae8d437c7", + "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4": "0x97e8f6a69d1e3bd5a9aea5cbc12ebaf74a2268c21220306c5a4fcce978c3134e", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1": "0xf8a94a60b67fc29212788ff0d125bd00a78873ce64a5f166989fa0a8a6051880", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549": "0xfc6f0ecf57581be16f246383c1b0d39d27d47fd96097b77dd3d9a052f7efd9e5", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d": "0x2121ae366fc6daf8a79c5420153e16a31b4c6a485666c11ef4ab20dcedfc1904", + "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e": "0xb6dfe8dd1f13f5db49e93909e8151cda0b3eb873950522e2c6dd9409057eea03", + "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec": "0x397baeff4f1ad933330bff0101898d7dd376d33467bfee1fe4c8a13b6930c669", + "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90": "0x6a2caf39dec7db0ca51e6cf1462756efc7b3637490920c3d111cd3d7da46a6e9", + "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c": "0x5e0b5d2f55fe8ea36709508a4741219a009e32273daa8c43278a89b4c67112e4", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a": "0xe2f01b5ad1edec664d3d646a708b26f85adde915999d56b2f15c0076a140cbd1", + "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8": "0x8274e4be99bf8117209b4cdcc963fc397b868f360d20ecf15233591a84da752c", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc": "0x0e8d64923791a322a31ccc8a8c7e1da47622c776414cc2a57c73795dcdad7b88", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042": "0x3f0a05354694d442310e2acba79deb48621a7ca32c170d5bc068fd85dbec760e", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74": "0x3a552d9bcc7dbb8f9bb088f9fc81163a27aae54b79de7192a2ee88803a2c4598", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918": "0x262feca09bba056ee9b05c8d0e438c11862533bdabd42f8e79e37a03e994031e", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad": "0x35988ff2b50960965250ccfc4a1be70ffa1a327e0cacfb7618db155d5a93d95f", + "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305": "0xf21863beeed8d8213ad163a37547ca404879875838cefd773f45966140e03536", + "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13": "0x94538413241766c917b5837bc66a2f07201f9df610e985bc70f6f1a65bc8b824", + "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31": "0xe477c82786dd5186a36ada1d0092522bc04422a133bee0882cbffebee74bdfaf", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04": "0x83e3bcf94d15dd8246f343a0c3a25b531da1882a237e65d0e3afa8ccc29c2b53", + "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb": "0xa6f4d72ebb3d8d3b847f560c0e1b9b53be59c61cb17905efcb78d9e59097eb61", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5": "0x2a2acf181c73055bfbce46e0bd01ffbb73b4481fee51d1442dd0fcfca7011ee1", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd": "0x415149af9fd9d712a5c543d203f5e7a4647232c93291b51cc77dda27591acdf3", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe": "0x3d537759f6eb0f5d8a0894ab553553e70c7526f15c026641ab457d6e600dd488", + "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0": "0xf8bb072d7779c1f9eab2b5de52a0c7db7603cfc9076151bb5a2ba1ca2ed385b0", + "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a": "0xede216a9f98d06bf4ebab1a696ae992590605bf9bbaf05f742b96ab5d6ba0426", + "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f": "0xdc7f9dbd88b507e36df3737e44106b8594b75eb4324412e960d113f5f61e2f55", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f": "0xb148065aef7a6902b5a56404db8dc728253cc3562d6a0c274de4d4db91746cd7", + "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7": "0xd3261ba9e558eda4056861879ede295549b416c75f3b756ca59145552b43ed03", + "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43": "0xa6241689d50ea973e4e0efa11e64f05d85255e18610bd094c6ee95efc2f670b7", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9": "0xc9552aff3ed695958e7279ac930e5f4062fb3d9e0831c5fdcf1564019d2581b2", + "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b": "0x1df777cf70c4741367735002de6dbbed06346194749d9825b8578587a139f964", + "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1": "0x57bd3abe704df070c95bd142463c919f7eb8aab851f56a437429d40a2bcc5c04", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc": "0x44b2efb1ffc530ee28b53ad75aba15d03beeac3d3ac00ab456a95e72b6e46e28", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1": "0xfaa34d98d5776b63a0aa707cac04e3906a769c7b9822181e5831c3fdbe3852bc", + "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc": "0xec8b5dc385c72e1925585a8809df24b1797663b362d7ee698e94c244d95c4502", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a": "0xdd9518d23f6500d095760fe27b6be884cb729141828840501c745fbbb4077ac1", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7": "0x2ad5bca64988a60eb6c015984d86f896d7780f89ba4e17d239a8d18dd0ff3c62", + "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225": "0xb1ce5c0bc015130411f74c52c69b17b34778beda878cf35582f4db10e1b37798", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7": "0xf159bc6a781614afd84e7452a57afcea4b02c2a1d89e2af4b345d5704648274f", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7": "0x17d6e86db99e31eec29b25faf06888bbb0cc5f5bad64d462c36c095384236eb8", + "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46": "0x1f81a0a54c5acf8c6849d3555566ae3bcc078fac98ac44d95a248579e00254a6", + "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a": "0x0c51789af2ef3a02c1a8dd4a5e90898ae4ab495909a0dec337d2adbf641f9e14", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676": "0xc1ee9666521d2494288b3a4264e7428c4be31fbfd0412b7d3e480fa66cb7868e", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f": "0x1e56055aa5510e42a522ac0d45baadeec54cb1ab4f80ed05fbcb01d6a63fe709", + "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a": "0x6c9fce723d522ec708cd4ff6d363277b03fe48fafee79e2b53ce7dfd95838f72", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79": "0x1d8e49343d812229fba1f2e7f04a6162224a566681d781c71b792fdc1b08947c", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983": "0xce84576e03736d879f77af0652b62185234af2ccc4e2e21e276813fa0ca47dbd", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507": "0x30a78a430a10cae0d78913036d460eef5c6085c46f8ecf1ad7ba8dee76a12527", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c": "0xf261698164fef1649da47f846c6677648f524bc880b257fc771dd65ac540487d", + "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779": "0xedbc661a883e5f47ea5fa4bf5a06374fb60827e5e0e2ac413a96187e3f39a1e3", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30": "0x65dfab50959d4f7a0e4bec441a6e0422d4dfcd0e23921c0069e35cc59cad38aa", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5": "0x511286c4c9ce19b57a4ec47efd46f4a336175d36659a5b2741e611205b184853", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc": "0x6ed3ddec8444bee9863077d70a0e8ca506242de914f1b3b581c88aecfa67bae3", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d": "0x7e1303e5cfb944c6b0d95e5f9fab038b305c8d80054394e24d8bf64b34b8553a", + "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578": "0x57f5289b1bb4008c2090b3e7401e8abdfdfb1bc5b6a4d649752bd537ddc04722", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179": "0x2eb3509bf33b5e29124d61b4affc78b271c5b13aa60d4be9ec1d659ff41eaaff", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d": "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c", + "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6": "0x97faf2540a0b1ddff6e7f25bbfc7067eecad0334524a70e1caffdc519e2098d3", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c": "0x9e743ce40f1f5cad26d7b9a83dd1b7750d9637f13edcfa95ec45ffaaac81cf4d", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814": "0x794047e361d3837b84a3941bb8fee704e083433404e68e20e6d54dbb5673cad5", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419": "0xec956a3c13b3db5c34acc7a19b2d655886c25483254065c7f770ebe64c71b3a2", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae": "0x6928f835a904ad05c54fc1eb9d1269d5396e62eac58cf53f7967dfe54c2e8ced", + "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009": "0xf680a00084f0e61980327af92d5bd5f5eead25d5ad392c18669fe9db72ab1de8", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1": "0x7b86aa064d0d8c77685fe76955f83ecc2c63d06bbdf5ee21273e6866243653f9", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535": "0x2746e22f8f134808ba8332294d5687b975c8dbabca51f5e773483a8b5c006de9", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe": "0xd698c1ab8cecb252cd6c05371b19885d7f3937ababd26250745bb1d9fa6ee019", + "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81": "0x70e632d62a24202debf5e4099010c5c360b26f8ce9bcfbd49d52789a3c45a9c5", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6": "0xb5469f185e5a69f8591b4cc9d326eae8fddb86df381408d8ea428ad1001231b3", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240": "0x6acb3837b8b069d5af140c6ec99358c862d9af443aa87ca8dbdecdc4963dc83e", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3": "0x43c1205fc3af779d6b9719327d60bc4cf61a2509264defcd7cbc104e731cf461", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90": "0x104ef1548854fd68403152a4661360a484e116c8926d5435325684339e7a4792", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652": "0x81879f4a1e9a6115d6a8f1cb02a13cd6bf9e2713ccd4518c39290ab0aab855bf", + "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353": "0x4e960abf91b2868b8f7003d4c788f2971f17fdd673c552d8c6c7abdbcf1264f3", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864": "0x3b2e581f72613f5ca5845ecd97fa54133c4ef2edb41d4cee048050ae61352891", + "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6": "0xf7aa8fb0db1de5d2e102c3bac7c4b664c7c4f190100681e826d93784c76126f5", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb": "0x838e80e58c62e04a7420ff13e450b65df38095aa51471975742b89a6c23e2e0a", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad": "0xe42b1d1c8ee5efd399068416bf77f3f194e29a94406acc88a90dd8029bb706aa", + "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17": "0xf5a4f393712a9dc7164f0decbf90af2594a4a7199ea0d380c8e4f265ca7ddd59", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794": "0xc15d506b720e9e47f1ab76510eb0d8d93f1a8331a0edb71d30fe2a862693e607", + "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5": "0x858a716e3b2e9e71be3120de427ebf5ec1b461721645c245f948274f13f87c33", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3": "0x3736ba57e9fa1f82ba9dcdb63142c2871ab6664ec6d2bae0e185feb698b16211", + "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f": "0xe3e1904ab43bab2a002c7cbfe2a25087211a92f163eb4f8f5ea89905fc0232e2", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76": "0x300a46a6b7c9574270a6a261b1fe09765b1d186991b5a7f054b2fb6b89980310", + "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b": "0xa9f457c3e8f90ce4147a5368ac7d1bad29fc3e7a7b566e9da8caea80e70f9015", + "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b": "0xf23a24daea2a46388337064f8e466bdc9b848414b246769da8dc756cd19ed352", + "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86": "0xda049b4223747412a535f4b007166fbf1b6d7de42f9f49ddf8453d5312a3e66b", + "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400": "0xc840d2761d833abbc469ae1140d1eb5827d2cd2d1bf70520fa1281debdf99926", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe": "0x2d7aa5836ae880f2bd9b1b14d18abef42b5cc8116b332c368457555899fdf184", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b": "0xcc7b6d3a8fc8b32878e333578ab57e96a7ef8ec4498bcc6e839c362924ea52d3", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6": "0xd79ce52a240701df5add9d5f325ab0222271e8ff70e36150426546470bdfd3bc", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d": "0x0950d9b3f34603308ac7583d791fff9e2b9627dbbf9490f5dd7dd67410a6093f", + "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44": "0x7438e09365085c82eabdf045069e749fb95b4e7d39c1ac56fa74c1f5e62500c4", + "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66": "0x21a473555224392259558994ae30f93250f305fa14569e452539df785576b629", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785": "0x70c306983d152a50905f7561c77ee48938deeb794beaef341bb294c2bb5aa996", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e": "0x09ecce08348f4ae9b6f3ac6fac862e441ed9876e33212694c0a4d6639a797c3f", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744": "0x5854ab7960bb36c34701a6509fd85eed4b505cf15fc68a2e6c297361c0847d50", + "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff": "0x359325eddf76b5a758697c7be661653a0cec39c51214da8e5a7155b6877753fe", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592": "0xfb993017bb92a8e2868d6d52b486aea8013dcd9bca8fd557306ee48bdfacbecb", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3": "0x1d0afcbaf07da5e4eb570df8b551b24ecfc889c54036de1f31a27bd15a9268d1", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80": "0x51ca0aacdd00a18ce65eb4614b17c7a50b05861841dcb6b652936463527f38dd", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710": "0x374088f90087c668259444d8b4118937cc5b296f2b9f3b9a2435c019fca6c4de", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2": "0x7a410b6e800f2e2a15b5027b90e855b8cd0954fbb22dd245c4a884a6603f3e55", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae": "0x0d0f6fdadb7b2dcd0b4130e44d20195c4b13caeaa1f65c38249c330b4c1307d2", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8": "0x00330abb569ac93d08b902bbd9e4c69041511417d3c88450b7291f99422c1587", + "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52": "0xf2a08b0909acde30ef72a7291cda5314b76e544136d83ceb0339fa2c1221aed5", + "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd": "0x1c15c9326be25b19496c25ee66545bfd8151c573a49c6a9075d0a5a98e4f7981", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a": "0x540988b6594c264ac5fced6a9021e98b3a3c6764e6f9d1112536c6d2445dbc63", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6": "0xa351d146407bd613cb443031d474c0639f3a328af429866b38d094caa21a44a0", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481": "0x2fc81e546084af17b8d99788f4d05254499de49fa2065d79950f19355e23c781", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d": "0xc2d8c65d82ab5413d81ef44e28833be0dd286376ea47e02b26400a67f34c579e", + "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25": "0x0624b35d4b654877cf5331f3865b28a8e872efbe40cd877a5470a1e4509107cc", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b": "0xc4209783660db421a861200b7164aacd682ca5bc2a53dcd40c9235b78245a0c0", + "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0": "0xa8539d032e6aba8837568af71ddfe4494139ba37e2ccba5df3a6cb0b5d157c60", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c": "0xcd40ec7af217643b816992906439d9c638e4b97203bebc5a4ceb5eed92f5f82f", + "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245": "0x8c1fd6c6d4e328f4ac2d47d67bde6223d9ba3b1ab9d2d2d819462bb8a39d9079", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283": "0x16f6f47720607a364c0df4718d78810d5ed8ec5ecac4c18380d6acef614a08e9" +} diff --git a/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts index 293d07121b..eaa142c1f6 100644 --- a/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts @@ -1,7 +1,7 @@ /// We build a programmable txn to create all price feeds. -import dotenv from "dotenv" -import axios from 'axios'; -import { PriceServiceConnection } from '@pythnetwork/price-service-client'; +import dotenv from "dotenv"; +import axios from "axios"; +import { PriceServiceConnection } from "@pythnetwork/price-service-client"; import { RawSigner, @@ -9,113 +9,122 @@ import { TransactionBlock, JsonRpcProvider, Ed25519Keypair, - Connection + Connection, } from "@optke3/sui.js"; -dotenv.config({"path":"~/.env"}) +dotenv.config({ path: "~/.env" }); -import {REGISTRY, NETWORK} from "../registry" +import { REGISTRY, NETWORK } from "../registry"; // Network dependent settings. -let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network -const registry = REGISTRY[network] -const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); -const connection = new PriceServiceConnection("https://xc-mainnet.pyth.network", { - priceFeedRequestConfig: { - binary: true, - }, -}) +const connection = new PriceServiceConnection( + "https://xc-mainnet.pyth.network", + { + priceFeedRequestConfig: { + binary: true, + }, + } +); async function main() { - if (walletPrivateKey === undefined) { - throw new Error("SUI_MAINNET unset in environment"); - } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "hex") - ), - provider - ); - console.log("wallet address: ", wallet.getAddress()) - - // Fetch all price IDs - let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") - const price_feed_ids = data; - console.log("num price feed ids: ", price_feed_ids.length) - - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(0, 20)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 21)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 40)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(40, 60)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(60, 80)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(80, 100)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(100, 120)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(120, 140)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(140, 160)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(160, 180)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(180, 200)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(200, 220)); - const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(220, 240)); - - console.log("price feed VAAs len: ", priceFeedVAAs.length) - - create_price_feeds(wallet, registry, priceFeedVAAs) + if (walletPrivateKey === undefined) { + throw new Error("SUI_MAINNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), + provider + ); + console.log("wallet address: ", wallet.getAddress()); + + // Fetch all price IDs + let { data } = await axios.get( + "https://xc-mainnet.pyth.network/api/price_feed_ids" + ); + const price_feed_ids = data; + console.log("num price feed ids: ", price_feed_ids.length); + + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(0, 20)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 21)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 40)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(40, 60)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(60, 80)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(80, 100)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(100, 120)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(120, 140)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(140, 160)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(160, 180)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(180, 200)); + //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(200, 220)); + const priceFeedVAAs = await connection.getLatestVaas( + price_feed_ids.slice(220, 240) + ); + + console.log("price feed VAAs len: ", priceFeedVAAs.length); + + create_price_feeds(wallet, registry, priceFeedVAAs); } main(); async function create_price_feeds( - signer: RawSigner, - registry: any, - priceFeedVAAs: Array + signer: RawSigner, + registry: any, + priceFeedVAAs: Array ) { - let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] - let PYTH_STATE = registry["PYTH_STATE_ID"] - let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"] - let WORM_STATE = registry["WORMHOLE_STATE_ID"] - console.log("PYTH_PACKAGE: ", PYTH_PACKAGE) - console.log("PYTH_STATE: ", PYTH_STATE) - console.log("WORM_PACKAGE: ", WORM_PACKAGE) - console.log("WORM_STATE: ", WORM_STATE) - console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) - - for (let vaa of priceFeedVAAs){ - - const tx = new TransactionBlock(); - - let [verified_vaa] = tx.moveCall({ - target: `${WORM_PACKAGE}::vaa::parse_and_verify`, - arguments: [ - tx.object(WORM_STATE), - tx.pure([...Buffer.from(vaa, "base64")]), - tx.object(SUI_CLOCK_OBJECT_ID), - ], - }); - - tx.moveCall({ - target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, - arguments: [ - tx.object(PYTH_STATE), - tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), - tx.object(SUI_CLOCK_OBJECT_ID) - ], - }); - - tx.setGasBudget(1000000000); - - let result = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(result) - } + let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"]; + let PYTH_STATE = registry["PYTH_STATE_ID"]; + let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"]; + let WORM_STATE = registry["WORMHOLE_STATE_ID"]; + console.log("PYTH_PACKAGE: ", PYTH_PACKAGE); + console.log("PYTH_STATE: ", PYTH_STATE); + console.log("WORM_PACKAGE: ", WORM_PACKAGE); + console.log("WORM_STATE: ", WORM_STATE); + console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID); + + for (let vaa of priceFeedVAAs) { + const tx = new TransactionBlock(); + + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(vaa, "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, + arguments: [ + tx.object(PYTH_STATE), + tx.makeMoveVec({ + type: `${WORM_PACKAGE}::vaa::VAA`, + objects: [verified_vaa], + }), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + tx.setGasBudget(1000000000); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result); + } } diff --git a/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts index a834f22012..0b15799e31 100644 --- a/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts +++ b/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts @@ -1,5 +1,5 @@ /// We build a programmable txn to create a price feed. -import dotenv from "dotenv" +import dotenv from "dotenv"; import { RawSigner, @@ -7,87 +7,92 @@ import { TransactionBlock, JsonRpcProvider, Ed25519Keypair, - Connection + Connection, } from "@optke3/sui.js"; -dotenv.config({"path":"~/.env"}) +dotenv.config({ path: "~/.env" }); -import {REGISTRY, NETWORK} from "../registry" +import { REGISTRY, NETWORK } from "../registry"; // Network dependent settings. -let network = NETWORK.TESTNET // <= NOTE: Update this when changing network +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; // <= NOTE: Update this when changing network -const registry = REGISTRY[network] -const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); async function main() { - if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); - } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - network == "MAINNET" ? - Buffer.from(walletPrivateKey, "hex") - : - Buffer.from(walletPrivateKey, "base64").subarray(1) - ), - provider - ); - console.log(wallet.getAddress()) - const vaa_bytes = "AQAAAAABAMN885gNTVEako6fczJq22AOFSRWdUsUOxPQVHSnxhj3ecU2gJVDBlAcY6G9FWmGCcGcdZ/5iVXQCm+0loHvfqwAZE/kXQAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAADugxEBUDJXSAADAAEAAQIABQCdWnl7akEQMaEEfYaw/fhuJFW+jn/vFq7yPbIJcj2vlB9hIm05vuoZ0zTxfC/rzifhJkbYRnWSTrsCuc2upocn4wAAAABBxD4gAAAAAAAJ2WD////4AAAAAEIrzm4AAAAAAAn/ewEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAABBxC0/AAAAAAAJi/EAAAAAZE/kXLWIXWbTUV6YNI7DMlk7XRbg/bhT77Ye1dzAvPgOkWCB11ZqO6f3KG7VT0rn6YP0QgrgseDziS4R+cSrEHu617kAAAAAZCplIAAAAAAAEu4I////+AAAAABkvzOKAAAAAAAQZDgBAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAAAZCplIAAAAAAAFIotAAAAAGRP5Fw3+21L/xkSgKfP+Av17aeofBUakdmoW6So+OLPlX5BjbMn2c8OzXk6F1+nCsjS3BCdRGJ1jlVpYsSoewLsTz8VAAAAAC1gXb0AAAAAAAdkLv////gAAAAALZa00gAAAAAABpwgAQAAAAEAAAACAAAAAGRP5F0AAAAAZE/kXQAAAABkT+RcAAAAAC1gXb0AAAAAAAdkLgAAAABkT+RcHNsaXh40VtKXfuDT1wdlI58IpChVuVCP1HnhXG3E0f7s9VN3DZsQll+Ptkdx6T9WkKGC7cMr5KMjbgyqpuBYGgAAAAewLri2AAAAAAEnq0n////4AAAAB7uEHmgAAAAAAV8hnAEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAAewBz2PAAAAAAE4kisAAAAAZE/kXGogZxwOP4yyGc4/RuWuCWpPL9+TbSvU2okl9wCH1R3YMAKUeVmHlykONjihcSwpveI2fQ7KeU93iyW1pHLxkt4AAAACtJQuKQAAAAAAn4lX////+AAAAAK3aIHUAAAAAACmrg4BAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAACtJOhZQAAAAAAnAlPAAAAAGRP5Fw="; - create_price_feeds(wallet, registry, vaa_bytes) + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + network == "MAINNET" + ? Buffer.from(walletPrivateKey, "hex") + : Buffer.from(walletPrivateKey, "base64").subarray(1) + ), + provider + ); + console.log(wallet.getAddress()); + const vaa_bytes = + "AQAAAAABAMN885gNTVEako6fczJq22AOFSRWdUsUOxPQVHSnxhj3ecU2gJVDBlAcY6G9FWmGCcGcdZ/5iVXQCm+0loHvfqwAZE/kXQAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAADugxEBUDJXSAADAAEAAQIABQCdWnl7akEQMaEEfYaw/fhuJFW+jn/vFq7yPbIJcj2vlB9hIm05vuoZ0zTxfC/rzifhJkbYRnWSTrsCuc2upocn4wAAAABBxD4gAAAAAAAJ2WD////4AAAAAEIrzm4AAAAAAAn/ewEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAABBxC0/AAAAAAAJi/EAAAAAZE/kXLWIXWbTUV6YNI7DMlk7XRbg/bhT77Ye1dzAvPgOkWCB11ZqO6f3KG7VT0rn6YP0QgrgseDziS4R+cSrEHu617kAAAAAZCplIAAAAAAAEu4I////+AAAAABkvzOKAAAAAAAQZDgBAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAAAZCplIAAAAAAAFIotAAAAAGRP5Fw3+21L/xkSgKfP+Av17aeofBUakdmoW6So+OLPlX5BjbMn2c8OzXk6F1+nCsjS3BCdRGJ1jlVpYsSoewLsTz8VAAAAAC1gXb0AAAAAAAdkLv////gAAAAALZa00gAAAAAABpwgAQAAAAEAAAACAAAAAGRP5F0AAAAAZE/kXQAAAABkT+RcAAAAAC1gXb0AAAAAAAdkLgAAAABkT+RcHNsaXh40VtKXfuDT1wdlI58IpChVuVCP1HnhXG3E0f7s9VN3DZsQll+Ptkdx6T9WkKGC7cMr5KMjbgyqpuBYGgAAAAewLri2AAAAAAEnq0n////4AAAAB7uEHmgAAAAAAV8hnAEAAAABAAAAAgAAAABkT+RdAAAAAGRP5F0AAAAAZE/kXAAAAAewBz2PAAAAAAE4kisAAAAAZE/kXGogZxwOP4yyGc4/RuWuCWpPL9+TbSvU2okl9wCH1R3YMAKUeVmHlykONjihcSwpveI2fQ7KeU93iyW1pHLxkt4AAAACtJQuKQAAAAAAn4lX////+AAAAAK3aIHUAAAAAACmrg4BAAAAAQAAAAIAAAAAZE/kXQAAAABkT+RdAAAAAGRP5FwAAAACtJOhZQAAAAAAnAlPAAAAAGRP5Fw="; + create_price_feeds(wallet, registry, vaa_bytes); } main(); async function create_price_feeds( - signer: RawSigner, - registry: any, - vaa_bytes: string + signer: RawSigner, + registry: any, + vaa_bytes: string ) { - const tx = new TransactionBlock(); + const tx = new TransactionBlock(); - let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] - let PYTH_STATE = registry["PYTH_STATE_ID"] - let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"] - let WORM_STATE = registry["WORMHOLE_STATE_ID"] - console.log("PYTH_PACKAGE: ", PYTH_PACKAGE) - console.log("PYTH_STATE: ", PYTH_STATE) - console.log("WORM_PACKAGE: ", WORM_PACKAGE) - console.log("WORM_STATE: ", WORM_STATE) - console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) + let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"]; + let PYTH_STATE = registry["PYTH_STATE_ID"]; + let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"]; + let WORM_STATE = registry["WORMHOLE_STATE_ID"]; + console.log("PYTH_PACKAGE: ", PYTH_PACKAGE); + console.log("PYTH_STATE: ", PYTH_STATE); + console.log("WORM_PACKAGE: ", WORM_PACKAGE); + console.log("WORM_STATE: ", WORM_STATE); + console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID); - let [verified_vaa] = tx.moveCall({ - target: `${WORM_PACKAGE}::vaa::parse_and_verify`, - arguments: [ - tx.object(WORM_STATE), - tx.pure([...Buffer.from(vaa_bytes, "base64")]), - tx.object(SUI_CLOCK_OBJECT_ID), - ], - }); + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(vaa_bytes, "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); - tx.moveCall({ - target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, - arguments: [ - tx.object(PYTH_STATE), - tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), // has type vector, - tx.object(SUI_CLOCK_OBJECT_ID) - ], - }); + tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::create_price_feeds`, + arguments: [ + tx.object(PYTH_STATE), + tx.makeMoveVec({ + type: `${WORM_PACKAGE}::vaa::VAA`, + objects: [verified_vaa], + }), // has type vector, + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); - tx.setGasBudget(2000000000); + tx.setGasBudget(2000000000); - let result = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(result) - return result + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result); + return result; } diff --git a/target_chains/sui/scripts/pyth/pyth_deploy.ts b/target_chains/sui/scripts/pyth/pyth_deploy.ts index 0277325af3..6570f2c816 100644 --- a/target_chains/sui/scripts/pyth/pyth_deploy.ts +++ b/target_chains/sui/scripts/pyth/pyth_deploy.ts @@ -1,102 +1,99 @@ /// Deploy Pyth to Sui testnet (devnet deploy can be done via CLI) import { - fromB64, - getPublishedObjectChanges, - normalizeSuiObjectId, - RawSigner, - TransactionBlock, - JsonRpcProvider, - Ed25519Keypair, - Connection, - } from "@optke3/sui.js"; - import { execSync } from "child_process"; + fromB64, + getPublishedObjectChanges, + normalizeSuiObjectId, + RawSigner, + TransactionBlock, + JsonRpcProvider, + Ed25519Keypair, + Connection, +} from "@optke3/sui.js"; +import { execSync } from "child_process"; -import dotenv from "dotenv" +import dotenv from "dotenv"; -import {REGISTRY, NETWORK} from "../registry" +import { REGISTRY, NETWORK } from "../registry"; -dotenv.config({"path":"~/.env"}) +dotenv.config({ path: "~/.env" }); // Network dependent settings. -let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network -const registry = REGISTRY[network] -const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) - -async function main(){ - if (walletPrivateKey === undefined) { - throw new Error("SUI_MAINNET unset in environment"); - } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "hex") - ), - provider - ); - await publishPackage(wallet, "../../contracts"); +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); + +async function main() { + if (walletPrivateKey === undefined) { + throw new Error("SUI_MAINNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), + provider + ); + await publishPackage(wallet, "../../contracts"); } -main() - - async function publishPackage( - signer: RawSigner, - packagePath: string - ) { - try { - // Build contracts - const buildOutput: { - modules: string[]; - dependencies: string[]; - } = JSON.parse( - execSync( - `sui move build --dump-bytecode-as-base64 --path ${packagePath} 2> /dev/null`, - { - encoding: "utf-8", - } - ) - ); +main(); + +async function publishPackage(signer: RawSigner, packagePath: string) { + try { + // Build contracts + const buildOutput: { + modules: string[]; + dependencies: string[]; + } = JSON.parse( + execSync( + `sui move build --dump-bytecode-as-base64 --path ${packagePath} 2> /dev/null`, + { + encoding: "utf-8", + } + ) + ); - console.log("buildOutput: ", buildOutput) + console.log("buildOutput: ", buildOutput); - // Publish contracts - const transactionBlock = new TransactionBlock(); + // Publish contracts + const transactionBlock = new TransactionBlock(); - transactionBlock.setGasBudget(4000000000); + transactionBlock.setGasBudget(4000000000); - const [upgradeCap] = transactionBlock.publish({ - modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), - dependencies: buildOutput.dependencies.map((d: string) => - normalizeSuiObjectId(d) - ), - }); + const [upgradeCap] = transactionBlock.publish({ + modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), + dependencies: buildOutput.dependencies.map((d: string) => + normalizeSuiObjectId(d) + ), + }); - // Transfer upgrade capability to deployer - transactionBlock.transferObjects( - [upgradeCap], - transactionBlock.pure(await signer.getAddress()) - ); + // Transfer upgrade capability to deployer + transactionBlock.transferObjects( + [upgradeCap], + transactionBlock.pure(await signer.getAddress()) + ); - // Execute transactions - const res = await signer.signAndExecuteTransactionBlock({ - transactionBlock, - options: { - showInput: true, - showObjectChanges: true, - }, - }); - - const publishEvents = getPublishedObjectChanges(res); - if (publishEvents.length !== 1) { - throw new Error( - "No publish event found in transaction:" + - JSON.stringify(res.objectChanges, null, 2) - ); - } - - return res; - } catch (e) { - throw e; - } finally { + // Execute transactions + const res = await signer.signAndExecuteTransactionBlock({ + transactionBlock, + options: { + showInput: true, + showObjectChanges: true, + }, + }); + + const publishEvents = getPublishedObjectChanges(res); + if (publishEvents.length !== 1) { + throw new Error( + "No publish event found in transaction:" + + JSON.stringify(res.objectChanges, null, 2) + ); } - }; + + return res; + } catch (e) { + throw e; + } finally { + } +} diff --git a/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts index c840b5985d..e890041430 100644 --- a/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts @@ -1,43 +1,52 @@ -import { Connection, JsonRpcProvider, JsonRpcClient} from '@mysten/sui.js'; +import { Connection, JsonRpcProvider, JsonRpcClient } from "@mysten/sui.js"; const provider = new JsonRpcProvider( - new Connection({ fullnode: 'https://fullnode.mainnet.sui.io:443' }), + new Connection({ fullnode: "https://fullnode.mainnet.sui.io:443" }) ); async function main() { - // Table of Sui Pyth PriceIdentifier => Price Info Object IDs - const objectId = '0xc4a7182984a662b159a18a8754dbc15e11048b42494b2c4ddcf1ec3bcc7004fe'; + const objectId = + "0xc4a7182984a662b159a18a8754dbc15e11048b42494b2c4ddcf1ec3bcc7004fe"; let nextCursor; let hasNextPage = false; let map = new Map(); do { - const dynamic_fields = await provider.getDynamicFields({ parentId: objectId, cursor: nextCursor}); - console.log(dynamic_fields) - - let promises = await Promise.all(dynamic_fields.data.map(x => provider.getObject({id: x.objectId, options: {showContent: true}}))) + const dynamic_fields = await provider.getDynamicFields({ + parentId: objectId, + cursor: nextCursor, + }); + console.log(dynamic_fields); + + let promises = await Promise.all( + dynamic_fields.data.map((x) => + provider.getObject({ id: x.objectId, options: { showContent: true } }) + ) + ); //@ts-ignore - let key_value_pairs = promises.map(x=>[Buffer.from(x.data.content.fields.name.fields.bytes).toString("hex"), x.data.content.fields.value]) - console.log("key value pairs: ", key_value_pairs) - for (let x of key_value_pairs){ - console.log("entry in key value pairs: ", x) - map.set(x[0], x[1]) + let key_value_pairs = promises.map((x) => [ + Buffer.from(x.data.content.fields.name.fields.bytes).toString("hex"), + x.data.content.fields.value, + ]); + console.log("key value pairs: ", key_value_pairs); + for (let x of key_value_pairs) { + console.log("entry in key value pairs: ", x); + map.set(x[0], x[1]); } // pagination - nextCursor = dynamic_fields.nextCursor - hasNextPage = dynamic_fields.hasNextPage + nextCursor = dynamic_fields.nextCursor; + hasNextPage = dynamic_fields.hasNextPage; // Sleep to not hit rate limit. - console.log("Going to sleep for 10 seconds...") - await new Promise(f => setTimeout(f, 10000)); - - } while(hasNextPage) + console.log("Going to sleep for 10 seconds..."); + await new Promise((f) => setTimeout(f, 10000)); + } while (hasNextPage); - console.log("map size: ", map.size) - console.log("map is: ", map) + console.log("map size: ", map.size); + console.log("map is: ", map); } main(); diff --git a/target_chains/sui/scripts/pyth/pyth_get_vaas.ts b/target_chains/sui/scripts/pyth/pyth_get_vaas.ts index 656d01abe2..87dd0b0b2b 100644 --- a/target_chains/sui/scripts/pyth/pyth_get_vaas.ts +++ b/target_chains/sui/scripts/pyth/pyth_get_vaas.ts @@ -1,31 +1,36 @@ /// Fetch price feed VAAs of interest from the Pyth /// price feed service. -import { PriceServiceConnection } from '@pythnetwork/price-service-client'; -import axios from 'axios'; - -async function main(){ - const connection = new PriceServiceConnection("https://xc-mainnet.pyth.network", { - priceFeedRequestConfig: { - binary: true, - }, - }) - - // Fetch all price IDs - //let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") - //console.log("number of all price feed ids: ", data.length) - - let data = ["0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d"] // BTC/USD - const priceFeedVAAs = await connection.getLatestVaas(data); - //console.log("number of VAAs: ", priceFeedVAAs.length) - console.log(priceFeedVAAs) +import { PriceServiceConnection } from "@pythnetwork/price-service-client"; +import axios from "axios"; + +async function main() { + const connection = new PriceServiceConnection( + "https://xc-mainnet.pyth.network", + { + priceFeedRequestConfig: { + binary: true, + }, + } + ); + + // Fetch all price IDs + //let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") + //console.log("number of all price feed ids: ", data.length) + + let data = [ + "0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d", + ]; // BTC/USD + const priceFeedVAAs = await connection.getLatestVaas(data); + //console.log("number of VAAs: ", priceFeedVAAs.length) + console.log(priceFeedVAAs); } main(); // Step 1: batch price attestation VAA -const vaa = "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM=" +const vaa = + "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM="; // Step 2: sui shared object id -const object_id = "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c" - - +const object_id = + "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c"; diff --git a/target_chains/sui/scripts/pyth/pyth_init_state.ts b/target_chains/sui/scripts/pyth/pyth_init_state.ts index cac90a9496..d3e72e3bd2 100644 --- a/target_chains/sui/scripts/pyth/pyth_init_state.ts +++ b/target_chains/sui/scripts/pyth/pyth_init_state.ts @@ -1,4 +1,4 @@ -import dotenv from "dotenv" +import dotenv from "dotenv"; import { RawSigner, @@ -8,36 +8,38 @@ import { Connection, } from "@optke3/sui.js"; -import {REGISTRY, NETWORK, INITIAL_DATA_SOURCES} from "../registry" -dotenv.config({"path":"~/.env"}) +import { REGISTRY, NETWORK, INITIAL_DATA_SOURCES } from "../registry"; +dotenv.config({ path: "~/.env" }); // Network dependent settings. -let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network let walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network -const registry = REGISTRY[network] -const initial_data_sources = INITIAL_DATA_SOURCES[network] -const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"]})) +const registry = REGISTRY[network]; +const initial_data_sources = INITIAL_DATA_SOURCES[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); async function main() { - if (walletPrivateKey === undefined) { - throw new Error("SUI_MAINNET unset in environment"); - } + if (walletPrivateKey === undefined) { + throw new Error("SUI_MAINNET unset in environment"); + } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "hex") - ), - provider - ); + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), + provider + ); - const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] + const PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"]; - // NOTE: Set these before calling init_pyth - const upgradeCap = "0x92d51150b762fd694877b23ecaba79a3fc1032bc24914d145a393b62e1e61894" - const deployerCap = "0x645ba70c9087d54a3e5e6abed0d506516dddb71d987b0ee503593de2677caefe" + // NOTE: Set these before calling init_pyth + const upgradeCap = + "0x92d51150b762fd694877b23ecaba79a3fc1032bc24914d145a393b62e1e61894"; + const deployerCap = + "0x645ba70c9087d54a3e5e6abed0d506516dddb71d987b0ee503593de2677caefe"; - init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap) + init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap); } main(); @@ -45,43 +47,59 @@ main(); /// Use a programmable transaction block to call /// the Pyth pyth::pyth::init_pyth function. async function init_pyth( - signer: RawSigner, - pythPackage: string, - deployerCap: string, - upgradeCap: string + signer: RawSigner, + pythPackage: string, + deployerCap: string, + upgradeCap: string ) { - console.log("GOVERNANCE_CHAIN: ", initial_data_sources["GOVERNANCE_CHAIN"]) - console.log("GOVERNANCE_ADDRESS: ", [...Buffer.from(initial_data_sources["GOVERNANCE_ADDRESS"], "hex")]) - console.log("DATA_SOURCE_CHAINS: ", initial_data_sources["DATA_SOURCE_CHAINS"]) - console.log("DATA_SOURCE_ADDRESSES: ", initial_data_sources["DATA_SOURCE_ADDRESSES"].map( x => [...Buffer.from(x, "hex")])) - const tx = new TransactionBlock(); + console.log("GOVERNANCE_CHAIN: ", initial_data_sources["GOVERNANCE_CHAIN"]); + console.log("GOVERNANCE_ADDRESS: ", [ + ...Buffer.from(initial_data_sources["GOVERNANCE_ADDRESS"], "hex"), + ]); + console.log( + "DATA_SOURCE_CHAINS: ", + initial_data_sources["DATA_SOURCE_CHAINS"] + ); + console.log( + "DATA_SOURCE_ADDRESSES: ", + initial_data_sources["DATA_SOURCE_ADDRESSES"].map((x) => [ + ...Buffer.from(x, "hex"), + ]) + ); + const tx = new TransactionBlock(); - tx.moveCall({ - target: `${pythPackage}::pyth::init_pyth`, - arguments: [ - tx.object(deployerCap), - tx.object(upgradeCap), - tx.pure(60), // stale price threshold - tx.pure(initial_data_sources["GOVERNANCE_CHAIN"]), // governance emitter chain id - tx.pure([...Buffer.from(initial_data_sources["GOVERNANCE_ADDRESS"], "hex")]), // governance emitter chain address - tx.pure(initial_data_sources["DATA_SOURCE_CHAINS"]), // data source emitter chain ids - tx.pure(initial_data_sources["DATA_SOURCE_ADDRESSES"].map( x => [...Buffer.from(x, "hex")])), // data source addresses - tx.pure(1), // base update fee - ], - }); + tx.moveCall({ + target: `${pythPackage}::pyth::init_pyth`, + arguments: [ + tx.object(deployerCap), + tx.object(upgradeCap), + tx.pure(60), // stale price threshold + tx.pure(initial_data_sources["GOVERNANCE_CHAIN"]), // governance emitter chain id + tx.pure([ + ...Buffer.from(initial_data_sources["GOVERNANCE_ADDRESS"], "hex"), + ]), // governance emitter chain address + tx.pure(initial_data_sources["DATA_SOURCE_CHAINS"]), // data source emitter chain ids + tx.pure( + initial_data_sources["DATA_SOURCE_ADDRESSES"].map((x) => [ + ...Buffer.from(x, "hex"), + ]) + ), // data source addresses + tx.pure(1), // base update fee + ], + }); - tx.setGasBudget(1_000_000_000n); + tx.setGasBudget(1_000_000_000n); - let result = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(result) - return result + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result); + return result; } diff --git a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts index 8ba1a3dfce..4d9f52e99f 100644 --- a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts @@ -3,8 +3,8 @@ /// the updated price. /// /// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet -import dotenv from "dotenv" -import { PriceServiceConnection } from '@pythnetwork/price-service-client'; +import dotenv from "dotenv"; +import { PriceServiceConnection } from "@pythnetwork/price-service-client"; import { RawSigner, @@ -15,114 +15,124 @@ import { Connection, } from "@optke3/sui.js"; -dotenv.config({"path":"~/.env"}) +dotenv.config({ path: "~/.env" }); -import {REGISTRY, NETWORK} from "../registry" +import { REGISTRY, NETWORK } from "../registry"; // Network dependent settings. -let network = NETWORK.MAINNET // <= NOTE: Update this when changing network +let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network -const registry = REGISTRY[network] -const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); -const connection = new PriceServiceConnection("https://xc-mainnet.pyth.network", { - priceFeedRequestConfig: { - binary: true, - }, -}) +const connection = new PriceServiceConnection( + "https://xc-mainnet.pyth.network", + { + priceFeedRequestConfig: { + binary: true, + }, + } +); // // NOTE: this function is a WIP // async function main() { - if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); - } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - network == "MAINNET" ? - Buffer.from(walletPrivateKey, "hex") - : - Buffer.from(walletPrivateKey, "base64").subarray(1) - ), - provider - ); - console.log(wallet.getAddress()) - - // update a single price feed - const price_feed_id = "0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d"; - const vaa = "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM=" - const object_id = "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c" - update_price_feeds(wallet, registry, vaa, object_id) + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + network == "MAINNET" + ? Buffer.from(walletPrivateKey, "hex") + : Buffer.from(walletPrivateKey, "base64").subarray(1) + ), + provider + ); + console.log(wallet.getAddress()); + + // update a single price feed + const price_feed_id = + "0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d"; + const vaa = + "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM="; + const object_id = + "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c"; + update_price_feeds(wallet, registry, vaa, object_id); } main(); async function update_price_feeds( - signer: RawSigner, - registry: any, - vaa: string, - object_id: string, + signer: RawSigner, + registry: any, + vaa: string, + object_id: string ) { - const tx = new TransactionBlock(); - - let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"] - let PYTH_STATE = registry["PYTH_STATE_ID"] - let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"] - let WORM_STATE = registry["WORMHOLE_STATE_ID"] - console.log("PYTH_PACKAGE: ", PYTH_PACKAGE) - console.log("PYTH_STATE: ", PYTH_STATE) - console.log("WORM_PACKAGE: ", WORM_PACKAGE) - console.log("WORM_STATE: ", WORM_STATE) - console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID) - - - let [verified_vaa] = tx.moveCall({ - target: `${WORM_PACKAGE}::vaa::parse_and_verify`, - arguments: [ - tx.object(WORM_STATE), - tx.pure([...Buffer.from(vaa, "base64")]), - tx.object(SUI_CLOCK_OBJECT_ID), - ], - }); - - let [coin] = tx.moveCall({ - target: "0x2::coin::split", - arguments: [ - tx.object("0xab59f054a27f97adb14c4d5eca7ee4dbccade998285b9c5c5400ab00f8ee672d"), - tx.pure(1) - ], - typeArguments: [ - "0x2::sui::SUI" - ] - }); - - - - tx.moveCall({ - target: `${PYTH_PACKAGE}::pyth::update_price_feeds`, - arguments: [ - tx.object(PYTH_STATE), - tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, objects: [verified_vaa] }), - tx.makeMoveVec({ type: `${PYTH_PACKAGE}::price_info::PriceInfoObject`, objects: [tx.object(object_id)] }), - coin, - tx.object(SUI_CLOCK_OBJECT_ID) - ], - }); - - tx.setGasBudget(2000000000); - - let result = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(result) - return result + const tx = new TransactionBlock(); + + let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"]; + let PYTH_STATE = registry["PYTH_STATE_ID"]; + let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"]; + let WORM_STATE = registry["WORMHOLE_STATE_ID"]; + console.log("PYTH_PACKAGE: ", PYTH_PACKAGE); + console.log("PYTH_STATE: ", PYTH_STATE); + console.log("WORM_PACKAGE: ", WORM_PACKAGE); + console.log("WORM_STATE: ", WORM_STATE); + console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID); + + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(vaa, "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + let [coin] = tx.moveCall({ + target: "0x2::coin::split", + arguments: [ + tx.object( + "0xab59f054a27f97adb14c4d5eca7ee4dbccade998285b9c5c5400ab00f8ee672d" + ), + tx.pure(1), + ], + typeArguments: ["0x2::sui::SUI"], + }); + + tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::update_price_feeds`, + arguments: [ + tx.object(PYTH_STATE), + tx.makeMoveVec({ + type: `${WORM_PACKAGE}::vaa::VAA`, + objects: [verified_vaa], + }), + tx.makeMoveVec({ + type: `${PYTH_PACKAGE}::price_info::PriceInfoObject`, + objects: [tx.object(object_id)], + }), + coin, + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + tx.setGasBudget(2000000000); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result); + return result; } diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index 4956d830ef..0fa86490f1 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -1,52 +1,75 @@ export enum NETWORK { - DEVNET = "DEVNET", - TESTNET = "TESTNET", - MAINNET = "MAINNET", + DEVNET = "DEVNET", + TESTNET = "TESTNET", + MAINNET = "MAINNET", } -export const REGISTRY = -{ - DEVNET: { - "PYTH_PACKAGE_ID": "0xcd7f3fe6338a618e3d8df8445cd8e8daa0af35c956c4d35cbac78d63d7869ece", - "PYTH_STATE_ID": "0x5a7ef4ddaa1035448f11644f1eb0c4ca26f6bf094c8ee5c3309ddbed386b03fa", - "WORMHOLE_PACKAGE_ID": "0xef530c697826910f09c82292a0344d11e8371f9462d0d1f470b79cde92311188", - "WORMHOLE_STATE_ID": "0xd7e478de3e6925127da439586a64867ada00405fa683e3ab9c4359c3bbcfd9ca", - "RPC_URL": "http://0.0.0.0:9000" - }, - TESTNET: { - "PYTH_PACKAGE_ID": "0xc9e69550ad36bd5e8ce39329ef05ad65c27a5820bd089f8588ae1d85ac991ed6", - "PYTH_STATE_ID": "0xb94f56f6439a723d25e37b6030a5c7da153ef2c786058b7dd0249de657933f64", - "WORMHOLE_PACKAGE_ID": "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", - "WORMHOLE_STATE_ID": "0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a", - "RPC_URL": "https://fullnode.testnet.sui.io:443" - }, - MAINNET: { - "PYTH_PACKAGE_ID": "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861", - "PYTH_STATE_ID": "0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca", - "WORMHOLE_PACKAGE_ID": "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a", - "WORMHOLE_STATE_ID": "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c", - "RPC_URL": "https://fullnode.mainnet.sui.io:443" - } -} +export const REGISTRY = { + DEVNET: { + PYTH_PACKAGE_ID: + "0xcd7f3fe6338a618e3d8df8445cd8e8daa0af35c956c4d35cbac78d63d7869ece", + PYTH_STATE_ID: + "0x5a7ef4ddaa1035448f11644f1eb0c4ca26f6bf094c8ee5c3309ddbed386b03fa", + WORMHOLE_PACKAGE_ID: + "0xef530c697826910f09c82292a0344d11e8371f9462d0d1f470b79cde92311188", + WORMHOLE_STATE_ID: + "0xd7e478de3e6925127da439586a64867ada00405fa683e3ab9c4359c3bbcfd9ca", + RPC_URL: "http://0.0.0.0:9000", + }, + TESTNET: { + PYTH_PACKAGE_ID: + "0xc9e69550ad36bd5e8ce39329ef05ad65c27a5820bd089f8588ae1d85ac991ed6", + PYTH_STATE_ID: + "0xb94f56f6439a723d25e37b6030a5c7da153ef2c786058b7dd0249de657933f64", + WORMHOLE_PACKAGE_ID: + "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", + WORMHOLE_STATE_ID: + "0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a", + RPC_URL: "https://fullnode.testnet.sui.io:443", + }, + MAINNET: { + PYTH_PACKAGE_ID: + "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861", + PYTH_STATE_ID: + "0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca", + WORMHOLE_PACKAGE_ID: + "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a", + WORMHOLE_STATE_ID: + "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c", + RPC_URL: "https://fullnode.mainnet.sui.io:443", + }, +}; export const INITIAL_DATA_SOURCES = { - // Devnet params are same as testnet. - DEVNET: { - GOVERNANCE_ADDRESS: "63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", - GOVERNANCE_CHAIN: 1, - DATA_SOURCE_ADDRESSES: ["f346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", "a27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6"], - DATA_SOURCE_CHAINS: [1, 26] - }, - TESTNET: { - GOVERNANCE_ADDRESS: "63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", - GOVERNANCE_CHAIN: 1, - DATA_SOURCE_ADDRESSES: ["f346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", "a27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6"], - DATA_SOURCE_CHAINS: [1, 26] - }, - MAINNET: { - GOVERNANCE_ADDRESS: "5635979a221c34931e32620b9293a463065555ea71fe97cd6237ade875b12e9e", - GOVERNANCE_CHAIN: 1, - DATA_SOURCE_ADDRESSES: ["6bb14509a612f01fbbc4cffeebd4bbfb492a86df717ebe92eb6df432a3f00a25", "f8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0"], - DATA_SOURCE_CHAINS: [1, 26] - } -} + // Devnet params are same as testnet. + DEVNET: { + GOVERNANCE_ADDRESS: + "63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", + GOVERNANCE_CHAIN: 1, + DATA_SOURCE_ADDRESSES: [ + "f346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", + "a27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6", + ], + DATA_SOURCE_CHAINS: [1, 26], + }, + TESTNET: { + GOVERNANCE_ADDRESS: + "63278d271099bfd491951b3e648f08b1c71631e4a53674ad43e8f9f98068c385", + GOVERNANCE_CHAIN: 1, + DATA_SOURCE_ADDRESSES: [ + "f346195ac02f37d60d4db8ffa6ef74cb1be3550047543a4a9ee9acf4d78697b0", + "a27839d641b07743c0cb5f68c51f8cd31d2c0762bec00dc6fcd25433ef1ab5b6", + ], + DATA_SOURCE_CHAINS: [1, 26], + }, + MAINNET: { + GOVERNANCE_ADDRESS: + "5635979a221c34931e32620b9293a463065555ea71fe97cd6237ade875b12e9e", + GOVERNANCE_CHAIN: 1, + DATA_SOURCE_ADDRESSES: [ + "6bb14509a612f01fbbc4cffeebd4bbfb492a86df717ebe92eb6df432a3f00a25", + "f8cd23c2ab91237730770bbea08d61005cdda0984348f3f6eecb559638c0bba0", + ], + DATA_SOURCE_CHAINS: [1, 26], + }, +}; diff --git a/target_chains/sui/scripts/tsconfig.json b/target_chains/sui/scripts/tsconfig.json index 62217cba65..3b34de8f59 100644 --- a/target_chains/sui/scripts/tsconfig.json +++ b/target_chains/sui/scripts/tsconfig.json @@ -1,12 +1,12 @@ { - "compilerOptions": { - "types": ["mocha", "chai"], - "typeRoots": ["./node_modules/@types"], - "lib": ["es2020", "DOM"], - "module": "commonjs", - "target": "es2020", - "resolveJsonModule": true, - "esModuleInterop": true, - "allowJs": true - } + "compilerOptions": { + "types": ["mocha", "chai"], + "typeRoots": ["./node_modules/@types"], + "lib": ["es2020", "DOM"], + "module": "commonjs", + "target": "es2020", + "resolveJsonModule": true, + "esModuleInterop": true, + "allowJs": true + } } diff --git a/target_chains/sui/scripts/wormhole/wormhole_deploy.ts b/target_chains/sui/scripts/wormhole/wormhole_deploy.ts index b99d74d531..d491a7166c 100644 --- a/target_chains/sui/scripts/wormhole/wormhole_deploy.ts +++ b/target_chains/sui/scripts/wormhole/wormhole_deploy.ts @@ -1,111 +1,111 @@ /// Deploy Pyth to Sui testnet (devnet deploy can be done via CLI) import { - fromB64, - getPublishedObjectChanges, - normalizeSuiObjectId, - RawSigner, - TransactionBlock, - SUI_CLOCK_OBJECT_ID, - JsonRpcProvider, - Ed25519Keypair, - testnetConnection, - Connection, - } from "@mysten/sui.js"; - import { execSync } from "child_process"; - import fs from "fs"; - import { resolve } from "path"; - -import dotenv from "dotenv" - -import {REGISTRY, NETWORK} from "../registry" - -dotenv.config({"path":"~/.env"}) + fromB64, + getPublishedObjectChanges, + normalizeSuiObjectId, + RawSigner, + TransactionBlock, + SUI_CLOCK_OBJECT_ID, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, +} from "@mysten/sui.js"; +import { execSync } from "child_process"; +import fs from "fs"; +import { resolve } from "path"; + +import dotenv from "dotenv"; + +import { REGISTRY, NETWORK } from "../registry"; + +dotenv.config({ path: "~/.env" }); // Network dependent settings. -let network = NETWORK.TESTNET // <= NOTE: Update this when changing network +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network // Load registry and provider. -const registry = REGISTRY[network] -const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) - -async function main(){ - if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); - } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "hex") - ), - provider - ); - await publishPackage(wallet, "~/developer/wormhole/sui/wormhole"); +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); + +async function main() { + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), + provider + ); + await publishPackage(wallet, "~/developer/wormhole/sui/wormhole"); } -main() - - async function publishPackage( - signer: RawSigner, - //network: Network, - packagePath: string - ) { - try { - // Build contracts - const buildOutput: { - modules: string[]; - dependencies: string[]; - } = JSON.parse( - execSync( - `sui move build --dump-bytecode-as-base64 --path ${packagePath} 2> /dev/null`, - { - encoding: "utf-8", - } - ) - ); +main(); + +async function publishPackage( + signer: RawSigner, + //network: Network, + packagePath: string +) { + try { + // Build contracts + const buildOutput: { + modules: string[]; + dependencies: string[]; + } = JSON.parse( + execSync( + `sui move build --dump-bytecode-as-base64 --path ${packagePath} 2> /dev/null`, + { + encoding: "utf-8", + } + ) + ); - console.log("buildOutput: ", buildOutput) + console.log("buildOutput: ", buildOutput); - // Publish contracts - const transactionBlock = new TransactionBlock(); + // Publish contracts + const transactionBlock = new TransactionBlock(); - // important - transactionBlock.setGasBudget(5000000000); + // important + transactionBlock.setGasBudget(5000000000); - const [upgradeCap] = transactionBlock.publish({ - modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), - dependencies: buildOutput.dependencies.map((d: string) => - normalizeSuiObjectId(d) - ), - }); + const [upgradeCap] = transactionBlock.publish({ + modules: buildOutput.modules.map((m: string) => Array.from(fromB64(m))), + dependencies: buildOutput.dependencies.map((d: string) => + normalizeSuiObjectId(d) + ), + }); - // Transfer upgrade capability to deployer - transactionBlock.transferObjects( - [upgradeCap], - transactionBlock.pure(await signer.getAddress()) - ); + // Transfer upgrade capability to deployer + transactionBlock.transferObjects( + [upgradeCap], + transactionBlock.pure(await signer.getAddress()) + ); - // Execute transactions - const res = await signer.signAndExecuteTransactionBlock({ - transactionBlock, - options: { - showInput: true, - showObjectChanges: true, - }, - }); - - // Update network-specific Move.toml with package ID - const publishEvents = getPublishedObjectChanges(res); - if (publishEvents.length !== 1) { - throw new Error( - "No publish event found in transaction:" + - JSON.stringify(res.objectChanges, null, 2) - ); - } - - // Return publish transaction info - return res; - } catch (e) { - throw e; - } finally { + // Execute transactions + const res = await signer.signAndExecuteTransactionBlock({ + transactionBlock, + options: { + showInput: true, + showObjectChanges: true, + }, + }); + + // Update network-specific Move.toml with package ID + const publishEvents = getPublishedObjectChanges(res); + if (publishEvents.length !== 1) { + throw new Error( + "No publish event found in transaction:" + + JSON.stringify(res.objectChanges, null, 2) + ); } - }; + + // Return publish transaction info + return res; + } catch (e) { + throw e; + } finally { + } +} diff --git a/target_chains/sui/scripts/wormhole/wormhole_init.ts b/target_chains/sui/scripts/wormhole/wormhole_init.ts index 9bacc1935b..4705b88995 100644 --- a/target_chains/sui/scripts/wormhole/wormhole_init.ts +++ b/target_chains/sui/scripts/wormhole/wormhole_init.ts @@ -1,98 +1,96 @@ /// Initialize Wormhole on Sui testnet import { - fromB64, - getPublishedObjectChanges, - normalizeSuiObjectId, - RawSigner, - TransactionBlock, - SUI_CLOCK_OBJECT_ID, - JsonRpcProvider, - Ed25519Keypair, - testnetConnection, - Connection, - } from "@mysten/sui.js"; - import { execSync } from "child_process"; - import fs from "fs"; - import { resolve } from "path"; + fromB64, + getPublishedObjectChanges, + normalizeSuiObjectId, + RawSigner, + TransactionBlock, + SUI_CLOCK_OBJECT_ID, + JsonRpcProvider, + Ed25519Keypair, + testnetConnection, + Connection, +} from "@mysten/sui.js"; +import { execSync } from "child_process"; +import fs from "fs"; +import { resolve } from "path"; -import dotenv from "dotenv" +import dotenv from "dotenv"; -import {REGISTRY, NETWORK} from "../registry" +import { REGISTRY, NETWORK } from "../registry"; -dotenv.config({"path":"~/.env"}) +dotenv.config({ path: "~/.env" }); // Network dependent settings -let network = NETWORK.TESTNET // <= NOTE: Update this when changing network +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network // Load registry and provider. -const registry = REGISTRY[network] -const provider = new JsonRpcProvider(new Connection({ fullnode: registry["RPC_URL"] })) +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); -async function main(){ - if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); - } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "hex") - ), - provider - ); - await init_wormhole(wallet, registry["WORMHOLE_PACKAGE_ID"]); +async function main() { + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), + provider + ); + await init_wormhole(wallet, registry["WORMHOLE_PACKAGE_ID"]); } -main() +main(); - async function init_wormhole( - signer: RawSigner, - WORMHOLE_PACKAGE_ID: string - ) { - try { +async function init_wormhole(signer: RawSigner, WORMHOLE_PACKAGE_ID: string) { + try { + const tx = new TransactionBlock(); - const tx = new TransactionBlock(); + tx.setGasBudget(2500000000); - tx.setGasBudget(2500000000); + let DEPLOYER_CAP = + "0x19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba"; + let UPGRADE_CAP = + "0x746cbe8c14f9ef163fc4e18c1edc6fc61041e118f7d6e751bcc4162b722636d4"; + let GOVERNANCE_CHAIN = 1; + let GOVERNANCE_CONTRACT = "04"; + let GUARDIAN_SET_INDEX = 0; + let INITIAL_GUARDIANS = ["13947bd48b18e53fdaeee77f3473391ac727c638"]; + let GUARDIAN_SECONDS_TO_LIVE = "100000000"; + let MESSAGE_FEE = 0; - let DEPLOYER_CAP = "0x19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba"; - let UPGRADE_CAP = "0x746cbe8c14f9ef163fc4e18c1edc6fc61041e118f7d6e751bcc4162b722636d4" - let GOVERNANCE_CHAIN = 1; - let GOVERNANCE_CONTRACT = "04"; - let GUARDIAN_SET_INDEX = 0; - let INITIAL_GUARDIANS = ["13947bd48b18e53fdaeee77f3473391ac727c638"] - let GUARDIAN_SECONDS_TO_LIVE = "100000000" - let MESSAGE_FEE = 0 + tx.moveCall({ + target: `${WORMHOLE_PACKAGE_ID}::setup::complete`, + arguments: [ + tx.object(DEPLOYER_CAP), + tx.object(UPGRADE_CAP), + tx.pure(GOVERNANCE_CHAIN), + tx.pure(GOVERNANCE_CONTRACT), + tx.pure(GUARDIAN_SET_INDEX), + tx.pure(INITIAL_GUARDIANS.map((x) => [...Buffer.from(x, "hex")])), + tx.pure(GUARDIAN_SECONDS_TO_LIVE), + tx.pure(MESSAGE_FEE), + ], + }); - tx.moveCall({ - target: `${WORMHOLE_PACKAGE_ID}::setup::complete`, - arguments: [ - tx.object(DEPLOYER_CAP), - tx.object(UPGRADE_CAP), - tx.pure(GOVERNANCE_CHAIN), - tx.pure(GOVERNANCE_CONTRACT), - tx.pure(GUARDIAN_SET_INDEX), - tx.pure(INITIAL_GUARDIANS.map(x=>[...Buffer.from(x, "hex")])), - tx.pure(GUARDIAN_SECONDS_TO_LIVE), - tx.pure(MESSAGE_FEE) - ], - }); + let res = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(res); - let res = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(res) - - // Return publish transaction info - return res; - } catch (e) { - throw e; - } finally { - } - }; + // Return publish transaction info + return res; + } catch (e) { + throw e; + } finally { + } +} From fd07c1c4e738acb74a2abadfed03b87d70609854 Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 17:37:22 +0000 Subject: [PATCH 099/140] update price feeds script --- target_chains/sui/contracts/Move.lock | 2 +- target_chains/sui/contracts/Move.testnet.toml | 19 + target_chains/sui/contracts/sources/pyth.move | 456 +++++++++--------- .../price_id_to_object_id.mainnet.json | 0 .../price_id_to_object_id.testnet.json | 252 ++++++++++ .../price_identifier_to_object_id.json | 198 -------- ...ice_feeds.ts => create_all_price_feeds.ts} | 53 +- ...ate_price_feed.ts => create_price_feed.ts} | 0 .../pyth/{pyth_deploy.ts => deploy.ts} | 8 +- ...ct_ids.ts => get_price_info_object_ids.ts} | 15 +- target_chains/sui/scripts/pyth/get_vaas.ts | 28 ++ .../{pyth_init_state.ts => init_state.ts} | 14 +- .../sui/scripts/pyth/pyth_get_vaas.ts | 36 -- .../scripts/pyth/pyth_update_price_feeds.ts | 138 ------ target_chains/sui/scripts/pyth/test.ts | 224 +++++++++ .../sui/scripts/pyth/update_price_feeds.ts | 151 ++++++ target_chains/sui/scripts/registry.ts | 4 +- 17 files changed, 951 insertions(+), 647 deletions(-) create mode 100644 target_chains/sui/contracts/Move.testnet.toml create mode 100644 target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json create mode 100644 target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json delete mode 100644 target_chains/sui/scripts/price_identifier_to_object_id.json rename target_chains/sui/scripts/pyth/{pyth_create_all_price_feeds.ts => create_all_price_feeds.ts} (61%) rename target_chains/sui/scripts/pyth/{pyth_create_price_feed.ts => create_price_feed.ts} (100%) rename target_chains/sui/scripts/pyth/{pyth_deploy.ts => deploy.ts} (90%) rename target_chains/sui/scripts/pyth/{pyth_get_price_info_object_ids.ts => get_price_info_object_ids.ts} (67%) create mode 100644 target_chains/sui/scripts/pyth/get_vaas.ts rename target_chains/sui/scripts/pyth/{pyth_init_state.ts => init_state.ts} (84%) delete mode 100644 target_chains/sui/scripts/pyth/pyth_get_vaas.ts delete mode 100644 target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts create mode 100644 target_chains/sui/scripts/pyth/test.ts create mode 100644 target_chains/sui/scripts/pyth/update_price_feeds.ts diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index 09f1ab0711..de1bf93efd 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad", subdir = "sui/wormhole" } +source = { local = "../../../../wormhole/sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.testnet.toml b/target_chains/sui/contracts/Move.testnet.toml new file mode 100644 index 0000000000..20dc89a0ab --- /dev/null +++ b/target_chains/sui/contracts/Move.testnet.toml @@ -0,0 +1,19 @@ +[package] +name = "Pyth" +version = "0.0.1" + +[dependencies.Sui] +git = "https://github.com/MystenLabs/sui.git" +subdir = "crates/sui-framework/packages/sui-framework" +rev = "09b2081498366df936abae26eea4b2d5cafb2788" + +[dependencies.Wormhole] +local = "../../../../wormhole/sui/wormhole" + +[addresses] +pyth = "0x0" +wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" + +[dev-addresses] +pyth = "0x100" +wormhole = "0x200" diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index de4bfab9c7..aabf9114a7 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -332,145 +332,146 @@ module pyth::pyth { #[test_only] module pyth::pyth_tests{ - // use std::vector::{Self}; - - // use sui::sui::SUI; - // use sui::coin::{Self, Coin}; - // use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; - // use sui::package::Self; - // use sui::object::{Self, ID}; - // use sui::clock::{Self, Clock}; - - // use pyth::state::{State as PythState}; - // use pyth::setup::{Self}; - // use pyth::price_identifier::{Self}; - // use pyth::price_info::{Self, PriceInfo, PriceInfoObject}; - // use pyth::price_feed::{Self}; - // use pyth::data_source::{Self, DataSource}; - // use pyth::i64::{Self}; - // use pyth::price::{Self}; - // use pyth::pyth::{Self}; - - // use wormhole::setup::{Self as wormhole_setup, DeployerCap}; - // use wormhole::external_address::{Self}; - // use wormhole::bytes32::{Self}; - // use wormhole::state::{State as WormState}; - // use wormhole::vaa::{Self, VAA}; - - // const DEPLOYER: address = @0x1234; + use std::vector::{Self}; - // #[test_only] + use sui::sui::SUI; + use sui::coin::{Self, Coin}; + use sui::test_scenario::{Self, Scenario, ctx, take_shared, return_shared}; + use sui::package::Self; + use sui::object::{Self, ID}; + use sui::clock::{Self, Clock}; + + use pyth::state::{State as PythState}; + use pyth::setup::{Self}; + //use pyth::price_identifier::{Self}; + use pyth::price_info::{PriceInfo, PriceInfoObject};//, PriceInfo, PriceInfoObject}; + //use pyth::price_feed::{Self}; + use pyth::data_source::{Self, DataSource}; + //use pyth::i64::{Self}; + //use pyth::price::{Self}; + use pyth::pyth::{Self, create_price_infos_hot_potato, update_single_price_feed}; + use pyth::hot_potato_vector::{Self}; + + use wormhole::setup::{Self as wormhole_setup, DeployerCap}; + use wormhole::external_address::{Self}; + use wormhole::bytes32::{Self}; + use wormhole::state::{State as WormState}; + use wormhole::vaa::{Self, VAA}; + + const DEPLOYER: address = @0x1234; + + #[test_only] // /// A vector containing a single VAA with: // /// - emitter chain ID 17 // /// - emitter address 0x71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b // /// - payload corresponding to the batch price attestation of the prices returned by get_mock_price_infos() - // const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; + const TEST_VAAS: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; - // fun get_verified_test_vaas(worm_state: &WormState, clock: &Clock): vector { - // let test_vaas_: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; - // let verified_vaas_reversed = vector::empty(); - // let test_vaas = test_vaas_; - // let i = 0; - // while (i < vector::length(&test_vaas_)) { - // let cur_test_vaa = vector::pop_back(&mut test_vaas); - // let verified_vaa = vaa::parse_and_verify(worm_state, cur_test_vaa, clock); - // vector::push_back(&mut verified_vaas_reversed, verified_vaa); - // i=i+1; - // }; - // let verified_vaas = vector::empty(); - // while (vector::length(&verified_vaas_reversed)!=0){ - // let cur = vector::pop_back(&mut verified_vaas_reversed); - // vector::push_back(&mut verified_vaas, cur); - // }; - // vector::destroy_empty(verified_vaas_reversed); - // verified_vaas - // } + fun get_verified_test_vaas(worm_state: &WormState, clock: &Clock): vector { + let test_vaas_: vector> = vector[x"0100000000010036eb563b80a24f4253bee6150eb8924e4bdf6e4fa1dfc759a6664d2e865b4b134651a7b021b7f1ce3bd078070b688b6f2e37ce2de0d9b48e6a78684561e49d5201527e4f9b00000001001171f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b0000000000000001005032574800030000000102000400951436e0be37536be96f0896366089506a59763d036728332d3e3038047851aea7c6c75c89f14810ec1c54c03ab8f1864a4c4032791f05747f560faec380a695d1000000000000049a0000000000000008fffffffb00000000000005dc0000000000000003000000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000006150000000000000007215258d81468614f6b7e194c5d145609394f67b041e93e6695dcc616faadd0603b9551a68d01d954d6387aff4df1529027ffb2fee413082e509feb29cc4904fe000000000000041a0000000000000003fffffffb00000000000005cb0000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e4000000000000048600000000000000078ac9cf3ab299af710d735163726fdae0db8465280502eb9f801f74b3c1bd190333832fad6e36eb05a8972fe5f219b27b5b2bb2230a79ce79beb4c5c5e7ecc76d00000000000003f20000000000000002fffffffb00000000000005e70000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e40000000000000685000000000000000861db714e9ff987b6fedf00d01f9fea6db7c30632d6fc83b7bc9459d7192bc44a21a28b4c6619968bd8c20e95b0aaed7df2187fd310275347e0376a2cd7427db800000000000006cb0000000000000001fffffffb00000000000005e40000000000000003010000000100000001000000006329c0eb000000006329c0e9000000006329c0e400000000000007970000000000000001"]; + let verified_vaas_reversed = vector::empty(); + let test_vaas = test_vaas_; + let i = 0; + while (i < vector::length(&test_vaas_)) { + let cur_test_vaa = vector::pop_back(&mut test_vaas); + let verified_vaa = vaa::parse_and_verify(worm_state, cur_test_vaa, clock); + vector::push_back(&mut verified_vaas_reversed, verified_vaa); + i=i+1; + }; + let verified_vaas = vector::empty(); + while (vector::length(&verified_vaas_reversed)!=0){ + let cur = vector::pop_back(&mut verified_vaas_reversed); + vector::push_back(&mut verified_vaas, cur); + }; + vector::destroy_empty(verified_vaas_reversed); + verified_vaas + } - // #[test_only] - // /// Init Wormhole core bridge state. - // /// Init Pyth state. - // /// Set initial Sui clock time. - // /// Mint some SUI fee coins. - // fun setup_test( - // stale_price_threshold: u64, - // governance_emitter_chain_id: u64, - // governance_emitter_address: vector, - // data_sources: vector, - // base_update_fee: u64, - // to_mint: u64 - // ): (Scenario, Coin, Clock) { - - // let scenario = test_scenario::begin(DEPLOYER); - - // // Initialize Wormhole core bridge. - // wormhole_setup::init_test_only(ctx(&mut scenario)); - // test_scenario::next_tx(&mut scenario, DEPLOYER); - // // Take the `DeployerCap` from the sender of the transaction. - // let deployer_cap = - // test_scenario::take_from_address( - // &scenario, - // DEPLOYER - // ); - - // // This will be created and sent to the transaction sender automatically - // // when the contract is published. This exists in place of grabbing - // // it from the sender. - // let upgrade_cap = - // package::test_publish( - // object::id_from_address(@wormhole), - // test_scenario::ctx(&mut scenario) - // ); - - // let governance_chain = 1234; - // let governance_contract = - // x"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; - // let initial_guardians = - // vector[ - // x"beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe" - // ]; - // let guardian_set_seconds_to_live = 5678; - // let message_fee = 350; - // let guardian_set_index = 0; - // wormhole_setup::complete( - // deployer_cap, - // upgrade_cap, - // governance_chain, - // governance_contract, - // guardian_set_index, - // initial_guardians, - // guardian_set_seconds_to_live, - // message_fee, - // test_scenario::ctx(&mut scenario) - // ); + #[test_only] + /// Init Wormhole core bridge state. + /// Init Pyth state. + /// Set initial Sui clock time. + /// Mint some SUI fee coins. + fun setup_test( + stale_price_threshold: u64, + governance_emitter_chain_id: u64, + governance_emitter_address: vector, + data_sources: vector, + base_update_fee: u64, + to_mint: u64 + ): (Scenario, Coin, Clock) { + + let scenario = test_scenario::begin(DEPLOYER); + + // Initialize Wormhole core bridge. + wormhole_setup::init_test_only(ctx(&mut scenario)); + test_scenario::next_tx(&mut scenario, DEPLOYER); + // Take the `DeployerCap` from the sender of the transaction. + let deployer_cap = + test_scenario::take_from_address( + &scenario, + DEPLOYER + ); - // // Initialize Pyth state. - // let pyth_upgrade_cap= - // package::test_publish( - // object::id_from_address(@pyth), - // test_scenario::ctx(&mut scenario) - // ); + // This will be created and sent to the transaction sender automatically + // when the contract is published. This exists in place of grabbing + // it from the sender. + let upgrade_cap = + package::test_publish( + object::id_from_address(@wormhole), + test_scenario::ctx(&mut scenario) + ); - // setup::init_test_only(ctx(&mut scenario)); - // test_scenario::next_tx(&mut scenario, DEPLOYER); - // let pyth_deployer_cap = test_scenario::take_from_address( - // &scenario, - // DEPLOYER - // ); + let governance_chain = 1234; + let governance_contract = + x"deadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeefdeadbeef"; + let initial_guardians = + vector[ + x"beFA429d57cD18b7F8A4d91A2da9AB4AF05d0FBe" + ]; + let guardian_set_seconds_to_live = 5678; + let message_fee = 350; + let guardian_set_index = 0; + wormhole_setup::complete( + deployer_cap, + upgrade_cap, + governance_chain, + governance_contract, + guardian_set_index, + initial_guardians, + guardian_set_seconds_to_live, + message_fee, + test_scenario::ctx(&mut scenario) + ); - // setup::init_and_share_state( - // pyth_deployer_cap, - // pyth_upgrade_cap, - // stale_price_threshold, - // base_update_fee, - // data_source::new(governance_emitter_chain_id, external_address::new(bytes32::from_bytes(governance_emitter_address))), - // data_sources, - // ctx(&mut scenario) - // ); + // Initialize Pyth state. + let pyth_upgrade_cap= + package::test_publish( + object::id_from_address(@pyth), + test_scenario::ctx(&mut scenario) + ); - // let coins = coin::mint_for_testing(to_mint, ctx(&mut scenario)); - // let clock = clock::create_for_testing(ctx(&mut scenario)); - // (scenario, coins, clock) - // } + setup::init_test_only(ctx(&mut scenario)); + test_scenario::next_tx(&mut scenario, DEPLOYER); + let pyth_deployer_cap = test_scenario::take_from_address( + &scenario, + DEPLOYER + ); + + setup::init_and_share_state( + pyth_deployer_cap, + pyth_upgrade_cap, + stale_price_threshold, + base_update_fee, + data_source::new(governance_emitter_chain_id, external_address::new(bytes32::from_bytes(governance_emitter_address))), + data_sources, + ctx(&mut scenario) + ); + + let coins = coin::mint_for_testing(to_mint, ctx(&mut scenario)); + let clock = clock::create_for_testing(ctx(&mut scenario)); + (scenario, coins, clock) + } // #[test_only] // fun get_mock_price_infos(): vector { @@ -570,31 +571,31 @@ module pyth::pyth_tests{ // test_scenario::end(scenario); // } - // #[test] - // #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] - // fun test_create_price_feeds_corrupt_vaa() { - // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); - // test_scenario::next_tx(&mut scenario, DEPLOYER); - // let pyth_state = take_shared(&scenario); - // let worm_state = take_shared(&scenario); - - // // Pass in a corrupt VAA, which should fail deseriaizing - // let corrupt_vaa = x"90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; - // let verified_vaas = vector[vaa::parse_and_verify(&worm_state, corrupt_vaa, &clock)]; - // // Create Pyth price feed - // pyth::create_price_feeds( - // &mut pyth_state, - // verified_vaas, - // &clock, - // ctx(&mut scenario) - // ); + #[test] + #[expected_failure(abort_code = wormhole::vaa::E_WRONG_VERSION)] + fun test_create_price_feeds_corrupt_vaa() { + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", vector[], 50, 0); + test_scenario::next_tx(&mut scenario, DEPLOYER); + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); + + // Pass in a corrupt VAA, which should fail deseriaizing + let corrupt_vaa = x"90F8bf6A479f320ead074411a4B0e7944Ea8c9C1"; + let verified_vaas = vector[vaa::parse_and_verify(&worm_state, corrupt_vaa, &clock)]; + // Create Pyth price feed + pyth::create_price_feeds( + &mut pyth_state, + verified_vaas, + &clock, + ctx(&mut scenario) + ); - // return_shared(pyth_state); - // return_shared(worm_state); - // clock::destroy_for_testing(clock); - // coin::burn_for_testing(test_coins); - // test_scenario::end(scenario); - // } + return_shared(pyth_state); + return_shared(worm_state); + clock::destroy_for_testing(clock); + coin::burn_for_testing(test_coins); + test_scenario::end(scenario); + } // #[test] // #[expected_failure(abort_code = pyth::pyth::E_INVALID_DATA_SOURCE)] @@ -631,83 +632,100 @@ module pyth::pyth_tests{ // test_scenario::end(scenario); // } - // #[test_only] - // fun data_sources_for_test_vaa(): vector { - // // Set some valid data sources, including our test VAA's source - // vector[ - // data_source::new( - // 1, external_address::new(bytes32::from_bytes(x"0000000000000000000000000000000000000000000000000000000000000004"))), - // data_source::new( - // 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637"))), - // data_source::new( - // 17, external_address::new(bytes32::new(x"71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b"))) - // ] - // } + #[test_only] + fun data_sources_for_test_vaa(): vector { + // Set some valid data sources, including our test VAA's source + vector[ + data_source::new( + 1, external_address::new(bytes32::from_bytes(x"0000000000000000000000000000000000000000000000000000000000000004"))), + data_source::new( + 5, external_address::new(bytes32::new(x"0000000000000000000000000000000000000000000000000000000000007637"))), + data_source::new( + 17, external_address::new(bytes32::new(x"71f8dcb863d176e2c420ad6610cf687359612b6fb392e0642b0ca6b1f186aa3b"))) + ] + } - // #[test] - // fun test_create_and_update_price_feeds_success() { - // let data_sources = data_sources_for_test_vaa(); - // let base_update_fee = 50; - // let coins_to_mint = 5000; + #[test] + fun test_create_and_update_price_feeds_success() { + let data_sources = data_sources_for_test_vaa(); + let base_update_fee = 50; + let coins_to_mint = 5000; - // let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); - // test_scenario::next_tx(&mut scenario, DEPLOYER); + let (scenario, test_coins, clock) = setup_test(500, 23, x"5d1f252d5de865279b00c84bce362774c2804294ed53299bc4a0389a5defef92", data_sources, base_update_fee, coins_to_mint); + test_scenario::next_tx(&mut scenario, DEPLOYER); - // let pyth_state = take_shared(&scenario); - // let worm_state = take_shared(&scenario); + let pyth_state = take_shared(&scenario); + let worm_state = take_shared(&scenario); - // let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - - // pyth::create_price_feeds( - // &mut pyth_state, - // verified_vaas, - // &clock, - // ctx(&mut scenario) - // ); - - // // Affirm that 4 objects, which correspond to the 4 new price info objects - // // containing the price feeds were created and shared. - // let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); - // let shared_ids = test_scenario::shared(&effects); - // let created_ids = test_scenario::created(&effects); - // assert!(vector::length(&shared_ids)==4, 0); - // assert!(vector::length(&created_ids)==4, 0); + let verified_vaas = get_verified_test_vaas(&worm_state, &clock); - // let price_info_object_1 = take_shared(&scenario); - // let price_info_object_2 = take_shared(&scenario); - // let price_info_object_3 = take_shared(&scenario); - // let price_info_object_4 = take_shared(&scenario); + test_scenario::next_tx(&mut scenario, DEPLOYER); - // // Create vector of price info objects (Sui objects with key ability and living in global store), - // // which contain the price feeds we want to update. Note that these can be passed into - // // update_price_feeds in any order! - // let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3, price_info_object_4]; - // verified_vaas = get_verified_test_vaas(&worm_state, &clock); + pyth::create_price_feeds( + &mut pyth_state, + verified_vaas, + &clock, + ctx(&mut scenario) + ); - // pyth::update_price_feeds( - // &mut pyth_state, - // verified_vaas, - // &mut price_info_object_vec, - // test_coins, - // &clock - // ); + // Affirm that 4 objects, which correspond to the 4 new price info objects + // containing the price feeds were created and shared. + let effects = test_scenario::next_tx(&mut scenario, DEPLOYER); + let shared_ids = test_scenario::shared(&effects); + let created_ids = test_scenario::created(&effects); + assert!(vector::length(&shared_ids)==4, 0); + assert!(vector::length(&created_ids)==4, 0); + + let price_info_object_1 = take_shared(&scenario); + let price_info_object_2 = take_shared(&scenario); + let price_info_object_3 = take_shared(&scenario); + let price_info_object_4 = take_shared(&scenario); + + // Create vector of price info objects (Sui objects with key ability and living in global store), + // which contain the price feeds we want to update. Note that these can be passed into + // update_price_feeds in any order! + //let price_info_object_vec = vector[price_info_object_1, price_info_object_2, price_info_object_3, price_info_object_4]; + verified_vaas = get_verified_test_vaas(&worm_state, &clock); + test_scenario::next_tx(&mut scenario, DEPLOYER); + + // Get VAA objects + std::debug::print(&vector::length(&verified_vaas)); + std::debug::print(&vector::length(&verified_vaas)); + + let vaa_1 = vector::pop_back(&mut verified_vaas); + + test_scenario::next_tx(&mut scenario, DEPLOYER); + + // Create hot potato. + let potato = create_price_infos_hot_potato( + &pyth_state, + vector[vaa_1], + &clock + ); - // price_info_object_4 = vector::pop_back(&mut price_info_object_vec); - // price_info_object_3 = vector::pop_back(&mut price_info_object_vec); - // price_info_object_2 = vector::pop_back(&mut price_info_object_vec); - // price_info_object_1 = vector::pop_back(&mut price_info_object_vec); - // vector::destroy_empty(price_info_object_vec); + test_scenario::next_tx(&mut scenario, DEPLOYER); + potato = update_single_price_feed( + &mut pyth_state, + potato, + &mut price_info_object_1, + test_coins, + &clock + ); - // return_shared(pyth_state); - // return_shared(worm_state); - // return_shared(price_info_object_1); - // return_shared(price_info_object_2); - // return_shared(price_info_object_3); - // return_shared(price_info_object_4); + test_scenario::next_tx(&mut scenario, DEPLOYER); + hot_potato_vector::destroy(potato); - // clock::destroy_for_testing(clock); - // test_scenario::end(scenario); - // } + vector::destroy_empty(verified_vaas); + return_shared(pyth_state); + return_shared(worm_state); + return_shared(price_info_object_1); + return_shared(price_info_object_2); + return_shared(price_info_object_3); + return_shared(price_info_object_4); + + clock::destroy_for_testing(clock); + test_scenario::end(scenario); + } // #[test] // #[expected_failure(abort_code = pyth::pyth::E_PRICE_INFO_OBJECT_NOT_FOUND)] diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json new file mode 100644 index 0000000000..e69de29bb2 diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json new file mode 100644 index 0000000000..844764b3f2 --- /dev/null +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json @@ -0,0 +1,252 @@ +{ + "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd" : "0xd07bed344437b427c514bcff7b2bfdb4aa8223aee75b9880d91c9e5877f3d446", + "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba" : "0x9f12da5a9cae3d0dfb624cf9d7be2e82ace91e9ae9f6a3d61e15ce0d9a330c19", + "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93" : "0xace30b49c550f26068f8a6b45462b6a99929c333343294eac8c9f1042475f716", + "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021" : "0x64cef1a5f430ee752c0a13d05fa7e6afdbe30c5b0031039fae0cbf100361afb8", + "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376" : "0xafe6bbad7da2b1a89957ef059f787bcde7a2d53f40a8f776bc61cf396d021415", + "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5" : "0x3a7714ecec59bf36da9c71d3e0bf55200aa02b79e0cd97882915c32cfdf431fe", + "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e" : "0x8d3b37467d2406b7f4bc916d508d078ba7102c6f42dcbc29f1f0b4a2bbac3f0f", + "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd" : "0x3ed29c612899fd496cb3efc1f04f9ad4a4636c4b274b3e3aed3fc659eca36893", + "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048" : "0xb5423c5ed2f5ccbd93d300b8a23a21258cc953abd8ea8319a9368d78927fb67b", + "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21" : "0x34252fd351a78ab9cc45c548e3f7b5eb9cf09a9fce4a01ed648674cce0be91b1", + "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880" : "0xb4e40db0e19849b5a4625c2c6197e7fcb9eb6a9aa8d8abaaf5abacebd0fbd96f", + "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5" : "0xc06ca389579176601e6e92f48bf55ce5907ffa002b13df56217b905ef2e36533", + "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758" : "0x8c088de47d51191fc863585021c5a2b64a0d218bd612c39910d6a6f2b9692641", + "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb" : "0xb6fd25a93d5a243c9a2c36650d76c3756302cc5a072d92e0e33c6c2395a7a304", + "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7" : "0xa4e93e44b4dd7bbb66875c9615e50c4437250057b6f8bf4418985f9c6786deb1", + "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1" : "0xd4b7cc8310294715c013b186358fe5f7f780f07aa302941e3372c820d52084be", + "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588" : "0xf87ffc9575e9d2f027411d510984a468cbda9796141b2a6370f6ebad378381e6", + "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd" : "0x8528cff5bbcc5785f40b1f04713a93f98ce5ac463fd24f7e3736c501a620eb78", + "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378" : "0xf6025c8d93ed23c91c7d99f43e2ea6f991b1d686d7d5294f9190f4e7f79bab4a", + "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519" : "0x90fbdfb71576fc4b7d7708148a3bb1a048cafb08315ec421bb0b58eb316f411d", + "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b" : "0xee068c20b96c0261c068aad55ec3f694661522e1be3dc3ecb1160d6688dddbb6", + "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7" : "0x072b70e34fa2480ba7a330adee62aa68b4dda85d10a023a6ad21003f00cb3cd7", + "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994" : "0x2e6715953d4024b835c6dea6391dad24deb2218ffaf4a16519b8fb0a506c31f0", + "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb" : "0xdcb2671ccd0792c97a19f436bf65083d2aab2c8152392b186bf5b1759fecdae1", + "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7" : "0x18c7bacf14e204a76b074398b5f08f359b3ae95aff7842acccb39e3730b7d4eb", + "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62" : "0x258e47ffb0f52304bfce48b6dcf647720d68b725a492621cf34143127b447645", + "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f" : "0x4c931fc66e2a247d1e588be60af21de43b765b2ef39074ee8e18bd42deb30df6", + "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d" : "0x1d16c37a39462cff97191c0caccda3fd610c95bcc0100326da6880410e3d9e73", + "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08" : "0xc9ded1e350998915d4530087d00121083f2effbe4f6c879af4b2e7eb4d44e623", + "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb" : "0x93a20704efadd5bed89d10519f4664958acfe615d4d1f58fe3df1869c16b890f", + "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7" : "0x347ff680ea7236166e9bc005e24822ce47ef760d14ce8827de17a3c630980363", + "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621" : "0xac3f419bb0bde029b9221a3a820bcd2bb83e01071f8b107e3f8ad0d8be9ae993", + "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a" : "0x693956733018d8c521101fe69cb5196b7395b1cf12ecb15a30cebf63a3814a32", + "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494" : "0xead5f2282d63db693887b79e80772a3f52a0b948500ff7e7bb230e4335570e50", + "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86" : "0x64efdd90ded345eb55dffab383194e94deb6821fa25494343be8534b29472a4a", + "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193" : "0x64f8924ee4a5e4378f16d29477873996e4211ce5ae8aa48213a9a870cb215563", + "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7" : "0xac38e5f0aaa10f50fdb5eac34ec2df8777bd14b07f422f47031d44c7cd7af6dc", + "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7" : "0x5b4508ee0da8bf3f40eaefd50d5f49648863c37670612e048abd491057c7637c", + "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc" : "0x4a35514e2502c9b858a869d29ce27760f51c536bc313df8b3b80a68192ce501a", + "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2" : "0xdbade3342b68d11b2e6770299cb5b135e5791a8c722a42d95276c961bb935fdd", + "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51" : "0x7a71572916bf129514448ba9680ff4dc5aaf46cc8b529446aa74d1da4a80d71a", + "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd" : "0x2c9d20757ac94d33eb8bd807a363111513760646cd8cb9ba0ebca7920e2f999a", + "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417" : "0x16c9d88a6750c589129bf1b58325ce09dbd81c6cad769cdb9e718f0578af60ea", + "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc" : "0xe8fafe957ffe05e4a31c6116a1a6b6ddfb3494ac5426ee17c1e8fd77579eb4f5", + "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f" : "0x95089834f36e75ade17c352d074d83097130501800c86ee6a6385e7089016cdf", + "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064" : "0x398d9709d550256f6987889c210fd0a3487744767951564f79ff5b6a7e314ffc", + "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee" : "0xd13dc34b9093bcb118d1cf977936a0e44dfcbd82514d9eee387d180cdd6073f1", + "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f" : "0xf50428a88bc7244bd45417e5dc79675a711799f200191f53834dbc700402ee97", + "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32" : "0xd939c3eee5b12e0f105974385b18a64934a172008c5a9f732211fdf01e84f5d5", + "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6" : "0x4a4942a9a6ccae4188ef412973c014a3f14344ba19132d5a180af0d06ac9ed11", + "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b" : "0xa3baa7b5ca62a1dda6dcf7d14761b6ab2bbf981ca7a6aacfd18e21ac480cf027", + "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d" : "0xbcf3d401fced41ac5244d726d2964fd10684f88fdfcf7e956ebf7ac312b11d71", + "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f" : "0x162b021a535c9eaa6cd803120d78723bd03538bdd0cb423b135bae0215a00761", + "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919" : "0x41238998dfe44707cd686152d2ef98aac1880d9146450dcde0d801a2ad1213cb", + "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93" : "0x69672ab7c1e015dbe5e9e9305c32af8341aacc1b0b40a072a6376f84f4f924d6", + "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b" : "0xea6b1a2ad1b7cfe1b2b909791748a2e79025aa9702d8eaf5cdc49b7a5459a663", + "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73" : "0x99aea01afaff60e631309a695cf1b65f9c9158829821c250580bed4367f403d1", + "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e" : "0x4e2ed20484adabe15b757a7f34452505f1318232f2a3e7267c01b853b34fb716", + "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc" : "0xfd34f66ed27be18a17aa67b85efa7ba3326596513d0c03bf70de1c5c1b60bf4b", + "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f" : "0x35e8d81297205dadff23815f30401f8831cee8782b35bc8a923ed4be7ee29032", + "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd" : "0x4fe45439ea1af7600959561cc4f1295896a33c0bd417c0282d353878b00a0fa1", + "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8" : "0x9b097dca0aa847df70dafcd5c0c04d9f328108927ba5279131ee421a27b57283", + "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a" : "0x515d445b30d93c5bcc5cbeb1cd50c2b739a2e5756c564896d17e68fee5bc2ed2", + "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73" : "0x671cb561f93b564cc3dc72d55e24693b009a8c547634de59382c3fa80f40814b", + "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3" : "0xd2bce68cd588c016bfc1e82cef0a156791f74f7b46c91ff001c9f80d5983a0a7", + "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea" : "0x1b6d4021043c20931fdb79b6d920e61fe9bd13b38e9bf26bb1d89c4c0cad7213", + "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02" : "0xe6ca2a2a3158844a242602e7a9169eb6d6c99d8c87d6f1e0d517fde42094b802", + "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb" : "0xbef9c22a3c218b4dbf0b61dfaf62c8319a1298b7db3190ed50e2e5443084ab0a", + "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0" : "0x48ef93e6cee8e39f3f6f600654b2a84c5d2be83d0914c52cbff1f1db40cc7a01", + "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d" : "0x599f2bedc68036be537b6383cc13a45b5c45fed1420678d6d0e1094b851c43c2", + "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063" : "0xacc2b70ced0a5b0b245587860577e510a0c8410aa77b1667e167ad044359e83a", + "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93" : "0x7e2bb27f20c0474f24c3252aa813bd662bec101823b1bd7b5615b583e3192e5c", + "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2" : "0xa21cab5b1c4776eaf628ee27c494f9e855ab3e38cf1014807545d802bd0c3690", + "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b" : "0x65577361c45ab1bb94e319b1ee3930383170aa30a1c802dfe742394ce65fe680", + "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993" : "0x9eadd039593ea14ee4866811c90e6dc4d9c30948dee67a879b4a52e958675310", + "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a" : "0xa55283328a71ab719d8c99198ed9743876e674da9b9a1fe4309a12e01eeab137", + "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7" : "0x133a309c58962643664a62d867d2a8c48f166f0dc15d36773d2a4f845a05fd82", + "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748" : "0xba609f5cdd4c559a5a1de5fcc69ed1cfa15719b4efe5808109a1a425fe4e24e1", + "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66" : "0x2cd027259c4adf81d13b7270970987da55a676dbcd70790979a8a236b352efd5", + "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b" : "0x072a36b2b3c19cb68990a0b9bd5c2dafb9519da9afe1ca8e1f27054a5640a4e9", + "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8" : "0xdbc447274b3344577cdcd3f20cc32737c470a087f776e6a6d19972586d0fa0ab", + "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e" : "0x7e8fa556edd79ecf2567c140ebd7beacf609e19d88a70e98cc0d68b3b35c4cdf", + "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15" : "0xc64a124545e0b33dbaf889e5b8fa7278d9ca9b522a07610ed6cf05cdad06080e", + "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b" : "0x75db5897a856401c4084cd1f7415c1b6db2175debaad3d151e9af3300d6e4690", + "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24" : "0xddf729a44e3748651097187f8ca39d8eaaa90ee931848518bb91f429aeb3847e", + "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634" : "0x2c282b897bdd84673894e3a440675267339663fbed13f58636eb99801bb2b1ef", + "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98" : "0x875f8f4615921f2330c64c1fe288b544b061fd9701079b72ff7038c773ab1d37", + "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5" : "0x5b06b2d60c94726d66d9338ece963175e63c819baa7895670bc7fa7803fc2251", + "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860" : "0x365c58a2b25c1bff239d0e641c7b350bc96edbde776b1b81865d6f3fba7a3e16", + "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d" : "0x7f677e0ba88dc07225c05c2df967ced3eae58ed66ccbba089026fe7701b42184", + "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d" : "0xcf2dc7f20a8b180dde47ce0a01d2bcbc257866395294cdb649e48bfa9d5df432", + "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf" : "0x891410ba9a1151d4afc6c92b2f5f1c326df872de8fbb6c5aaf41b2cf08496bc7", + "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e" : "0xf8e635635b4693482e74c7b1cd2fbbecd9bb4cc574bcb4ec00b17d8c1ebe62de", + "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3" : "0x48eba1ccda0430be8b864e650e2e7d4cb6e2c8de7b29c31c2af08eb42d27a398", + "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e" : "0xae1210658c5281aea40d57de3534406661bf285a27cc4796e0f785dd67ed8350", + "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f" : "0xa2a3ef1a0e97d9df8aeb3ecf38b86a12ab9b8ad993dd7940999aab5274b3a8c4", + "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21" : "0x9b4eea93487aa3d286a32c0d1a8744b319d71fef9be0f382a55e3490c50a6ad5", + "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749" : "0xca31bdbeb0948a301359cbf9d846a5e0435b84157f48aacea27040e6cdeb919a", + "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6" : "0x623796f77fe6f9320c97d6b3d7bfc6f0b9cbe8b343156687eb0bf27af5997426", + "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae" : "0x6269e90c5928e99c2318cd22aebeaa81f5c4b79d3ae3779f260ab4506473bdfe", + "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a" : "0xf75681af3c1e6961d57a6d63afc922b683faa2619e707dfcf52c33949826c01c", + "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2" : "0xd2e6d67f78d852fe8a1e5c0423a76e544dad0b586ca145b08e4f0f62bfe30ceb", + "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f" : "0x17c1e9853d615692701277b93271ce1956cf91669c1e6a2b384ff89260471899", + "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d" : "0x80a46af7ced56369f0c3a297243259f6f98032b294863e9cc5d4459faef64703", + "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff" : "0x3aea9e92a9fea9a2735f289ee6e84adec95f7ee68e2dd6cf9be24ca8124ef900", + "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c" : "0x54368cd9e1b8f1b8d3915a47ff06f8d33574c9174d39cd2047ed7b1603bdc40f", + "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530" : "0x9eedadebf2213428ed18728a7d43154b508ba88e8f7c7529e365418ad1f86f39", + "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8" : "0xfc032fedb020961beffae7924dfa7b8d8792311d05b1f79fd18e47c5bf0167a4", + "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421" : "0x9aaad1b31d67baf0e63ea859d2c6b2a6ba7d4fc89078191f33b54470eeee368c", + "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204" : "0xf772438ecc2d833b5f95b5688a864c7aeab8001fce78ffeb099bfd23fe43f053", + "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea" : "0xab52a4a19e510e8b03ecaac798b776ff6b93057418fe8d54bd3424b0b25d3052", + "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e" : "0x5ad1ca7e025df052b44adbc9c98d5657ad5f5864050af8c4407f516a344d7f34", + "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722" : "0xc01c988c12bebe9b84496b876f6efe9e4ed420447d68cea06b5469180c447ecc", + "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87" : "0x5d4be7762db40868af9f566c1ad275558cbf0bfa8a186b843c362036ac0647f6", + "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed" : "0xcebb3ab7835c8074ebfd4727c91ce7d1cdaf86ffed1da9ab3c320a06cbdb339b", + "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2" : "0x08d17a4ba06ac9b12a2585ab2de390078d470621ae996a64c860162bc9bade5d", + "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc" : "0x608c822bda8d0935b037e4f079c470eda8fd13c9066ea19387824572a8e8325d", + "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14" : "0x11c2a8bdb9b83eac482f72fa486c8e239e04428cf983edc0b48a57baeb7d62b5", + "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964" : "0x9d303bb3c47454e94c8e22121135de47a8e8ed1dffff750c1fa3f8fb10282f71", + "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984" : "0x49bb1363cdc5df0477024191a47d1c40a0271764a38a70ff60195cd8db4b4407", + "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d" : "0x9955ad2b91e16cb949a809305ccf9c029f78c47f7b81cdefd5f3d31b7804aa4a", + "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8" : "0x951c1f820675ca522b652e087ca1b594fc9164d11d4f4608cf89817b89e1fea0", + "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c" : "0x95abc47c9f8ab3747f6a5c54709d075cf29ec75e105bdb0df3626b02f5580386", + "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b" : "0xaeabc4a6018e99b776884643c4b79272f33f0ed1bfd93e136a6f0a4d90eefa26", + "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc" : "0xbb2ef8d91680d631620528fe680c907ad7c25f9e525513e8c0d986ff785bbc61", + "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9" : "0xde9349978ba44b757d1199202bde18e916f08c3a008a95bc681ded060bb28bf8", + "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d" : "0x1c0cc83c6b651faf439763c2a21ca7552dbc80e76bf81c815953b875cf1704ce", + "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e" : "0x8a9ca7164af66ecb0b725b84e8e0e0eda6098867887e4d500ff5e292ff5c96b1", + "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161" : "0x7fd2baf0c85184a5a8df42d92440d97c784df22fe3c32fa573bea39c0f45d669", + "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d" : "0xcfd38a14116b4ec0b02c3e941125f474ef059fa76652b98198afa1bcdbbdde08", + "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b" : "0x9972b39aaec311e98e5c273087e6d04007f0a4b4ecbed21ba49310f39e5169ef", + "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e" : "0xf00de33e9d45bcd94b0764db8f2d30fb4e0a5e4e52b0e19055090ea1eebb1f47", + "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c" : "0x52b2a8378867e2169de3f3fca02443e22fb9b46839ffc5446c62dbd13b3aa4ab", + "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154" : "0xfca4f7001e1e24ac375b31f00deae4f0ddc7d04aa5422830414ba844a20e1513", + "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced" : "0xd01755c25d9f522257de674486fa12fe0f124c72552f7b49534942cd6b29bae8", + "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f" : "0x96e634bfb7725a1d72adc5fb093bc1ce9029206ca30f9cd28001da29bf14a924", + "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd" : "0x6cd20ec9d5c7306c08df7add2f367a6912bff418903caa5c62c30f71e9ea0fbe", + "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679" : "0xb5752f8b57810ed55dc86b3152bc14e6dfd8514038c1f4e73ef26fcc39f43a39", + "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538" : "0x7e2514c5f5d305756a19256495c588dbf2ac02b8779e7dcd5f32278b2fadf5e9", + "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3" : "0xea0e92e2d3ca995bef480150252c7483c37f4b7673cee2bfadff072202bf531d", + "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0" : "0xf6754c778cf567c88e1ff15d279d74bed0e37ad12ddd58294c29f4b4c1006f80", + "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593" : "0x9d9bac8c5eea68adfb10a4e9b4ef6c89d9471a3af15e497c51528f4a138ff825", + "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f" : "0xc89da84c7227561df4568772a9546267f0ef0e0c11a993a04427d0e71f3eb111", + "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f" : "0x307262d206af22c4aa32659589d706cc3b8e26c1695f28fb28f24f674c3382d8", + "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1" : "0x991272ee8dc41357af568c7bfe3194ed3b3c50fdae3849da757156443e0f2761", + "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4" : "0x729d2defe81e4fde41b5323caddd277e6c9fd9ae52ed0474026f9a0be6601cea", + "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075" : "0x1194fc9de0873a52f5b341938121862ea438e40e1a59cf7f567b50fd40320e31", + "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b" : "0x087fbb94714f80d73cf2f88ae6a0a9bddf89f3cd3be96c19bb6e0ed5e1d6f07e", + "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883" : "0x1b59382db57b3fbcc78677f9e6ddfaddc5bb8cd0a5c45b90d73ec513b5171a2f", + "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857" : "0x0d466e35956a017c3962cd9b247a6f53f0138693e99272b99f3e1e652ef8d4a8", + "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4" : "0x022d38a4f44074cb19370e1e9fc2efb8d0817ee32e8dd3d3e498e932c299ad7f", + "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4" : "0x29c32d2330df7444bbc7c7d955986114dcbe8894c90c1df1d00ce359f4a2223c", + "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937" : "0xf5a74f4af0c7766fa838c690ade5c12360cace938f7fd886c0a6c48b3bba3883", + "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266" : "0xb087a38644d78928e284d30e8ffc15edfee5b90601521532362a8548325ad8bb", + "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967" : "0x56ca515043afd03da69981ba0e948497e35790d0218c6703f16e4d44d6fd965b", + "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad" : "0xe9fa8ad34ba87bc824987bd97ec4d02bb7b25ca4995a9d862abdde85481a5ed5", + "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6" : "0x8811017ab514e51c453d26230da3af791cb7935b0a4a2a3b1ee62a5fccdf143a", + "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321" : "0xfff346a46192d09cb9484a5c685acb73965858c7709bf2bf5aa2cd4eec027e1f", + "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106" : "0x6094ef3d713fa773fc98d6eaab39c220cc47fb15cd84231eccffe10a222020ee", + "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b" : "0xcb5a5b8f0f69c2de868c13d47ab111b2994d1b0db7d51ba29dde665d666a2123", + "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9" : "0x77126ae9116d02ca390a8e7cd1547f499d79a6163f9200108861fbadb1160221", + "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d" : "0xf5ac66138f5df33b4e62308f22479389c8e9abb1ba6a620c241d5b54883bc432", + "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192" : "0xbb1d66d3e60608a03acf867d9baf5cf55a8634d0b3568e92fbbafc9c2bf61826", + "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183" : "0x30912b7ab216d965d2f27284f5ebd808b60357ab381bd6a589dc58a3e4aa32f1", + "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca" : "0xf569f573cb2aae2b424838f318b2e7d7399d4ce04e3246ff227677a87e753a2b", + "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e" : "0x8fd40fb9e4bb2d60ced887ca047604fa98b8cc119f85290b19a1bfd130ed1570", + "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832" : "0x07d262c9b8e6b0d10604d03a6badabd16c21e1758d118e43a52e9a861ec58137", + "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" : "0x370c155a2ff0a6b70c4876c519f4af410bb8984176c5331d4633a1774815bc14", + "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02" : "0x7974a6a5cea42767dc9315f78b96200ec4222c181b0b9923302a0bd5acba5f28", + "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29" : "0x02eb588f6b96a95b7b662caeafdba033d1788db2ae08fdff34170e78435490a9", + "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f" : "0x765a64c9f0f90dd79192469a4131b09890e1d1231dab226ae5844518129dd6ae", + "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256" : "0xd23a4f1731ae652d2f29616224824346115db23def854b3f689433d5d6b32056", + "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f" : "0x51d0842dcba32ff118644d5a7ea3e2c1ec2280d67634a0d7c146bd3b602d9ad0", + "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6" : "0xfb3d5f0b2fb5573b4eaff2492f01d6bf0df9aaba17b7cf5ac8e82314d3fa5223", + "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033" : "0x7fbc0b3e8e0fada50eb34102facde77ef9edfdc0ae000199a43d5abfb0e9f746", + "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de" : "0x9d9d250aedfd4f3aec2b1aa86dc073ecf9f5c6db0d6a6deaf2ea836eecdafb28", + "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" : "0xf0979b906f161364616266d032e89b61518cc69b9f58197fd5a1b141c3013c69", + "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd" : "0x45f62c74a1547a4f2bae029d1f3144141ac9c7c79bdf39d0d4dd54d13dbf3ded", + "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c" : "0xcce9d48f851245d7113e44a97f267bec51d9c5c91efa833683357328945b53bf", + "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b" : "0xbff266b2007e0f66844bd5889e8d0d90535475ec0a03377984e0987c76b966ad", + "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822" : "0x8a6da2744401ddf52da08fd24ba91ef9196be029800150bbf9348d57c4fff396", + "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318" : "0x22831f701204d6072fb2c910fc16c84a05fa7c282a5eac31635de9395a599552", + "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a" : "0x800a8ed22c7a1295d8ececde5d13b5cef0de3ee4fc2d39fea71d375fcef2bdb0", + "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606" : "0xfcfcb0c068c8c5e19e0d4de7172b2742788733c16b4f9f0f62d7f64b2f976c8a", + "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97" : "0x6eec6c2191a712b362ba814d820e1514f4d4c6281b0cb9f8eae700f37e76c862", + "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c" : "0x4ed7cc649bec904d31075fb1ee785bbd89d44ccfe5a6ddbb420b4e0f736e26c1", + "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d" : "0x8ac6da7958820fca5173cf60dafba89beb19983370c6e1a6cb2122fee0f63939", + "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62" : "0x8f45fb362e234cc77248cf1c4eb8c4cf113acbf0acfd052ab4046e5c42e153a1", + "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6" : "0xe733b5b7a1a44103098c07a2d1c8959fb7d4a5e79f536d4fb230116efd11734d", + "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206" : "0x828bd3a81feb16c85851ae0790e3054090c773d93f7f00e249478b112d6b01bb", + "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12" : "0x1852204304bd76f2ba43e525142a93d7b0aa863f49e1abc2d57d24f1f7ac64bd", + "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4" : "0x3205185c4f904a819a07a2de90c13a3ed5d8fa81464d08d1fd2bda748518747e", + "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b" : "0xdbcf8cf3b72555080edbd1743f201d31c3bb64fcf73053b031cda80791d8fd82", + "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c" : "0x9339c2b34f78e0417dda1c5e141c4a08100878e4ef56221708f37abbe944449d", + "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef" : "0xd38b35c780fc9c29d73ef1a4ed5123eba10f4cf70b8db100ef285b37d53cc1d3", + "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5" : "0xe347218a40dd14b6936d5ac2b15416ced36e1a54a8e0bee6e546658dcead4fc5", + "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808" : "0x997678b3f2f0a811d107f0f6a29c8aab2cff00b1155a8a3ba58ed960475eca3a", + "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a" : "0xaabcc31cf69cb64339d756b91b0eb00744d05e4642b12b3209470d156e6b8835", + "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281" : "0xfae43f6568e718885621f60e1ab23578769f0f761ea4fe2c8676b1e1d8f51b2b", + "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" : "0x5d2d6a0c0604d93daf6b684f0aa1aa20cbf211e3490d21ca07b43e5f9a95eb75", + "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9" : "0x3422d63305e707a0920420ca8b2e4339d3f004e7156350b522ca525599cb0583", + "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b" : "0x8883be162cd46285abbde1ad3d31a643334894455532ab2ea709d87ccf4c7703", + "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e" : "0x8ab07863ce5aabd114f1f42f6d544d95a7c2b091dd9871b05283b9f45ead057d", + "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359" : "0x5682c0d7debe687117e00f0ed5eafe2f84f49fc38bfecd7bcdcb0b9796eafd08", + "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165" : "0x61367c5ee86ab1b47467010c8aaef137621bf80bebf330843d7deb81e8b965ec", + "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2" : "0x82b876bb465125be257ffcb65fe3ebaf566e617e85c7d14f2f14d0487655ebd3", + "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb" : "0x1aa6c00bae8d6ece98cb3f68af3a29c81cee18387f07e8201538c4aa4f2bed69", + "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a" : "0x38ba3fe5bd2f1f47b96dd5745196849b790c84b6b1d298ff7f27deed7ab42b88", + "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" : "0x3366831452872fb8687f292942e306c95db7ba7af9c5a1b01e8366ee337d4cae", + "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb" : "0xa526a6486f877e95af9440d79c103e610c491ddc7aa76bd16dcf6b26f9bfcd20", + "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e" : "0x20448ca3b845fe901ae27778ae0106e818bb09e7914446536a74ea2f78ce20f1", + "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999" : "0xb8152cae7c97fcb1c701184b36064c2c1690077c5d6f309d7c4a19b3ac4c57b9", + "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec" : "0x7e033a29ebf20a02e0e8db942bf450b257567bb8a6aa4d8887c306874ee7552d", + "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f" : "0xad95927aadffb8c2e3a31ffdb1a6d5fc69811ed1d24d8a5c6a1ef4603b221796", + "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3" : "0xae7cbb85aa28c27055d134aae2a383c55c359f858415564a9734b3d07a410fc3", + "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7" : "0x626e681f099f10fb89856c3704aeb94e98da90f4ac1463961d027cf3fd8d3261", + "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded" : "0x7c68d4823fb1b968f73c5299af4ca93f6e73ec0f13365c3d832965e03c5a8f08", + "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073" : "0xb4474e62c6d8bcca08e5a3ccb4297bbe160b3904e36b1963f77e332a8250a77a", + "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c" : "0x299e8c71168d42108e6bb585f80cf2e7ff356b532b7eb0e84b0efe9930622bac", + "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8" : "0x52becfac8b5c8b2d6b74591e36104060122faa33f493addd1564449371543acb", + "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40" : "0xd389078390725e729d089861533486f18335951a49d70c4dc72db5487a7269d6", + "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941" : "0x5c04d38d622306b4d2aab35193044975cc417ce2b4fca8756ee891d9a93cbcec", + "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f" : "0xd58792a59c93c78776457ea223e27a288707c4b9e67fb2de27f12f17a9d95fcb", + "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28" : "0x79fe7927141b6522eaf79da82a3d1a855a6c9801e4abfbb10c666cd4a86a0e52", + "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c" : "0xb5917d77ac60f66a07506a9d9510de662d978ddfd980ffbfd01bfa49e2a76eec", + "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137" : "0xaef705b451ce4309d1fbf88cdd9cd08f83fdfbfe45c236d9cf59cdee15b5f784", + "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b" : "0x754d1c110baab9aa7905c742dd04cf40156fb4ee0813b786fbe8fbf253056e7e", + "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad" : "0x7d63bf0faf1c040bba674564b1d3601a06b3b6c720fcd526c41e747ee41ef7c5", + "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa" : "0x38b1074a64ebfb45ac65ecc972c67b8ffcd9a6c05627f26e990c383092edb199", + "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412" : "0xaeb8c436d5a644bfb10fe028a5bf257983a81585e7a3136e2bfef12383a102fb", + "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a" : "0x61f8c6738ee1b9b3aad12383c3a7441c667292766c0af6ecaa60fa070b893c57", + "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41" : "0x1a6bfe708d8f36bf48b342c29fc27f307b99cecdefbb6368ad7540b7178691c3", + "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590" : "0x2d99f9f925ecc6830e68b89e734d5fe53f1ae956b5df24da50b3705c545e7179", + "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d" : "0x66c962bdb290bee925ab48dff17921f1f10f9f49a3424f78836d442051de677b", + "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2" : "0x40bba2b3896b2d0811666d6b2610039deac970762e32ab2d1b35719dafd02c29", + "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a" : "0x2d1f2da2e6f873cc2cf5407a3a276537a6e0fd49c43864c0ec0c46b0a02ee7ba", + "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130" : "0x7a957e940d979bb4eb9ed71af8d46e0dfcb46587392c4c957d8e596ded792ad9", + "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a" : "0x17a0779affa9e0d6c638bce00093bf0132040da831f51bdfe28e97526c4d49aa", + "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3" : "0x02b2a8ef659b0865b773340d4f649786a48c33af688940fa1176f008fd5de365", + "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27" : "0xd78eb3e217808f503f71ba9c6ec99f5c34c99b352bd0649010a712fcdb105b1e", + "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb" : "0xc2c00924b47ce5a4c51b455dff49923c77b4d66eef4953b5b7abcabc1ed80a07", + "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776" : "0xeda1dfa63f4ba4e9dc9a2dcfa9756b07422015d1e2672c51ab72d1fc98a0e49c", + "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477" : "0x0542119253115a2d4ef95aeef2897cf040b035da7c0a8f9ff2547e283390e060", + "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96" : "0x25fc799f175f01f02ed388fa4c63669175fa3e13e474c10994e56dc20e61f5ce", + "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2" : "0xa20ea5187b6fcd052963f09c5137a2aaa95110ed944ea1e8a92497a5321b3164", + "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8" : "0x3695bfe5dbd94f7e4a9c19d2a77eeee320bdb9db99c130f9bce95584d8bcf9df", + "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97" : "0x7cbc5ae417360eddc8acea5a30532a9aeb43682b776a1490b309835b0b18057a", + "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c" : "0x8228575ff9d761fd6ffc100b0253d847c038a8afeb7d2758ccbda4bc47a10a37", + "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66" : "0x281b29079ae27ca919d542776ecfe8dfbe5b74dbdcad3cd3b8ccedba94377b3f", + "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431" : "0x333c671a287e2f96a7a15767f1f5adc7fec4f8fa04e724ede39cee05f5f3b7bd" +} \ No newline at end of file diff --git a/target_chains/sui/scripts/price_identifier_to_object_id.json b/target_chains/sui/scripts/price_identifier_to_object_id.json deleted file mode 100644 index 79ccdc3256..0000000000 --- a/target_chains/sui/scripts/price_identifier_to_object_id.json +++ /dev/null @@ -1,198 +0,0 @@ -{ - "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e": "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", - "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad": "0x813dab097dc9a913a37553dc21a51ec264c5b3018a9148530ee5d4131d9cd948", - "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1": "0x12cd27871301e7b10488d294b21fdca0e02208d60d966cc363137c432bce49dd", - "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b": "0x8f011dc003102d272bcfb9a1423ed9ab16bf8720102888dbdf3481dc2b81fe52", - "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0": "0xbff692a9a42736393001e997f0895203c81a0b0d7d100177150d3ca2404c2264", - "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5": "0x7b06c8e0204faba400a6b69c75b51fe84ef24c4251340f4b00eca37852ef9944", - "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63": "0xc9c0f5b0c331f02792cf47a6136fdea01772aa6e8bcd0acd7927b2cbf0c9500b", - "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86": "0x73198faa767ea791159fb8c64c71ff490793fbe1abec0af9d959653739b86242", - "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4": "0x7786857b0713ec6b060c873ba9ebf70cdbe8770453214aa7129e0965d3a8725d", - "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf": "0xd9b07adaceffb21296de31b46ef0f1db8825a83098d22af07f60205c6394bdd7", - "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717": "0x2b9e4beab792ea64bf6dea7d1d4455a6ff70744602a73388b3d03fc58cc0eca4", - "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88": "0xe6eb8bc3a9cdab5955a78ebf0dd3f5e4ed3458ab4491285345dd8a6d0aecd2af", - "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0": "0x29405b9f25ad9deb23357298732edb4383d3745ffd9a0373cf3028992d85cf99", - "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7": "0x94223482aa78b4dc59f670ca42c8c9a93b90b0c21721f6a9d679e3f5a50e4434", - "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0": "0x6f5059e755771ad838278b6407a769717b40629f4655bfe9c2afe781cce5d966", - "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c": "0x08eae5969d90a4f03e33582077407608f74df4ccc5273cae3236710f68dc348e", - "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32": "0xe883778d404e7c9eb7ff6fa190e8ddaa26a1b175c02cb00b1b72a4390e38c5f7", - "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627": "0x0ec8b3c28c4240c5acc6c7ff145310d6d2129e6b718189be9c36828d75cf136e", - "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e": "0x72f36e3b229031b91718b533cde17bf48a3222f4821486f47801671f8d584308", - "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879": "0x35f9fa1bc253e91cfb42396800a37886b7d5fda5e015a9a5d7eea24b4a516421", - "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e": "0xc6e1c6307fa87aa0f3c8e33ce786c6a80ca4aa6de74b8e1a62d9e65ad1047aac", - "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812": "0x75b7db1ba4946126fa9193d4d00216cd1a52a17087c35feda74905bd0386c076", - "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1": "0x1666ee917cb925fd3d78da42bfb14c8aa2f51ba1fdfe7a424220fa709133426a", - "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e": "0x7ceb15c8e72d0b917103e43a695e94e40dc653bccbc0806bb71d3ea6539884da", - "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5": "0x663c14c977c46b85b5ea3f1a97ebc5b93d8cf6cf2c94d01dbcfaef0d0ef9efdf", - "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1": "0x8e812924daaf7dc02188976e71d20d86baaf90129d1c1f4470b7e79084fed804", - "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a": "0x54499295661a8cfb2c4da4184e330ab5948c4ec7522cad5f96e923b97bc91e61", - "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623": "0x3c90b83f0acb025336debeb37d6014cdc788d9bece7828eb1412ebe44a01d31f", - "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d": "0x0ffe43da21a5d957c833d778b0f527b82980f1b210cafa592054f0a026b658b4", - "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd": "0xb9792f919aebd4ce7eb2a4c4b400dc40c2260f81b516e62cd3bb16a2f1cdaec3", - "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293": "0x784f3db957f968930f9ac749c9b61ef614716964d93e689a482e15c665cf210e", - "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a": "0x847b4e30707fbaedbe1ebf261a9c08299b53389def13b6268f0aaed06118b711", - "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58": "0x243536ac6942683448eb0f0013540ee72a6d31dd4f6efebb44a0918de2234a67", - "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f": "0x421f3e1cc42aa5cfd4dc87de41c16bde36a9dffb3392bf61c70d6b3f0ba73a99", - "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483": "0xf6bcaef2cb75a98bf2c16af8e0b0a36127f865be99a456ebbbbcfc2d54632fc2", - "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6": "0x2ef5a5df964ff7cecceb968fbe84e8e12e6048518ab3c24e9343b46f6d1dd011", - "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271": "0xc38286eec0a9bdc4f7f8ebff7070bf4441ddb06af48cca506cd5477f72a1ec56", - "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5": "0x8190db687f806ebb5a85e19789a969680e0fd8380724c4f51353ed0fd57d0a35", - "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a": "0x3192a035740b7d8a9a2f34e87983f43052bda1a8df4f257dba38d0d021b5afe5", - "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688": "0x7c9f660c492c80357be785fb2b2eeb37147343740244975bc9622311281c945c", - "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1": "0x6535ece8ec0e0a6a6f1baf5b80f64bd8d5c18fa2f40b5023e495ad02a9564a49", - "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef": "0xe6638d450412b1934890a43d48606d91ad5c945a25ace66f211ccc9f606cf405", - "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c": "0x25325258fd0fb6965aedf380cde6636109d6e3b6c2faa47ec91d2f976bbae702", - "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8": "0x537d0fd5f9576506fce8c81f976a5e7dd183ef875585e78cde420baa9c2dc0cf", - "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8": "0x342f11fa43dbe19d0d5097f28526f4c40a7c9e84097a59d66bb619bff59d971b", - "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9": "0x300a7f0a24b012be8b90b21761624f1da3109b33bf47d8b0e34816b824ce2472", - "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9": "0x88f936c9b272a119b80045783f70f119b5d7214242c2ffa1dab67c1d2645043c", - "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b": "0x3aa76ccda83a8025ad9d12ae64b8efff22fbefa2edee12ddb6a8ee62c15db628", - "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c": "0x1e81c65a2bb74c8870cbf7620003dc978623b83da4f8ad0615d02a4c8ee9be71", - "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628": "0x6728f81af4b438713f0a6bafac0a9c5b19559fcb8c9c3da9107a5c5715c77150", - "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e": "0x4f8d4f109c805cf57b95add8534e96c2652cf80fc9d6b390797367361c6f9f87", - "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933": "0x393e4f0af86f2b7c4f6cf87053a90fce28be9507462183c08112ab680f5b222b", - "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554": "0x5e5f1fa6a90893daf6400a009781b4e146a9714c9e432719d3dd970d58782dbc", - "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca": "0x25a108e8fabff628d547ade6e7fb5ffba5e3fc4a86d5563c7c9c3f7f89c2838d", - "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7": "0x969a55ba2749858a67b5ac3740218859ff91958711a4726e4729b6358c592541", - "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415": "0x3d4f0ed8ede749b0b7969a845a78a3e04052c5bd67632f9ca3e6b8c95e0471e0", - "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd": "0xa2621adcdd0a0eb0856a4bbc95a7a29ac2576915025f1ffff42a0387c659bd0f", - "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485": "0x7e427b11a67228418d02657537dbbe12e653fb6e25c0553e6cccfd93e09b62f9", - "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2": "0x6bc83acae136c07fb371388c5701aab8c4093719964434c48fcbb24fcd242302", - "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445": "0x6da106d1876e1ae75110398ba4b4170b8617fdfd7f765682fc2556cfd8fad477", - "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc": "0xdc8c7a10228f753c4a806f00e624f6d5111bcb01fa1a25e49deb8eab5ef3b959", - "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a": "0x41810c3ebd3ff83df1d52fce4ae30ae393defeada8c35334f658b552e702a808", - "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0": "0xa59919df888ea0a69aeeb865145ee208e0b5e96e744276097dc5d370ce12c937", - "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c": "0x094c553dcaefa8daccac6512a27b6bd518962acac070c4a90fd4cbcc7d93cd2d", - "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501": "0x7cc9590c0632c06b336a729fb338855fa50a4c1f56f6bf19792607545ebfce75", - "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32": "0x0beeaa7af57e04218e931c260a19f7cd5d73728ca9b992e7eaadda5a92352a6c", - "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2": "0x5be5a532a4234472bd42f648c860cc6ce505f4abba1d1ff280c307edaa91c6e5", - "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9": "0x970d1a400036ee4ed970edc5fc28c1e1a063fd70abaa5635609f84fda603477c", - "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386": "0xb9b0291e4443cf2919528d4f190963f59f73b2fa60d042ab6d3525ea747e012e", - "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b": "0x84acdb9701e59d7fe938dafaf9d84161838cb862e84f307124a1b1e81e6b77d1", - "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab": "0x9be7c21f6f7d2b6271fe5dfa45f71c067b0a680aa1ca46ff436afba19336059f", - "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace": "0x4e959b3d766a38dd63a3dccadda27ee46608b13a0a17d66ba50f6c6b43794492", - "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d": "0xfdbf22be9ca4e8be48886404f4eda806287824318d22fbd8bbea6a06ff21a749", - "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411": "0x82f7cc493ac5c0c0e32c5797cb61372a985439b996ae320926df3eaf982255f9", - "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449": "0x06e3b2601f985409297e81f89b64df8a22e4bda271630322b723c799b3ca558f", - "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b": "0x60cf8eb3bb66b9f1ee5ad5971ce24f85750ed6d65357278cdd24508018c0fb77", - "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819": "0x2819077ee5dc736f75d74505f2686240d84618948ec7c94ac67139c8335c3dfa", - "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca": "0x0948ff7e93869e56cfa994a8611af061dab31d429017b64cbdbdec687807a4bd", - "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4": "0x59432d2fe5002ddeb6d4b245cfdc6ee8a0b441ff2fb5a9d154f12ef526f40d86", - "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5": "0xc7dd91bb190bb6b918bcbc1671b8820088e5aab9502236f55ed204aae8d437c7", - "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4": "0x97e8f6a69d1e3bd5a9aea5cbc12ebaf74a2268c21220306c5a4fcce978c3134e", - "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1": "0xf8a94a60b67fc29212788ff0d125bd00a78873ce64a5f166989fa0a8a6051880", - "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549": "0xfc6f0ecf57581be16f246383c1b0d39d27d47fd96097b77dd3d9a052f7efd9e5", - "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d": "0x2121ae366fc6daf8a79c5420153e16a31b4c6a485666c11ef4ab20dcedfc1904", - "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e": "0xb6dfe8dd1f13f5db49e93909e8151cda0b3eb873950522e2c6dd9409057eea03", - "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec": "0x397baeff4f1ad933330bff0101898d7dd376d33467bfee1fe4c8a13b6930c669", - "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90": "0x6a2caf39dec7db0ca51e6cf1462756efc7b3637490920c3d111cd3d7da46a6e9", - "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c": "0x5e0b5d2f55fe8ea36709508a4741219a009e32273daa8c43278a89b4c67112e4", - "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a": "0xe2f01b5ad1edec664d3d646a708b26f85adde915999d56b2f15c0076a140cbd1", - "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8": "0x8274e4be99bf8117209b4cdcc963fc397b868f360d20ecf15233591a84da752c", - "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc": "0x0e8d64923791a322a31ccc8a8c7e1da47622c776414cc2a57c73795dcdad7b88", - "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042": "0x3f0a05354694d442310e2acba79deb48621a7ca32c170d5bc068fd85dbec760e", - "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74": "0x3a552d9bcc7dbb8f9bb088f9fc81163a27aae54b79de7192a2ee88803a2c4598", - "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918": "0x262feca09bba056ee9b05c8d0e438c11862533bdabd42f8e79e37a03e994031e", - "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad": "0x35988ff2b50960965250ccfc4a1be70ffa1a327e0cacfb7618db155d5a93d95f", - "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305": "0xf21863beeed8d8213ad163a37547ca404879875838cefd773f45966140e03536", - "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13": "0x94538413241766c917b5837bc66a2f07201f9df610e985bc70f6f1a65bc8b824", - "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31": "0xe477c82786dd5186a36ada1d0092522bc04422a133bee0882cbffebee74bdfaf", - "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04": "0x83e3bcf94d15dd8246f343a0c3a25b531da1882a237e65d0e3afa8ccc29c2b53", - "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb": "0xa6f4d72ebb3d8d3b847f560c0e1b9b53be59c61cb17905efcb78d9e59097eb61", - "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5": "0x2a2acf181c73055bfbce46e0bd01ffbb73b4481fee51d1442dd0fcfca7011ee1", - "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd": "0x415149af9fd9d712a5c543d203f5e7a4647232c93291b51cc77dda27591acdf3", - "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe": "0x3d537759f6eb0f5d8a0894ab553553e70c7526f15c026641ab457d6e600dd488", - "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0": "0xf8bb072d7779c1f9eab2b5de52a0c7db7603cfc9076151bb5a2ba1ca2ed385b0", - "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a": "0xede216a9f98d06bf4ebab1a696ae992590605bf9bbaf05f742b96ab5d6ba0426", - "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f": "0xdc7f9dbd88b507e36df3737e44106b8594b75eb4324412e960d113f5f61e2f55", - "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f": "0xb148065aef7a6902b5a56404db8dc728253cc3562d6a0c274de4d4db91746cd7", - "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7": "0xd3261ba9e558eda4056861879ede295549b416c75f3b756ca59145552b43ed03", - "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43": "0xa6241689d50ea973e4e0efa11e64f05d85255e18610bd094c6ee95efc2f670b7", - "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9": "0xc9552aff3ed695958e7279ac930e5f4062fb3d9e0831c5fdcf1564019d2581b2", - "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b": "0x1df777cf70c4741367735002de6dbbed06346194749d9825b8578587a139f964", - "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1": "0x57bd3abe704df070c95bd142463c919f7eb8aab851f56a437429d40a2bcc5c04", - "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc": "0x44b2efb1ffc530ee28b53ad75aba15d03beeac3d3ac00ab456a95e72b6e46e28", - "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1": "0xfaa34d98d5776b63a0aa707cac04e3906a769c7b9822181e5831c3fdbe3852bc", - "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc": "0xec8b5dc385c72e1925585a8809df24b1797663b362d7ee698e94c244d95c4502", - "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a": "0xdd9518d23f6500d095760fe27b6be884cb729141828840501c745fbbb4077ac1", - "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7": "0x2ad5bca64988a60eb6c015984d86f896d7780f89ba4e17d239a8d18dd0ff3c62", - "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225": "0xb1ce5c0bc015130411f74c52c69b17b34778beda878cf35582f4db10e1b37798", - "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7": "0xf159bc6a781614afd84e7452a57afcea4b02c2a1d89e2af4b345d5704648274f", - "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7": "0x17d6e86db99e31eec29b25faf06888bbb0cc5f5bad64d462c36c095384236eb8", - "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46": "0x1f81a0a54c5acf8c6849d3555566ae3bcc078fac98ac44d95a248579e00254a6", - "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a": "0x0c51789af2ef3a02c1a8dd4a5e90898ae4ab495909a0dec337d2adbf641f9e14", - "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676": "0xc1ee9666521d2494288b3a4264e7428c4be31fbfd0412b7d3e480fa66cb7868e", - "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f": "0x1e56055aa5510e42a522ac0d45baadeec54cb1ab4f80ed05fbcb01d6a63fe709", - "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a": "0x6c9fce723d522ec708cd4ff6d363277b03fe48fafee79e2b53ce7dfd95838f72", - "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79": "0x1d8e49343d812229fba1f2e7f04a6162224a566681d781c71b792fdc1b08947c", - "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983": "0xce84576e03736d879f77af0652b62185234af2ccc4e2e21e276813fa0ca47dbd", - "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507": "0x30a78a430a10cae0d78913036d460eef5c6085c46f8ecf1ad7ba8dee76a12527", - "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c": "0xf261698164fef1649da47f846c6677648f524bc880b257fc771dd65ac540487d", - "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779": "0xedbc661a883e5f47ea5fa4bf5a06374fb60827e5e0e2ac413a96187e3f39a1e3", - "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30": "0x65dfab50959d4f7a0e4bec441a6e0422d4dfcd0e23921c0069e35cc59cad38aa", - "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5": "0x511286c4c9ce19b57a4ec47efd46f4a336175d36659a5b2741e611205b184853", - "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc": "0x6ed3ddec8444bee9863077d70a0e8ca506242de914f1b3b581c88aecfa67bae3", - "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d": "0x7e1303e5cfb944c6b0d95e5f9fab038b305c8d80054394e24d8bf64b34b8553a", - "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578": "0x57f5289b1bb4008c2090b3e7401e8abdfdfb1bc5b6a4d649752bd537ddc04722", - "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179": "0x2eb3509bf33b5e29124d61b4affc78b271c5b13aa60d4be9ec1d659ff41eaaff", - "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d": "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c", - "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6": "0x97faf2540a0b1ddff6e7f25bbfc7067eecad0334524a70e1caffdc519e2098d3", - "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c": "0x9e743ce40f1f5cad26d7b9a83dd1b7750d9637f13edcfa95ec45ffaaac81cf4d", - "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814": "0x794047e361d3837b84a3941bb8fee704e083433404e68e20e6d54dbb5673cad5", - "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419": "0xec956a3c13b3db5c34acc7a19b2d655886c25483254065c7f770ebe64c71b3a2", - "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae": "0x6928f835a904ad05c54fc1eb9d1269d5396e62eac58cf53f7967dfe54c2e8ced", - "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009": "0xf680a00084f0e61980327af92d5bd5f5eead25d5ad392c18669fe9db72ab1de8", - "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1": "0x7b86aa064d0d8c77685fe76955f83ecc2c63d06bbdf5ee21273e6866243653f9", - "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535": "0x2746e22f8f134808ba8332294d5687b975c8dbabca51f5e773483a8b5c006de9", - "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe": "0xd698c1ab8cecb252cd6c05371b19885d7f3937ababd26250745bb1d9fa6ee019", - "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81": "0x70e632d62a24202debf5e4099010c5c360b26f8ce9bcfbd49d52789a3c45a9c5", - "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6": "0xb5469f185e5a69f8591b4cc9d326eae8fddb86df381408d8ea428ad1001231b3", - "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240": "0x6acb3837b8b069d5af140c6ec99358c862d9af443aa87ca8dbdecdc4963dc83e", - "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3": "0x43c1205fc3af779d6b9719327d60bc4cf61a2509264defcd7cbc104e731cf461", - "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90": "0x104ef1548854fd68403152a4661360a484e116c8926d5435325684339e7a4792", - "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652": "0x81879f4a1e9a6115d6a8f1cb02a13cd6bf9e2713ccd4518c39290ab0aab855bf", - "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353": "0x4e960abf91b2868b8f7003d4c788f2971f17fdd673c552d8c6c7abdbcf1264f3", - "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864": "0x3b2e581f72613f5ca5845ecd97fa54133c4ef2edb41d4cee048050ae61352891", - "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6": "0xf7aa8fb0db1de5d2e102c3bac7c4b664c7c4f190100681e826d93784c76126f5", - "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb": "0x838e80e58c62e04a7420ff13e450b65df38095aa51471975742b89a6c23e2e0a", - "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad": "0xe42b1d1c8ee5efd399068416bf77f3f194e29a94406acc88a90dd8029bb706aa", - "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17": "0xf5a4f393712a9dc7164f0decbf90af2594a4a7199ea0d380c8e4f265ca7ddd59", - "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794": "0xc15d506b720e9e47f1ab76510eb0d8d93f1a8331a0edb71d30fe2a862693e607", - "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5": "0x858a716e3b2e9e71be3120de427ebf5ec1b461721645c245f948274f13f87c33", - "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3": "0x3736ba57e9fa1f82ba9dcdb63142c2871ab6664ec6d2bae0e185feb698b16211", - "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f": "0xe3e1904ab43bab2a002c7cbfe2a25087211a92f163eb4f8f5ea89905fc0232e2", - "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76": "0x300a46a6b7c9574270a6a261b1fe09765b1d186991b5a7f054b2fb6b89980310", - "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b": "0xa9f457c3e8f90ce4147a5368ac7d1bad29fc3e7a7b566e9da8caea80e70f9015", - "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b": "0xf23a24daea2a46388337064f8e466bdc9b848414b246769da8dc756cd19ed352", - "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86": "0xda049b4223747412a535f4b007166fbf1b6d7de42f9f49ddf8453d5312a3e66b", - "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400": "0xc840d2761d833abbc469ae1140d1eb5827d2cd2d1bf70520fa1281debdf99926", - "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe": "0x2d7aa5836ae880f2bd9b1b14d18abef42b5cc8116b332c368457555899fdf184", - "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b": "0xcc7b6d3a8fc8b32878e333578ab57e96a7ef8ec4498bcc6e839c362924ea52d3", - "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6": "0xd79ce52a240701df5add9d5f325ab0222271e8ff70e36150426546470bdfd3bc", - "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d": "0x0950d9b3f34603308ac7583d791fff9e2b9627dbbf9490f5dd7dd67410a6093f", - "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44": "0x7438e09365085c82eabdf045069e749fb95b4e7d39c1ac56fa74c1f5e62500c4", - "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66": "0x21a473555224392259558994ae30f93250f305fa14569e452539df785576b629", - "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785": "0x70c306983d152a50905f7561c77ee48938deeb794beaef341bb294c2bb5aa996", - "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e": "0x09ecce08348f4ae9b6f3ac6fac862e441ed9876e33212694c0a4d6639a797c3f", - "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744": "0x5854ab7960bb36c34701a6509fd85eed4b505cf15fc68a2e6c297361c0847d50", - "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff": "0x359325eddf76b5a758697c7be661653a0cec39c51214da8e5a7155b6877753fe", - "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592": "0xfb993017bb92a8e2868d6d52b486aea8013dcd9bca8fd557306ee48bdfacbecb", - "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3": "0x1d0afcbaf07da5e4eb570df8b551b24ecfc889c54036de1f31a27bd15a9268d1", - "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80": "0x51ca0aacdd00a18ce65eb4614b17c7a50b05861841dcb6b652936463527f38dd", - "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710": "0x374088f90087c668259444d8b4118937cc5b296f2b9f3b9a2435c019fca6c4de", - "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2": "0x7a410b6e800f2e2a15b5027b90e855b8cd0954fbb22dd245c4a884a6603f3e55", - "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae": "0x0d0f6fdadb7b2dcd0b4130e44d20195c4b13caeaa1f65c38249c330b4c1307d2", - "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8": "0x00330abb569ac93d08b902bbd9e4c69041511417d3c88450b7291f99422c1587", - "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52": "0xf2a08b0909acde30ef72a7291cda5314b76e544136d83ceb0339fa2c1221aed5", - "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd": "0x1c15c9326be25b19496c25ee66545bfd8151c573a49c6a9075d0a5a98e4f7981", - "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a": "0x540988b6594c264ac5fced6a9021e98b3a3c6764e6f9d1112536c6d2445dbc63", - "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6": "0xa351d146407bd613cb443031d474c0639f3a328af429866b38d094caa21a44a0", - "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481": "0x2fc81e546084af17b8d99788f4d05254499de49fa2065d79950f19355e23c781", - "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d": "0xc2d8c65d82ab5413d81ef44e28833be0dd286376ea47e02b26400a67f34c579e", - "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25": "0x0624b35d4b654877cf5331f3865b28a8e872efbe40cd877a5470a1e4509107cc", - "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b": "0xc4209783660db421a861200b7164aacd682ca5bc2a53dcd40c9235b78245a0c0", - "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0": "0xa8539d032e6aba8837568af71ddfe4494139ba37e2ccba5df3a6cb0b5d157c60", - "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c": "0xcd40ec7af217643b816992906439d9c638e4b97203bebc5a4ceb5eed92f5f82f", - "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245": "0x8c1fd6c6d4e328f4ac2d47d67bde6223d9ba3b1ab9d2d2d819462bb8a39d9079", - "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283": "0x16f6f47720607a364c0df4718d78810d5ed8ec5ecac4c18380d6acef614a08e9" -} diff --git a/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts similarity index 61% rename from target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts rename to target_chains/sui/scripts/pyth/create_all_price_feeds.ts index eaa142c1f6..c53b642060 100644 --- a/target_chains/sui/scripts/pyth/pyth_create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts @@ -2,7 +2,7 @@ import dotenv from "dotenv"; import axios from "axios"; import { PriceServiceConnection } from "@pythnetwork/price-service-client"; - +import * as _ from "lodash"; import { RawSigner, SUI_CLOCK_OBJECT_ID, @@ -17,26 +17,25 @@ dotenv.config({ path: "~/.env" }); import { REGISTRY, NETWORK } from "../registry"; // Network dependent settings. -let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network -const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network - -const registry = REGISTRY[network]; -const provider = new JsonRpcProvider( - new Connection({ fullnode: registry["RPC_URL"] }) -); - +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network +const price_feed_id_url = "https://xc-testnet.pyth.network/api/price_feed_ids"; // <= NOTE: Update this when changing network const connection = new PriceServiceConnection( - "https://xc-mainnet.pyth.network", + "https://xc-testnet.pyth.network", // <= NOTE: Update this when changing network { priceFeedRequestConfig: { binary: true, }, } ); +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); async function main() { if (walletPrivateKey === undefined) { - throw new Error("SUI_MAINNET unset in environment"); + throw new Error("Wallet key unset in environment"); } const wallet = new RawSigner( Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), @@ -45,31 +44,17 @@ async function main() { console.log("wallet address: ", wallet.getAddress()); // Fetch all price IDs - let { data } = await axios.get( - "https://xc-mainnet.pyth.network/api/price_feed_ids" - ); + let { data } = await axios.get(price_feed_id_url); const price_feed_ids = data; console.log("num price feed ids: ", price_feed_ids.length); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(0, 20)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 21)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(20, 40)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(40, 60)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(60, 80)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(80, 100)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(100, 120)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(120, 140)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(140, 160)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(160, 180)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(180, 200)); - //const priceFeedVAAs = await connection.getLatestVaas(price_feed_ids.slice(200, 220)); - const priceFeedVAAs = await connection.getLatestVaas( - price_feed_ids.slice(220, 240) - ); - - console.log("price feed VAAs len: ", priceFeedVAAs.length); - - create_price_feeds(wallet, registry, priceFeedVAAs); + // Create price feeds 20 at a time + for (let chunk of _.chunk(price_feed_ids, 20)){ + //@ts-ignore + const priceFeedVAAs = await connection.getLatestVaas(chunk); + console.log("price feed VAAs len: ", priceFeedVAAs.length); + await create_price_feeds(wallet, registry, priceFeedVAAs); + } } main(); @@ -113,7 +98,7 @@ async function create_price_feeds( ], }); - tx.setGasBudget(1000000000); + tx.setGasBudget(2000000000); let result = await signer.signAndExecuteTransactionBlock({ transactionBlock: tx, diff --git a/target_chains/sui/scripts/pyth/pyth_create_price_feed.ts b/target_chains/sui/scripts/pyth/create_price_feed.ts similarity index 100% rename from target_chains/sui/scripts/pyth/pyth_create_price_feed.ts rename to target_chains/sui/scripts/pyth/create_price_feed.ts diff --git a/target_chains/sui/scripts/pyth/pyth_deploy.ts b/target_chains/sui/scripts/pyth/deploy.ts similarity index 90% rename from target_chains/sui/scripts/pyth/pyth_deploy.ts rename to target_chains/sui/scripts/pyth/deploy.ts index 6570f2c816..b7ed6e10d0 100644 --- a/target_chains/sui/scripts/pyth/pyth_deploy.ts +++ b/target_chains/sui/scripts/pyth/deploy.ts @@ -18,8 +18,8 @@ import { REGISTRY, NETWORK } from "../registry"; dotenv.config({ path: "~/.env" }); // Network dependent settings. -let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network -const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network const registry = REGISTRY[network]; const provider = new JsonRpcProvider( @@ -28,13 +28,13 @@ const provider = new JsonRpcProvider( async function main() { if (walletPrivateKey === undefined) { - throw new Error("SUI_MAINNET unset in environment"); + throw new Error("Wallet unset in environment"); } const wallet = new RawSigner( Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), provider ); - await publishPackage(wallet, "../../contracts"); + await publishPackage(wallet, "../contracts"); } main(); diff --git a/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts similarity index 67% rename from target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts rename to target_chains/sui/scripts/pyth/get_price_info_object_ids.ts index e890041430..6cae378026 100644 --- a/target_chains/sui/scripts/pyth/pyth_get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts @@ -1,13 +1,13 @@ -import { Connection, JsonRpcProvider, JsonRpcClient } from "@mysten/sui.js"; +import { Connection, JsonRpcProvider } from "@mysten/sui.js"; const provider = new JsonRpcProvider( - new Connection({ fullnode: "https://fullnode.mainnet.sui.io:443" }) + new Connection({ fullnode: "https://fullnode.testnet.sui.io:443" }) // <= NOTE: Update this when changing network ); +const objectId = +"0xb2989cd62ec2c2d031f3fbb7cefc0784e0325e73edd5c252019e931ec98bf065"; // <= NOTE: Update this when changing network async function main() { // Table of Sui Pyth PriceIdentifier => Price Info Object IDs - const objectId = - "0xc4a7182984a662b159a18a8754dbc15e11048b42494b2c4ddcf1ec3bcc7004fe"; let nextCursor; let hasNextPage = false; @@ -26,10 +26,9 @@ async function main() { ); //@ts-ignore - let key_value_pairs = promises.map((x) => [ - Buffer.from(x.data.content.fields.name.fields.bytes).toString("hex"), - x.data.content.fields.value, - ]); + let get_key = x => Buffer.from(x.data.content.fields.name.fields.bytes).toString("hex") + let get_value = x => x.data.content.fields.value + let key_value_pairs = promises.map((x) => [get_key(x), get_value(x)]); console.log("key value pairs: ", key_value_pairs); for (let x of key_value_pairs) { console.log("entry in key value pairs: ", x); diff --git a/target_chains/sui/scripts/pyth/get_vaas.ts b/target_chains/sui/scripts/pyth/get_vaas.ts new file mode 100644 index 0000000000..3d566de4c5 --- /dev/null +++ b/target_chains/sui/scripts/pyth/get_vaas.ts @@ -0,0 +1,28 @@ +/// Fetch price feed VAAs of interest from the Pyth +/// price feed service. +import { PriceServiceConnection } from "@pythnetwork/price-service-client"; +import axios from "axios"; + +async function main() { + const connection = new PriceServiceConnection( + "https://xc-testnet.pyth.network", + { + priceFeedRequestConfig: { + binary: true, + }, + } + ); + + // Fetch all price IDs + //let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") + //console.log("number of all price feed ids: ", data.length) + + let data = [ + "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", // testnet + ]; + const priceFeedVAAs = await connection.getLatestVaas(data); + //console.log("number of VAAs: ", priceFeedVAAs.length) + console.log(priceFeedVAAs); +} + +main(); diff --git a/target_chains/sui/scripts/pyth/pyth_init_state.ts b/target_chains/sui/scripts/pyth/init_state.ts similarity index 84% rename from target_chains/sui/scripts/pyth/pyth_init_state.ts rename to target_chains/sui/scripts/pyth/init_state.ts index d3e72e3bd2..68c6b42e5e 100644 --- a/target_chains/sui/scripts/pyth/pyth_init_state.ts +++ b/target_chains/sui/scripts/pyth/init_state.ts @@ -12,18 +12,18 @@ import { REGISTRY, NETWORK, INITIAL_DATA_SOURCES } from "../registry"; dotenv.config({ path: "~/.env" }); // Network dependent settings. -let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network -let walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network +let walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network const registry = REGISTRY[network]; -const initial_data_sources = INITIAL_DATA_SOURCES[network]; +const initial_data_sources = INITIAL_DATA_SOURCES[network]; //TODO - SET THIS CORRECTLY const provider = new JsonRpcProvider( new Connection({ fullnode: registry["RPC_URL"] }) ); async function main() { if (walletPrivateKey === undefined) { - throw new Error("SUI_MAINNET unset in environment"); + throw new Error("Wallet key unset in environment"); } const wallet = new RawSigner( @@ -35,9 +35,9 @@ async function main() { // NOTE: Set these before calling init_pyth const upgradeCap = - "0x92d51150b762fd694877b23ecaba79a3fc1032bc24914d145a393b62e1e61894"; + "0xa8ec5206fe1306433bfa7925d97f9eba8394442cd08888d965341185119656b8"; const deployerCap = - "0x645ba70c9087d54a3e5e6abed0d506516dddb71d987b0ee503593de2677caefe"; + "0x4d294a17405992e04e220991bdb6768b7f261f188e711a962cd2a8d45fee2a8d"; init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap); } @@ -88,7 +88,7 @@ async function init_pyth( ], }); - tx.setGasBudget(1_000_000_000n); + tx.setGasBudget(2_000_000_000n); let result = await signer.signAndExecuteTransactionBlock({ transactionBlock: tx, diff --git a/target_chains/sui/scripts/pyth/pyth_get_vaas.ts b/target_chains/sui/scripts/pyth/pyth_get_vaas.ts deleted file mode 100644 index 87dd0b0b2b..0000000000 --- a/target_chains/sui/scripts/pyth/pyth_get_vaas.ts +++ /dev/null @@ -1,36 +0,0 @@ -/// Fetch price feed VAAs of interest from the Pyth -/// price feed service. -import { PriceServiceConnection } from "@pythnetwork/price-service-client"; -import axios from "axios"; - -async function main() { - const connection = new PriceServiceConnection( - "https://xc-mainnet.pyth.network", - { - priceFeedRequestConfig: { - binary: true, - }, - } - ); - - // Fetch all price IDs - //let {data} = await axios.get("https://xc-mainnet.pyth.network/api/price_feed_ids") - //console.log("number of all price feed ids: ", data.length) - - let data = [ - "0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d", - ]; // BTC/USD - const priceFeedVAAs = await connection.getLatestVaas(data); - //console.log("number of VAAs: ", priceFeedVAAs.length) - console.log(priceFeedVAAs); -} - -main(); - -// Step 1: batch price attestation VAA -const vaa = - "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM="; - -// Step 2: sui shared object id -const object_id = - "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c"; diff --git a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts b/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts deleted file mode 100644 index 4d9f52e99f..0000000000 --- a/target_chains/sui/scripts/pyth/pyth_update_price_feeds.ts +++ /dev/null @@ -1,138 +0,0 @@ -/// We build a programmable transaction to look up a PriceInfoObject ID -/// from a price feed ID, update the price feed, and finally fetch -/// the updated price. -/// -/// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet -import dotenv from "dotenv"; -import { PriceServiceConnection } from "@pythnetwork/price-service-client"; - -import { - RawSigner, - SUI_CLOCK_OBJECT_ID, - TransactionBlock, - JsonRpcProvider, - Ed25519Keypair, - Connection, -} from "@optke3/sui.js"; - -dotenv.config({ path: "~/.env" }); - -import { REGISTRY, NETWORK } from "../registry"; - -// Network dependent settings. -let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network -const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network - -const registry = REGISTRY[network]; -const provider = new JsonRpcProvider( - new Connection({ fullnode: registry["RPC_URL"] }) -); - -const connection = new PriceServiceConnection( - "https://xc-mainnet.pyth.network", - { - priceFeedRequestConfig: { - binary: true, - }, - } -); - -// -// NOTE: this function is a WIP -// -async function main() { - if (walletPrivateKey === undefined) { - throw new Error("SUI_TESTNET unset in environment"); - } - const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - network == "MAINNET" - ? Buffer.from(walletPrivateKey, "hex") - : Buffer.from(walletPrivateKey, "base64").subarray(1) - ), - provider - ); - console.log(wallet.getAddress()); - - // update a single price feed - const price_feed_id = - "0x2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d"; - const vaa = - "AQAAAAMNAEjf1IzfqjelDP7NzxoxOdHqvKTkEZ4XIJa65e2c4LfjTs3droVWPNLQnhBoMQuzvc5NfsGRpGrf8M61aIatZuoAAiHjpPRWQKGxFlepXwu+KRnWce59I4xAwpGwyVFL7Y04WxBLmSk5GADLFPWep50he+8K7shtUPWgZvyNLsuSAuQAA7REYLohBhkMAWbd1Eo/tretS5klKVCYrr9d7XIj1/PKcPPNuFmuSjwq3gqje0h+G5xt2093Zucdnsbg/H4Rds0ABMSu6pZpijJAug1l636niiKQWYPFX2PzNLlEYrk2ZTsKGsoaCGgYlsHt/v+WlylfhTS0VReITdHu+YBVzl+2P0kABsrfwRIwkPZBT03v6b161phu2dkK9mZCq2d0vLMJBfuye3CxBq/Hu8CoHHhxNAoI/mxcwIpAl5GJGvYkh5Hr+dYBCNWQLYJZIyzeuWqezG7RCDRIp38Wg5RlHV4npCfh8UPmA1EFOqyIjJBvR5vbqCKG0Db6Xct631zMknFQPVXfN/gBCsIYM+4KrceIG9F9cDYcxCHpcLrSJ58G/JK6fJJgNhL+Jf6v4HS89qu73TrpxTClBZ3Z41A020dobWSjhsKHtuIAC35Pzpl/6yzfjd6sC2O7GIEmjzr61u8zLXdy0dhvXCrGMKyJjfENnC7UAkZi2xJNTK9EbQNhsVcZag5E19xmHj4BDZDCHuute5qNF8l3cT3GjU0BqoClAMx99rT3rA4AIHG/ZVyBHEsw1PEFoPFP3lqw7mcX49ugupQen/zhO9L7gg4AD+1MgpeLYKkY7OlRbb7irvkXyxogyfC2BPbDzm5+mqP+D96vldSh4AaWKU5/TsSTdZw/Gf4MzVMZqsZe2Ymq/MoAEJniWnOuZAy0KpqRsol0ut1YsWnRITEQzQ6h2rBHc8zlKnYd6CVuDuYOWFt2Kk81DbIC05CQoye7GHBWB8s9C+QBEf209MRQu5Rb9yI98Uzhi5amZwtpJpMZpApiYQJICRXuTO3zJv5Mou6zF4+2rmZKrNxd1aRfeEeeFlEeMdcVMkQAErerf/nroU5Jy2mHO7cA+07vCE5XRyGpIR0px5NiWS4ZdOU7A7hPljOaeYfm6Ja9hUgecAANQUNbu6wU7YVhOmQAZFO65gAAAAAAGvjNI8KrkSN3MHcLvqCNYQBc3aCYQ0jz9u7LVZY4wLugAAAAABfVLLQBUDJXSAADAAEAAQIABQCdq00LL7SxCzvTCkrW4o840gbDkKFHXt4rCDMpG1+4y0UrmrHpcqKBWFCEFIuhOJgAeZvUvmO5V1B9sTSTFOR0RQAAAAGmSiiQAAAAAABSa87////4AAAAAabx2XgAAAAAAFYHmQEAAAARAAAAFAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAGmSiiQAAAAAABSa84AAAAAZFO65FEYCiMw/VnBEbxGxbB2DBXJ35rhvZg70Zl2YzIssNwOKgHersnlGleSd7NLEiOZmE0Lv1fiRYp+Qv7NKCmGeg0AAAAAAlGRIAAAAAAAAFUJ////+AAAAAACVUROAAAAAAAAVcMBAAAAFgAAABsAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAAlGOFwAAAAAAAFEpAAAAAGRTuuW7+zHsa08VDauWCa0gAXOz5TgygR0Yulp5R9GfWpSbaxWt2VAirhNWOhGZLnJ8kb22tVvBg9nXR0NsgKSD2MhkAAAAABapRJ8AAAAAAASHx/////gAAAAAFsocsgAAAAAAA5RAAQAAAA0AAAAPAAAAAGRTuuYAAAAAZFO65gAAAABkU7rlAAAAABapRJ8AAAAAAAPX/wAAAABkU7rkUxqVIlaNYuqe+4OLpAtpuTNtspYwlD6Kuu7a7+tcTJsDrk2yntSuM9MjVoiVqgAzfmWONIs3UJ9Tcq5R8K8A1QAAAAA6FcH1AAAAAAAHsnX////4AAAAADqPu9QAAAAAAAZUSQEAAAAHAAAACAAAAABkU7rmAAAAAGRTuuYAAAAAZFO65QAAAAA6FLIgAAAAAAAGoqAAAAAAZFO65OwskI+2xF2A3AqqPN6HzEPStJul6dJktyZR2gUEko4nP6QlKEj58KFIC+YnRaRinZ6xMirrq4p5HjRLO5wa3PUAAAAAB/E72gAAAAAAAMNM////+AAAAAAH/Ql9AAAAAAAA/+wBAAAACwAAAAwAAAAAZFO65gAAAABkU7rmAAAAAGRTuuUAAAAAB/E72gAAAAAAAOpqAAAAAGRTuuM="; - const object_id = - "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c"; - update_price_feeds(wallet, registry, vaa, object_id); -} - -main(); - -async function update_price_feeds( - signer: RawSigner, - registry: any, - vaa: string, - object_id: string -) { - const tx = new TransactionBlock(); - - let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"]; - let PYTH_STATE = registry["PYTH_STATE_ID"]; - let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"]; - let WORM_STATE = registry["WORMHOLE_STATE_ID"]; - console.log("PYTH_PACKAGE: ", PYTH_PACKAGE); - console.log("PYTH_STATE: ", PYTH_STATE); - console.log("WORM_PACKAGE: ", WORM_PACKAGE); - console.log("WORM_STATE: ", WORM_STATE); - console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID); - - let [verified_vaa] = tx.moveCall({ - target: `${WORM_PACKAGE}::vaa::parse_and_verify`, - arguments: [ - tx.object(WORM_STATE), - tx.pure([...Buffer.from(vaa, "base64")]), - tx.object(SUI_CLOCK_OBJECT_ID), - ], - }); - - let [coin] = tx.moveCall({ - target: "0x2::coin::split", - arguments: [ - tx.object( - "0xab59f054a27f97adb14c4d5eca7ee4dbccade998285b9c5c5400ab00f8ee672d" - ), - tx.pure(1), - ], - typeArguments: ["0x2::sui::SUI"], - }); - - tx.moveCall({ - target: `${PYTH_PACKAGE}::pyth::update_price_feeds`, - arguments: [ - tx.object(PYTH_STATE), - tx.makeMoveVec({ - type: `${WORM_PACKAGE}::vaa::VAA`, - objects: [verified_vaa], - }), - tx.makeMoveVec({ - type: `${PYTH_PACKAGE}::price_info::PriceInfoObject`, - objects: [tx.object(object_id)], - }), - coin, - tx.object(SUI_CLOCK_OBJECT_ID), - ], - }); - - tx.setGasBudget(2000000000); - - let result = await signer.signAndExecuteTransactionBlock({ - transactionBlock: tx, - options: { - showInput: true, - showEffects: true, - showEvents: true, - showObjectChanges: true, - showBalanceChanges: true, - }, - }); - console.log(result); - return result; -} diff --git a/target_chains/sui/scripts/pyth/test.ts b/target_chains/sui/scripts/pyth/test.ts new file mode 100644 index 0000000000..458aff1cc0 --- /dev/null +++ b/target_chains/sui/scripts/pyth/test.ts @@ -0,0 +1,224 @@ +import axios from "axios"; + +const price_ids_to_price_objects = { + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", + "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x813dab097dc9a913a37553dc21a51ec264c5b3018a9148530ee5d4131d9cd948", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x12cd27871301e7b10488d294b21fdca0e02208d60d966cc363137c432bce49dd", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0x8f011dc003102d272bcfb9a1423ed9ab16bf8720102888dbdf3481dc2b81fe52", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xbff692a9a42736393001e997f0895203c81a0b0d7d100177150d3ca2404c2264", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0x7b06c8e0204faba400a6b69c75b51fe84ef24c4251340f4b00eca37852ef9944", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0xc9c0f5b0c331f02792cf47a6136fdea01772aa6e8bcd0acd7927b2cbf0c9500b", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0x73198faa767ea791159fb8c64c71ff490793fbe1abec0af9d959653739b86242", + "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0x7786857b0713ec6b060c873ba9ebf70cdbe8770453214aa7129e0965d3a8725d", + "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xd9b07adaceffb21296de31b46ef0f1db8825a83098d22af07f60205c6394bdd7", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x2b9e4beab792ea64bf6dea7d1d4455a6ff70744602a73388b3d03fc58cc0eca4", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0xe6eb8bc3a9cdab5955a78ebf0dd3f5e4ed3458ab4491285345dd8a6d0aecd2af", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x29405b9f25ad9deb23357298732edb4383d3745ffd9a0373cf3028992d85cf99", + "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0x94223482aa78b4dc59f670ca42c8c9a93b90b0c21721f6a9d679e3f5a50e4434", + "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0x6f5059e755771ad838278b6407a769717b40629f4655bfe9c2afe781cce5d966", + "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x08eae5969d90a4f03e33582077407608f74df4ccc5273cae3236710f68dc348e", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0xe883778d404e7c9eb7ff6fa190e8ddaa26a1b175c02cb00b1b72a4390e38c5f7", + "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0x0ec8b3c28c4240c5acc6c7ff145310d6d2129e6b718189be9c36828d75cf136e", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0x72f36e3b229031b91718b533cde17bf48a3222f4821486f47801671f8d584308", + "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0x35f9fa1bc253e91cfb42396800a37886b7d5fda5e015a9a5d7eea24b4a516421", + "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0xc6e1c6307fa87aa0f3c8e33ce786c6a80ca4aa6de74b8e1a62d9e65ad1047aac", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0x75b7db1ba4946126fa9193d4d00216cd1a52a17087c35feda74905bd0386c076", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0x1666ee917cb925fd3d78da42bfb14c8aa2f51ba1fdfe7a424220fa709133426a", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x7ceb15c8e72d0b917103e43a695e94e40dc653bccbc0806bb71d3ea6539884da", + "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0x663c14c977c46b85b5ea3f1a97ebc5b93d8cf6cf2c94d01dbcfaef0d0ef9efdf", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0x8e812924daaf7dc02188976e71d20d86baaf90129d1c1f4470b7e79084fed804", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0x54499295661a8cfb2c4da4184e330ab5948c4ec7522cad5f96e923b97bc91e61", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0x3c90b83f0acb025336debeb37d6014cdc788d9bece7828eb1412ebe44a01d31f", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0x0ffe43da21a5d957c833d778b0f527b82980f1b210cafa592054f0a026b658b4", + "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0xb9792f919aebd4ce7eb2a4c4b400dc40c2260f81b516e62cd3bb16a2f1cdaec3", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0x784f3db957f968930f9ac749c9b61ef614716964d93e689a482e15c665cf210e", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x847b4e30707fbaedbe1ebf261a9c08299b53389def13b6268f0aaed06118b711", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0x243536ac6942683448eb0f0013540ee72a6d31dd4f6efebb44a0918de2234a67", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0x421f3e1cc42aa5cfd4dc87de41c16bde36a9dffb3392bf61c70d6b3f0ba73a99", + "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0xf6bcaef2cb75a98bf2c16af8e0b0a36127f865be99a456ebbbbcfc2d54632fc2", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0x2ef5a5df964ff7cecceb968fbe84e8e12e6048518ab3c24e9343b46f6d1dd011", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xc38286eec0a9bdc4f7f8ebff7070bf4441ddb06af48cca506cd5477f72a1ec56", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0x8190db687f806ebb5a85e19789a969680e0fd8380724c4f51353ed0fd57d0a35", + "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x3192a035740b7d8a9a2f34e87983f43052bda1a8df4f257dba38d0d021b5afe5", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0x7c9f660c492c80357be785fb2b2eeb37147343740244975bc9622311281c945c", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0x6535ece8ec0e0a6a6f1baf5b80f64bd8d5c18fa2f40b5023e495ad02a9564a49", + "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xe6638d450412b1934890a43d48606d91ad5c945a25ace66f211ccc9f606cf405", + "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0x25325258fd0fb6965aedf380cde6636109d6e3b6c2faa47ec91d2f976bbae702", + "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0x537d0fd5f9576506fce8c81f976a5e7dd183ef875585e78cde420baa9c2dc0cf", + "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0x342f11fa43dbe19d0d5097f28526f4c40a7c9e84097a59d66bb619bff59d971b", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x300a7f0a24b012be8b90b21761624f1da3109b33bf47d8b0e34816b824ce2472", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x88f936c9b272a119b80045783f70f119b5d7214242c2ffa1dab67c1d2645043c", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x3aa76ccda83a8025ad9d12ae64b8efff22fbefa2edee12ddb6a8ee62c15db628", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0x1e81c65a2bb74c8870cbf7620003dc978623b83da4f8ad0615d02a4c8ee9be71", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x6728f81af4b438713f0a6bafac0a9c5b19559fcb8c9c3da9107a5c5715c77150", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x4f8d4f109c805cf57b95add8534e96c2652cf80fc9d6b390797367361c6f9f87", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0x393e4f0af86f2b7c4f6cf87053a90fce28be9507462183c08112ab680f5b222b", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0x5e5f1fa6a90893daf6400a009781b4e146a9714c9e432719d3dd970d58782dbc", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0x25a108e8fabff628d547ade6e7fb5ffba5e3fc4a86d5563c7c9c3f7f89c2838d", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0x969a55ba2749858a67b5ac3740218859ff91958711a4726e4729b6358c592541", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0x3d4f0ed8ede749b0b7969a845a78a3e04052c5bd67632f9ca3e6b8c95e0471e0", + "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0xa2621adcdd0a0eb0856a4bbc95a7a29ac2576915025f1ffff42a0387c659bd0f", + "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0x7e427b11a67228418d02657537dbbe12e653fb6e25c0553e6cccfd93e09b62f9", + "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x6bc83acae136c07fb371388c5701aab8c4093719964434c48fcbb24fcd242302", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x6da106d1876e1ae75110398ba4b4170b8617fdfd7f765682fc2556cfd8fad477", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0xdc8c7a10228f753c4a806f00e624f6d5111bcb01fa1a25e49deb8eab5ef3b959", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x41810c3ebd3ff83df1d52fce4ae30ae393defeada8c35334f658b552e702a808", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0xa59919df888ea0a69aeeb865145ee208e0b5e96e744276097dc5d370ce12c937", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0x094c553dcaefa8daccac6512a27b6bd518962acac070c4a90fd4cbcc7d93cd2d", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x7cc9590c0632c06b336a729fb338855fa50a4c1f56f6bf19792607545ebfce75", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0x0beeaa7af57e04218e931c260a19f7cd5d73728ca9b992e7eaadda5a92352a6c", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x5be5a532a4234472bd42f648c860cc6ce505f4abba1d1ff280c307edaa91c6e5", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0x970d1a400036ee4ed970edc5fc28c1e1a063fd70abaa5635609f84fda603477c", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0xb9b0291e4443cf2919528d4f190963f59f73b2fa60d042ab6d3525ea747e012e", + "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0x84acdb9701e59d7fe938dafaf9d84161838cb862e84f307124a1b1e81e6b77d1", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0x9be7c21f6f7d2b6271fe5dfa45f71c067b0a680aa1ca46ff436afba19336059f", + "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0x4e959b3d766a38dd63a3dccadda27ee46608b13a0a17d66ba50f6c6b43794492", + "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0xfdbf22be9ca4e8be48886404f4eda806287824318d22fbd8bbea6a06ff21a749", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0x82f7cc493ac5c0c0e32c5797cb61372a985439b996ae320926df3eaf982255f9", + "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0x06e3b2601f985409297e81f89b64df8a22e4bda271630322b723c799b3ca558f", + "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0x60cf8eb3bb66b9f1ee5ad5971ce24f85750ed6d65357278cdd24508018c0fb77", + "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x2819077ee5dc736f75d74505f2686240d84618948ec7c94ac67139c8335c3dfa", + "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x0948ff7e93869e56cfa994a8611af061dab31d429017b64cbdbdec687807a4bd", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x59432d2fe5002ddeb6d4b245cfdc6ee8a0b441ff2fb5a9d154f12ef526f40d86", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0xc7dd91bb190bb6b918bcbc1671b8820088e5aab9502236f55ed204aae8d437c7", + "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0x97e8f6a69d1e3bd5a9aea5cbc12ebaf74a2268c21220306c5a4fcce978c3134e", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0xf8a94a60b67fc29212788ff0d125bd00a78873ce64a5f166989fa0a8a6051880", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0xfc6f0ecf57581be16f246383c1b0d39d27d47fd96097b77dd3d9a052f7efd9e5", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0x2121ae366fc6daf8a79c5420153e16a31b4c6a485666c11ef4ab20dcedfc1904", + "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xb6dfe8dd1f13f5db49e93909e8151cda0b3eb873950522e2c6dd9409057eea03", + "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0x397baeff4f1ad933330bff0101898d7dd376d33467bfee1fe4c8a13b6930c669", + "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0x6a2caf39dec7db0ca51e6cf1462756efc7b3637490920c3d111cd3d7da46a6e9", + "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0x5e0b5d2f55fe8ea36709508a4741219a009e32273daa8c43278a89b4c67112e4", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0xe2f01b5ad1edec664d3d646a708b26f85adde915999d56b2f15c0076a140cbd1", + "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x8274e4be99bf8117209b4cdcc963fc397b868f360d20ecf15233591a84da752c", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0x0e8d64923791a322a31ccc8a8c7e1da47622c776414cc2a57c73795dcdad7b88", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0x3f0a05354694d442310e2acba79deb48621a7ca32c170d5bc068fd85dbec760e", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0x3a552d9bcc7dbb8f9bb088f9fc81163a27aae54b79de7192a2ee88803a2c4598", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x262feca09bba056ee9b05c8d0e438c11862533bdabd42f8e79e37a03e994031e", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0x35988ff2b50960965250ccfc4a1be70ffa1a327e0cacfb7618db155d5a93d95f", + "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0xf21863beeed8d8213ad163a37547ca404879875838cefd773f45966140e03536", + "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x94538413241766c917b5837bc66a2f07201f9df610e985bc70f6f1a65bc8b824", + "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0xe477c82786dd5186a36ada1d0092522bc04422a133bee0882cbffebee74bdfaf", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0x83e3bcf94d15dd8246f343a0c3a25b531da1882a237e65d0e3afa8ccc29c2b53", + "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0xa6f4d72ebb3d8d3b847f560c0e1b9b53be59c61cb17905efcb78d9e59097eb61", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x2a2acf181c73055bfbce46e0bd01ffbb73b4481fee51d1442dd0fcfca7011ee1", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0x415149af9fd9d712a5c543d203f5e7a4647232c93291b51cc77dda27591acdf3", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0x3d537759f6eb0f5d8a0894ab553553e70c7526f15c026641ab457d6e600dd488", + "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0xf8bb072d7779c1f9eab2b5de52a0c7db7603cfc9076151bb5a2ba1ca2ed385b0", + "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0xede216a9f98d06bf4ebab1a696ae992590605bf9bbaf05f742b96ab5d6ba0426", + "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0xdc7f9dbd88b507e36df3737e44106b8594b75eb4324412e960d113f5f61e2f55", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0xb148065aef7a6902b5a56404db8dc728253cc3562d6a0c274de4d4db91746cd7", + "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0xd3261ba9e558eda4056861879ede295549b416c75f3b756ca59145552b43ed03", + "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0xa6241689d50ea973e4e0efa11e64f05d85255e18610bd094c6ee95efc2f670b7", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0xc9552aff3ed695958e7279ac930e5f4062fb3d9e0831c5fdcf1564019d2581b2", + "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0x1df777cf70c4741367735002de6dbbed06346194749d9825b8578587a139f964", + "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0x57bd3abe704df070c95bd142463c919f7eb8aab851f56a437429d40a2bcc5c04", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0x44b2efb1ffc530ee28b53ad75aba15d03beeac3d3ac00ab456a95e72b6e46e28", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0xfaa34d98d5776b63a0aa707cac04e3906a769c7b9822181e5831c3fdbe3852bc", + "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0xec8b5dc385c72e1925585a8809df24b1797663b362d7ee698e94c244d95c4502", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0xdd9518d23f6500d095760fe27b6be884cb729141828840501c745fbbb4077ac1", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x2ad5bca64988a60eb6c015984d86f896d7780f89ba4e17d239a8d18dd0ff3c62", + "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0xb1ce5c0bc015130411f74c52c69b17b34778beda878cf35582f4db10e1b37798", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0xf159bc6a781614afd84e7452a57afcea4b02c2a1d89e2af4b345d5704648274f", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0x17d6e86db99e31eec29b25faf06888bbb0cc5f5bad64d462c36c095384236eb8", + "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0x1f81a0a54c5acf8c6849d3555566ae3bcc078fac98ac44d95a248579e00254a6", + "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x0c51789af2ef3a02c1a8dd4a5e90898ae4ab495909a0dec337d2adbf641f9e14", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xc1ee9666521d2494288b3a4264e7428c4be31fbfd0412b7d3e480fa66cb7868e", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0x1e56055aa5510e42a522ac0d45baadeec54cb1ab4f80ed05fbcb01d6a63fe709", + "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0x6c9fce723d522ec708cd4ff6d363277b03fe48fafee79e2b53ce7dfd95838f72", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0x1d8e49343d812229fba1f2e7f04a6162224a566681d781c71b792fdc1b08947c", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0xce84576e03736d879f77af0652b62185234af2ccc4e2e21e276813fa0ca47dbd", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x30a78a430a10cae0d78913036d460eef5c6085c46f8ecf1ad7ba8dee76a12527", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xf261698164fef1649da47f846c6677648f524bc880b257fc771dd65ac540487d", + "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0xedbc661a883e5f47ea5fa4bf5a06374fb60827e5e0e2ac413a96187e3f39a1e3", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x65dfab50959d4f7a0e4bec441a6e0422d4dfcd0e23921c0069e35cc59cad38aa", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0x511286c4c9ce19b57a4ec47efd46f4a336175d36659a5b2741e611205b184853", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x6ed3ddec8444bee9863077d70a0e8ca506242de914f1b3b581c88aecfa67bae3", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0x7e1303e5cfb944c6b0d95e5f9fab038b305c8d80054394e24d8bf64b34b8553a", + "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x57f5289b1bb4008c2090b3e7401e8abdfdfb1bc5b6a4d649752bd537ddc04722", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x2eb3509bf33b5e29124d61b4affc78b271c5b13aa60d4be9ec1d659ff41eaaff", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c", + "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0x97faf2540a0b1ddff6e7f25bbfc7067eecad0334524a70e1caffdc519e2098d3", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x9e743ce40f1f5cad26d7b9a83dd1b7750d9637f13edcfa95ec45ffaaac81cf4d", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0x794047e361d3837b84a3941bb8fee704e083433404e68e20e6d54dbb5673cad5", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0xec956a3c13b3db5c34acc7a19b2d655886c25483254065c7f770ebe64c71b3a2", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0x6928f835a904ad05c54fc1eb9d1269d5396e62eac58cf53f7967dfe54c2e8ced", + "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0xf680a00084f0e61980327af92d5bd5f5eead25d5ad392c18669fe9db72ab1de8", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0x7b86aa064d0d8c77685fe76955f83ecc2c63d06bbdf5ee21273e6866243653f9", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0x2746e22f8f134808ba8332294d5687b975c8dbabca51f5e773483a8b5c006de9", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0xd698c1ab8cecb252cd6c05371b19885d7f3937ababd26250745bb1d9fa6ee019", + "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x70e632d62a24202debf5e4099010c5c360b26f8ce9bcfbd49d52789a3c45a9c5", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0xb5469f185e5a69f8591b4cc9d326eae8fddb86df381408d8ea428ad1001231b3", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x6acb3837b8b069d5af140c6ec99358c862d9af443aa87ca8dbdecdc4963dc83e", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0x43c1205fc3af779d6b9719327d60bc4cf61a2509264defcd7cbc104e731cf461", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0x104ef1548854fd68403152a4661360a484e116c8926d5435325684339e7a4792", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0x81879f4a1e9a6115d6a8f1cb02a13cd6bf9e2713ccd4518c39290ab0aab855bf", + "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0x4e960abf91b2868b8f7003d4c788f2971f17fdd673c552d8c6c7abdbcf1264f3", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x3b2e581f72613f5ca5845ecd97fa54133c4ef2edb41d4cee048050ae61352891", + "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xf7aa8fb0db1de5d2e102c3bac7c4b664c7c4f190100681e826d93784c76126f5", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0x838e80e58c62e04a7420ff13e450b65df38095aa51471975742b89a6c23e2e0a", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0xe42b1d1c8ee5efd399068416bf77f3f194e29a94406acc88a90dd8029bb706aa", + "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0xf5a4f393712a9dc7164f0decbf90af2594a4a7199ea0d380c8e4f265ca7ddd59", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0xc15d506b720e9e47f1ab76510eb0d8d93f1a8331a0edb71d30fe2a862693e607", + "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0x858a716e3b2e9e71be3120de427ebf5ec1b461721645c245f948274f13f87c33", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0x3736ba57e9fa1f82ba9dcdb63142c2871ab6664ec6d2bae0e185feb698b16211", + "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0xe3e1904ab43bab2a002c7cbfe2a25087211a92f163eb4f8f5ea89905fc0232e2", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0x300a46a6b7c9574270a6a261b1fe09765b1d186991b5a7f054b2fb6b89980310", + "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0xa9f457c3e8f90ce4147a5368ac7d1bad29fc3e7a7b566e9da8caea80e70f9015", + "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xf23a24daea2a46388337064f8e466bdc9b848414b246769da8dc756cd19ed352", + "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xda049b4223747412a535f4b007166fbf1b6d7de42f9f49ddf8453d5312a3e66b", + "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0xc840d2761d833abbc469ae1140d1eb5827d2cd2d1bf70520fa1281debdf99926", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0x2d7aa5836ae880f2bd9b1b14d18abef42b5cc8116b332c368457555899fdf184", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0xcc7b6d3a8fc8b32878e333578ab57e96a7ef8ec4498bcc6e839c362924ea52d3", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0xd79ce52a240701df5add9d5f325ab0222271e8ff70e36150426546470bdfd3bc", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0x0950d9b3f34603308ac7583d791fff9e2b9627dbbf9490f5dd7dd67410a6093f", + "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0x7438e09365085c82eabdf045069e749fb95b4e7d39c1ac56fa74c1f5e62500c4", + "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0x21a473555224392259558994ae30f93250f305fa14569e452539df785576b629", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0x70c306983d152a50905f7561c77ee48938deeb794beaef341bb294c2bb5aa996", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0x09ecce08348f4ae9b6f3ac6fac862e441ed9876e33212694c0a4d6639a797c3f", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x5854ab7960bb36c34701a6509fd85eed4b505cf15fc68a2e6c297361c0847d50", + "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0x359325eddf76b5a758697c7be661653a0cec39c51214da8e5a7155b6877753fe", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0xfb993017bb92a8e2868d6d52b486aea8013dcd9bca8fd557306ee48bdfacbecb", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0x1d0afcbaf07da5e4eb570df8b551b24ecfc889c54036de1f31a27bd15a9268d1", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x51ca0aacdd00a18ce65eb4614b17c7a50b05861841dcb6b652936463527f38dd", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0x374088f90087c668259444d8b4118937cc5b296f2b9f3b9a2435c019fca6c4de", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x7a410b6e800f2e2a15b5027b90e855b8cd0954fbb22dd245c4a884a6603f3e55", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0x0d0f6fdadb7b2dcd0b4130e44d20195c4b13caeaa1f65c38249c330b4c1307d2", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0x00330abb569ac93d08b902bbd9e4c69041511417d3c88450b7291f99422c1587", + "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0xf2a08b0909acde30ef72a7291cda5314b76e544136d83ceb0339fa2c1221aed5", + "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0x1c15c9326be25b19496c25ee66545bfd8151c573a49c6a9075d0a5a98e4f7981", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0x540988b6594c264ac5fced6a9021e98b3a3c6764e6f9d1112536c6d2445dbc63", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0xa351d146407bd613cb443031d474c0639f3a328af429866b38d094caa21a44a0", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x2fc81e546084af17b8d99788f4d05254499de49fa2065d79950f19355e23c781", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0xc2d8c65d82ab5413d81ef44e28833be0dd286376ea47e02b26400a67f34c579e", + "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x0624b35d4b654877cf5331f3865b28a8e872efbe40cd877a5470a1e4509107cc", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0xc4209783660db421a861200b7164aacd682ca5bc2a53dcd40c9235b78245a0c0", + "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0xa8539d032e6aba8837568af71ddfe4494139ba37e2ccba5df3a6cb0b5d157c60", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xcd40ec7af217643b816992906439d9c638e4b97203bebc5a4ceb5eed92f5f82f", + "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0x8c1fd6c6d4e328f4ac2d47d67bde6223d9ba3b1ab9d2d2d819462bb8a39d9079", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x16f6f47720607a364c0df4718d78810d5ed8ec5ecac4c18380d6acef614a08e9" + } + +const price_feed_id_url = "https://xc-mainnet.pyth.network/api/price_feed_ids"; // <= NOTE: Update this when changing network + +async function main(){ + // get keys from map (price feed ids) + console.log("price ids published len: ", Object.keys(price_ids_to_price_objects).length) + let all_keys = Object.keys(price_ids_to_price_objects).map(x=>x.toUpperCase()) + console.log("all keys: ", all_keys) + + let { data } = await axios.get(price_feed_id_url); + console.log("data len: ", data.length) + let not_published = [] + for (let item of data){ + //console.log("item: ", item) + if (!(all_keys.indexOf(item.toUpperCase())>-1)){ + console.log("not found in keys") + not_published = not_published.concat(item) + } + } + console.log("not published: ", not_published) + console.log("not_published length: ", not_published.length) +} + +main() diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts new file mode 100644 index 0000000000..19aa2283b9 --- /dev/null +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -0,0 +1,151 @@ +/// We build a programmable transaction to look up a PriceInfoObject ID +/// from a price feed ID, update the price feed, and finally fetch +/// the updated price. +/// +/// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet +import dotenv from "dotenv"; +import { PriceServiceConnection } from "@pythnetwork/price-service-client"; + +import { + RawSigner, + SUI_CLOCK_OBJECT_ID, + TransactionBlock, + JsonRpcProvider, + Ed25519Keypair, + Connection, +} from "@optke3/sui.js"; + +dotenv.config({ path: "~/.env" }); + +import { REGISTRY, NETWORK } from "../registry"; + +// Network dependent settings. +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network +const price_connection_url = "https://xc-mainnet.pyth.network"; // <= NOTE: Update this when changing network +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); + +const connection = new PriceServiceConnection( + price_connection_url, + { + priceFeedRequestConfig: { + binary: true, + }, + } +); + +async function main() { + if (walletPrivateKey === undefined) { + throw new Error("Wallet key unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + Buffer.from(walletPrivateKey, "hex") + ), + provider + ); + console.log(wallet.getAddress()); + + // update a single price feed + const deployer = "0xf0bd738bf137f4cb0601713e95bb9307a5efe8d27f34c9e34f419e17b4e74099";// testnet + const price_feed_id = + "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb"; // testnet + const vaa = + "AQAAAAABAK46ShchGcySL+D7xbyKdz6C3FxGeMlAaAmDrb1l2LQTRsY7JOCMcKhvhYUvi6U+50JiFO8/AUudI+d5a4RZj/IBZFUq5QAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFRKgMBUDJXSAADAAEAAQIABQCdbQGa55bF3PAaj/dFvylmM/7ksc5l+Znf6Dh2cLQS04AZeG8x6F01mM7Nq4ELJ4feD8IsLPmLTxb7Hlv1Z6CkMQAAAAACwJuKAAAAAAABP5D////4AAAAAAK5q0QAAAAAAADnMAEAAAABAAAAAgAAAABkVSrlAAAAAGRVKuUAAAAAZFUq4gAAAAACwJSlAAAAAAABOKsAAAAAZFUq36meZwvnpS94J0Hz0p7r3Wf8PzJV4TpTWn+5piu04/t3i2KGb806Jf+RGFBkROn+UXHmfGGgSfS0/azbwxroYrsAAAAACQzUggAAAAAAAU8K////+AAAAAAI90/oAAAAAAABzswBAAAAAQAAAAIAAAAAZFUq5QAAAABkVSrlAAAAAGRVKuEAAAAACQwGpAAAAAAAAgfMAAAAAGRVKt9+Yw45hhOUDjYjAl2plplx0/MalDbZej7hWqfLWEavS/cxEtStJv03zxjKmz9+bxpWK1lly8JuRIilQFUvGAcuAAAAAAAFHyQAAAAAAAAEgP////gAAAAAAAUXsgAAAAAAAALxAQAAAAEAAAACAAAAAGRVKuUAAAAAZFUq5QAAAABkVSrhAAAAAAAFHyIAAAAAAAAEfgAAAABkVSrfD+5d3AdqlvGg7TGQdX5DE6SESe17memDpYdZE5ORzgVs1cmcbYbfkosFYvJmF93vQAgY+JBzkfMIeWXmt4awswAAAAAALc8CAAAAAAAABm3////4AAAAAAAtgJUAAAAAAAAHJwEAAAABAAAAAgAAAABkVSrlAAAAAGRVKuUAAAAAZFUq4QAAAAAALc5GAAAAAAAAB4YAAAAAZFUq36lo4j3CfwMhZ7N8DkPz3CwQlXKtkOtI8gyvkMqhah5m6wDh+FhUnhIDT/iAt1kkVqcbQjeq9K6xbmPNm2i6TX4AAAAAAO7CdQAAAAAAAZX/////+AAAAAAA7e9ZAAAAAAAA95IBAAAAAQAAAAIAAAAAZFUq5QAAAABkVSrlAAAAAGRVKuQAAAAAAO7CdQAAAAAAAZX/AAAAAGRVKt8=" + const price_info_object_id = + "0xc2c00924b47ce5a4c51b455dff49923c77b4d66eef4953b5b7abcabc1ed80a07"; + update_price_feeds(wallet, registry, vaa, price_info_object_id, deployer); +} + +main(); + +async function update_price_feeds( + signer: RawSigner, + registry: any, + vaa: string, + object_id: string, + deployer: string +) { + const tx = new TransactionBlock(); + + let PYTH_PACKAGE = registry["PYTH_PACKAGE_ID"]; + let PYTH_STATE = registry["PYTH_STATE_ID"]; + let WORM_PACKAGE = registry["WORMHOLE_PACKAGE_ID"]; + let WORM_STATE = registry["WORMHOLE_STATE_ID"]; + console.log("PYTH_PACKAGE: ", PYTH_PACKAGE); + console.log("PYTH_STATE: ", PYTH_STATE); + console.log("WORM_PACKAGE: ", WORM_PACKAGE); + console.log("WORM_STATE: ", WORM_STATE); + console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID); + + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(vaa, "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + const [coin] = tx.splitCoins(tx.gas, [tx.pure(1)]); + tx.transferObjects([coin], tx.pure(deployer)); + + let [price_updates_hot_potato_1] = tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::create_price_infos_hot_potato`, + arguments: [ + tx.object(PYTH_STATE), + tx.makeMoveVec({ + type: `${WORM_PACKAGE}::vaa::VAA`, + objects: [verified_vaa], + }), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + + // Signature: + // pyth_state: &PythState, + // price_updates: HotPotatoVector, + // price_info_object: &mut PriceInfoObject, + // fee: Coin, + // clock: &Clock + + // This appears to fail with 'CommandArgumentError { arg_idx: 2, kind: TypeMismatch } in command 5' + let [price_updates_hot_potato_2] = tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::update_single_price_feed`, + arguments: [ + tx.object(PYTH_STATE), + price_updates_hot_potato_1, + tx.object(object_id), + coin, + tx.object(SUI_CLOCK_OBJECT_ID), + ] + }); + + tx.moveCall({ + target: `${PYTH_PACKAGE}::hot_potato_vector::destroy`, + arguments: [ + price_updates_hot_potato_2 + ], + typeArguments: [ + `${PYTH_PACKAGE}::price_info::PriceInfo` + ] + }); + + tx.setGasBudget(2000000000); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result); + return result; +} diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index 0fa86490f1..5b92cb49a2 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -18,9 +18,9 @@ export const REGISTRY = { }, TESTNET: { PYTH_PACKAGE_ID: - "0xc9e69550ad36bd5e8ce39329ef05ad65c27a5820bd089f8588ae1d85ac991ed6", + "0xd4e0337eb6a9d6af032238ab2d7fdb817830dbbd91574579cfe7a020d45b5098", PYTH_STATE_ID: - "0xb94f56f6439a723d25e37b6030a5c7da153ef2c786058b7dd0249de657933f64", + "0xfb098ca89e35e3f72454e68d29e7dce345186710d1d20b4175aca69065d01154", WORMHOLE_PACKAGE_ID: "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", WORMHOLE_STATE_ID: From 656f2e13d491cf4d77274d2722579a0a1d44d8b9 Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 22:30:47 +0000 Subject: [PATCH 100/140] update_single_price_feed_logic, give hot potato contents type T copy and drop ability --- .../contracts/sources/hot_potato_vector.move | 18 +++--- .../sui/contracts/sources/price_info.move | 8 ++- target_chains/sui/contracts/sources/pyth.move | 57 ++++++++++++------- 3 files changed, 54 insertions(+), 29 deletions(-) diff --git a/target_chains/sui/contracts/sources/hot_potato_vector.move b/target_chains/sui/contracts/sources/hot_potato_vector.move index 600383f50b..5bcb39bd4a 100644 --- a/target_chains/sui/contracts/sources/hot_potato_vector.move +++ b/target_chains/sui/contracts/sources/hot_potato_vector.move @@ -7,37 +7,41 @@ module pyth::hot_potato_vector { friend pyth::pyth; // A hot potato containing a vector of elements - struct HotPotatoVector { + struct HotPotatoVector { contents: vector } // A public destroy function. - public fun destroy(hot_potato_vector: HotPotatoVector){ + public fun destroy(hot_potato_vector: HotPotatoVector){ let HotPotatoVector {contents: _} = hot_potato_vector; } // Only certain on-chain functions are allowed to create a new hot potato vector. - public(friend) fun new(vec: vector): HotPotatoVector{ + public(friend) fun new(vec: vector): HotPotatoVector{ HotPotatoVector { contents: vec } } - public fun length(potato: &HotPotatoVector): u64 { + public fun length(potato: &HotPotatoVector): u64 { vector::length(&potato.contents) } - public fun is_empty(potato: &HotPotatoVector): bool { + public fun is_empty(potato: &HotPotatoVector): bool { vector::is_empty(&potato.contents) } - public(friend) fun pop_back(hot_potato_vector: HotPotatoVector): (T, HotPotatoVector){ + public fun borrow(potato: &HotPotatoVector, i: u64): &T { + vector::borrow(&potato.contents, i) + } + + public(friend) fun pop_back(hot_potato_vector: HotPotatoVector): (T, HotPotatoVector){ let elem = vector::pop_back(&mut hot_potato_vector.contents); return (elem, hot_potato_vector) } #[test_only] - struct A has drop { + struct A has copy, drop { a : u64 } diff --git a/target_chains/sui/contracts/sources/price_info.move b/target_chains/sui/contracts/sources/price_info.move index 6e93fd96d9..01c650dbac 100644 --- a/target_chains/sui/contracts/sources/price_info.move +++ b/target_chains/sui/contracts/sources/price_info.move @@ -177,8 +177,12 @@ module pyth::price_info { public(friend) fun update_price_info_object( price_info_object: &mut PriceInfoObject, - price_info: PriceInfo + price_info: &PriceInfo ) { - price_info_object.price_info = price_info; + price_info_object.price_info = new_price_info( + price_info.attestation_time, + price_info.arrival_time, + price_info.price_feed + ); } } diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index aabf9114a7..ec9f62bae1 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -30,6 +30,7 @@ module pyth::pyth { const E_INVALID_PUBLISH_TIMES_LENGTH: u64 = 5; const E_NO_FRESH_DATA: u64 = 6; const E_UPDATE_AND_PRICE_INFO_OBJECT_MISMATCH: u64 = 7; + const E_PRICE_UPDATE_NOT_FOUND_FOR_PRICE_INFO_OBJECT: u64 = 8; #[test_only] friend pyth::pyth_tests; @@ -176,7 +177,6 @@ module pyth::pyth { /// Update a singular Pyth PriceInfoObject (containing a price feed) with the /// price data in the given hot potato vector (a vector of PriceInfo objects). /// - /// /// The javascript https://github.com/pyth-network/pyth-js/tree/main/pyth-sui-js package /// should be used to fetch these VAAs from the Price Service. More information about this /// process can be found at https://docs.pyth.network/consume-data. @@ -198,38 +198,47 @@ module pyth::pyth { // Coin Value >= update_fee / 5 (we only update a single price feed in this function). assert!(state::get_base_update_fee(pyth_state) <= 5 * coin::value(&fee), E_INSUFFICIENT_FEE); - // TODO: Ideally, we'd want to use Wormhole fee collector instead of transferring funds to deployer address, - // however this requires a mutable reference to PythState. We don't want update_price_feeds - // to take in mutable references to PythState, because taking a global write lock on it - // makes it so price updates can't execute in parallel, even if they act on different price feeds - // (or PriceInfoObjects). transfer::public_transfer(fee, state::get_fee_recipient(pyth_state)); - let (price_info, hot_potato_vector) = hot_potato_vector::pop_back(price_updates); - - // Update the price_info_object using the price_info. - // If the price_info is not intended to update price_info_object, - // then the call will revert. - update_cache(latest_only, price_info, price_info_object, clock); + // Find price update corresponding to PriceInfoObject within the array of price_updates + // and use it to update PriceInfoObject. + let i = 0; + let found = false; + while (i < hot_potato_vector::length(&price_updates)){ + let cur_price_info = hot_potato_vector::borrow(&price_updates, i); + if (has_same_price_identifier(cur_price_info, price_info_object)){ + found = true; + update_cache(latest_only, cur_price_info, price_info_object, clock); + break + }; + i = i + 1; + }; + if (found==false){ + abort E_PRICE_UPDATE_NOT_FOUND_FOR_PRICE_INFO_OBJECT + }; + price_updates + } - hot_potato_vector + fun has_same_price_identifier(price_info: &PriceInfo, price_info_object: &PriceInfoObject) : bool { + let price_info_from_object = price_info::get_price_info_from_price_info_object(price_info_object); + let price_identifier_from_object = price_info::get_price_identifier(&price_info_from_object); + let price_identifier_from_price_info = price_info::get_price_identifier(price_info); + price_identifier_from_object == price_identifier_from_price_info } /// Update PriceInfoObject with updated data from a PriceInfo public(friend) fun update_cache( _: LatestOnly, - update: PriceInfo, + update: &PriceInfo, price_info_object: &mut PriceInfoObject, clock: &Clock, ){ - let price_info = price_info::get_price_info_from_price_info_object(price_info_object); - // Check if the current price info object corresponds to the price feed that - // the update is meant for. - assert!(price_info::get_price_identifier(&price_info) == price_info::get_price_identifier(&update), E_UPDATE_AND_PRICE_INFO_OBJECT_MISMATCH); + let has_same_price_identifier = has_same_price_identifier(update, price_info_object); + assert!(has_same_price_identifier, E_UPDATE_AND_PRICE_INFO_OBJECT_MISMATCH); // Update the price info object with the new updated price info. - if (is_fresh_update(&update, price_info_object)){ - pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(&update)), clock::timestamp_ms(clock)/1000); + if (is_fresh_update(update, price_info_object)){ + pyth_event::emit_price_feed_update(price_feed::from(price_info::get_price_feed(update)), clock::timestamp_ms(clock)/1000); price_info::update_price_info_object( price_info_object, update @@ -351,6 +360,7 @@ module pyth::pyth_tests{ //use pyth::price::{Self}; use pyth::pyth::{Self, create_price_infos_hot_potato, update_single_price_feed}; use pyth::hot_potato_vector::{Self}; + use pyth::batch_price_attestation::Self; use wormhole::setup::{Self as wormhole_setup, DeployerCap}; use wormhole::external_address::{Self}; @@ -715,6 +725,13 @@ module pyth::pyth_tests{ test_scenario::next_tx(&mut scenario, DEPLOYER); hot_potato_vector::destroy(potato); + // custom test + let my_payload = x"50325748000300010001020005009d6d019ae796c5dcf01a8ff745bf296633fee4b1ce65f999dfe8387670b412d38019786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a4310000000002c03544000000000000b540fffffff80000000002c0292e000000000000c5bb01000000010000000200000000645564b700000000645564b600000000645564b50000000002c03544000000000000b54000000000645564afa99e670be7a52f782741f3d29eebdd67fc3f3255e13a535a7fb9a62bb4e3fb778b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb000000000905a2a5000000000001be4dfffffff80000000009088b05000000000001788901000000010000000200000000645564b700000000645564b700000000645564b6000000000905a2a5000000000001be4d00000000645564af7e630e398613940e3623025da9969971d3f31a9436d97a3ee15aa7cb5846af4bf73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e00000000000514a300000000000003c3fffffff8000000000005137d00000000000002d001000000010000000200000000645564b700000000645564b700000000645564b600000000000514a300000000000003c300000000645564af0fee5ddc076a96f1a0ed3190757e4313a48449ed7b99e983a58759139391ce056cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b300000000002daa8b00000000000006b1fffffff800000000002daae3000000000000066f01000000010000000200000000645564b700000000645564b700000000645564b600000000002da9f5000000000000074700000000645564afa968e23dc27f032167b37c0e43f3dc2c109572ad90eb48f20caf90caa16a1e66eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e0000000000ee0dcc0000000000018aecfffffff80000000000ee5bcf000000000000c1d501000000010000000200000000645564b700000000645564b700000000645564b60000000000ee1b14000000000000907300000000645564af"; + let price_updates = batch_price_attestation::deserialize(my_payload, &clock); + std::debug::print(&price_updates); + let _payload = batch_price_attestation::destroy(price_updates); + //std::debug::print(&payload); + vector::destroy_empty(verified_vaas); return_shared(pyth_state); return_shared(worm_state); From 81c04ee8896fa31b42624c81c212563f4cbecb71 Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 5 May 2023 22:33:00 +0000 Subject: [PATCH 101/140] delete custom price attestation test --- target_chains/sui/contracts/sources/pyth.move | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index ec9f62bae1..f259a6a4a7 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -360,7 +360,6 @@ module pyth::pyth_tests{ //use pyth::price::{Self}; use pyth::pyth::{Self, create_price_infos_hot_potato, update_single_price_feed}; use pyth::hot_potato_vector::{Self}; - use pyth::batch_price_attestation::Self; use wormhole::setup::{Self as wormhole_setup, DeployerCap}; use wormhole::external_address::{Self}; @@ -698,10 +697,6 @@ module pyth::pyth_tests{ verified_vaas = get_verified_test_vaas(&worm_state, &clock); test_scenario::next_tx(&mut scenario, DEPLOYER); - // Get VAA objects - std::debug::print(&vector::length(&verified_vaas)); - std::debug::print(&vector::length(&verified_vaas)); - let vaa_1 = vector::pop_back(&mut verified_vaas); test_scenario::next_tx(&mut scenario, DEPLOYER); @@ -725,13 +720,6 @@ module pyth::pyth_tests{ test_scenario::next_tx(&mut scenario, DEPLOYER); hot_potato_vector::destroy(potato); - // custom test - let my_payload = x"50325748000300010001020005009d6d019ae796c5dcf01a8ff745bf296633fee4b1ce65f999dfe8387670b412d38019786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a4310000000002c03544000000000000b540fffffff80000000002c0292e000000000000c5bb01000000010000000200000000645564b700000000645564b600000000645564b50000000002c03544000000000000b54000000000645564afa99e670be7a52f782741f3d29eebdd67fc3f3255e13a535a7fb9a62bb4e3fb778b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb000000000905a2a5000000000001be4dfffffff80000000009088b05000000000001788901000000010000000200000000645564b700000000645564b700000000645564b6000000000905a2a5000000000001be4d00000000645564af7e630e398613940e3623025da9969971d3f31a9436d97a3ee15aa7cb5846af4bf73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e00000000000514a300000000000003c3fffffff8000000000005137d00000000000002d001000000010000000200000000645564b700000000645564b700000000645564b600000000000514a300000000000003c300000000645564af0fee5ddc076a96f1a0ed3190757e4313a48449ed7b99e983a58759139391ce056cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b300000000002daa8b00000000000006b1fffffff800000000002daae3000000000000066f01000000010000000200000000645564b700000000645564b700000000645564b600000000002da9f5000000000000074700000000645564afa968e23dc27f032167b37c0e43f3dc2c109572ad90eb48f20caf90caa16a1e66eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e0000000000ee0dcc0000000000018aecfffffff80000000000ee5bcf000000000000c1d501000000010000000200000000645564b700000000645564b700000000645564b60000000000ee1b14000000000000907300000000645564af"; - let price_updates = batch_price_attestation::deserialize(my_payload, &clock); - std::debug::print(&price_updates); - let _payload = batch_price_attestation::destroy(price_updates); - //std::debug::print(&payload); - vector::destroy_empty(verified_vaas); return_shared(pyth_state); return_shared(worm_state); From 08e53ad792a6b18b5b22ac3f3707f8adf5d2887f Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 6 May 2023 00:39:54 +0000 Subject: [PATCH 102/140] get update multiple price feeds POC to work --- target_chains/sui/contracts/Move.default.toml | 17 + target_chains/sui/contracts/Move.testnet.toml | 19 - target_chains/sui/contracts/Move.toml | 12 +- .../price_id_to_object_id.testnet.json | 500 +++++++++--------- .../scripts/pyth/get_price_info_object_ids.ts | 2 +- target_chains/sui/scripts/pyth/get_vaas.ts | 4 +- target_chains/sui/scripts/pyth/init_state.ts | 4 +- target_chains/sui/scripts/pyth/test.ts | 68 ++- .../sui/scripts/pyth/update_price_feeds.ts | 99 ++-- target_chains/sui/scripts/registry.ts | 4 +- 10 files changed, 390 insertions(+), 339 deletions(-) create mode 100644 target_chains/sui/contracts/Move.default.toml delete mode 100644 target_chains/sui/contracts/Move.testnet.toml diff --git a/target_chains/sui/contracts/Move.default.toml b/target_chains/sui/contracts/Move.default.toml new file mode 100644 index 0000000000..30ceea03a1 --- /dev/null +++ b/target_chains/sui/contracts/Move.default.toml @@ -0,0 +1,17 @@ +[package] +name = "Pyth" +version = "0.0.1" + +[dependencies.Sui] +git = "https://github.com/MystenLabs/sui.git" +subdir = "crates/sui-framework/packages/sui-framework" +rev = "09b2081498366df936abae26eea4b2d5cafb2788" + +[dependencies.Wormhole] +git = "https://github.com/wormhole-foundation/wormhole.git" +subdir = "sui/wormhole" +rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" + +[addresses] +pyth = "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861" +wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" diff --git a/target_chains/sui/contracts/Move.testnet.toml b/target_chains/sui/contracts/Move.testnet.toml deleted file mode 100644 index 20dc89a0ab..0000000000 --- a/target_chains/sui/contracts/Move.testnet.toml +++ /dev/null @@ -1,19 +0,0 @@ -[package] -name = "Pyth" -version = "0.0.1" - -[dependencies.Sui] -git = "https://github.com/MystenLabs/sui.git" -subdir = "crates/sui-framework/packages/sui-framework" -rev = "09b2081498366df936abae26eea4b2d5cafb2788" - -[dependencies.Wormhole] -local = "../../../../wormhole/sui/wormhole" - -[addresses] -pyth = "0x0" -wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" - -[dev-addresses] -pyth = "0x100" -wormhole = "0x200" diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 30ceea03a1..20dc89a0ab 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,10 +8,12 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] -git = "https://github.com/wormhole-foundation/wormhole.git" -subdir = "sui/wormhole" -rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" +local = "../../../../wormhole/sui/wormhole" [addresses] -pyth = "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861" -wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" +pyth = "0x0" +wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" + +[dev-addresses] +pyth = "0x100" +wormhole = "0x200" diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json index 844764b3f2..f789abc106 100644 --- a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json @@ -1,252 +1,252 @@ { - "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd" : "0xd07bed344437b427c514bcff7b2bfdb4aa8223aee75b9880d91c9e5877f3d446", - "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba" : "0x9f12da5a9cae3d0dfb624cf9d7be2e82ace91e9ae9f6a3d61e15ce0d9a330c19", - "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93" : "0xace30b49c550f26068f8a6b45462b6a99929c333343294eac8c9f1042475f716", - "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021" : "0x64cef1a5f430ee752c0a13d05fa7e6afdbe30c5b0031039fae0cbf100361afb8", - "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376" : "0xafe6bbad7da2b1a89957ef059f787bcde7a2d53f40a8f776bc61cf396d021415", - "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5" : "0x3a7714ecec59bf36da9c71d3e0bf55200aa02b79e0cd97882915c32cfdf431fe", - "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e" : "0x8d3b37467d2406b7f4bc916d508d078ba7102c6f42dcbc29f1f0b4a2bbac3f0f", - "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd" : "0x3ed29c612899fd496cb3efc1f04f9ad4a4636c4b274b3e3aed3fc659eca36893", - "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048" : "0xb5423c5ed2f5ccbd93d300b8a23a21258cc953abd8ea8319a9368d78927fb67b", - "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21" : "0x34252fd351a78ab9cc45c548e3f7b5eb9cf09a9fce4a01ed648674cce0be91b1", - "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880" : "0xb4e40db0e19849b5a4625c2c6197e7fcb9eb6a9aa8d8abaaf5abacebd0fbd96f", - "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5" : "0xc06ca389579176601e6e92f48bf55ce5907ffa002b13df56217b905ef2e36533", - "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758" : "0x8c088de47d51191fc863585021c5a2b64a0d218bd612c39910d6a6f2b9692641", - "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb" : "0xb6fd25a93d5a243c9a2c36650d76c3756302cc5a072d92e0e33c6c2395a7a304", - "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7" : "0xa4e93e44b4dd7bbb66875c9615e50c4437250057b6f8bf4418985f9c6786deb1", - "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1" : "0xd4b7cc8310294715c013b186358fe5f7f780f07aa302941e3372c820d52084be", - "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588" : "0xf87ffc9575e9d2f027411d510984a468cbda9796141b2a6370f6ebad378381e6", - "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd" : "0x8528cff5bbcc5785f40b1f04713a93f98ce5ac463fd24f7e3736c501a620eb78", - "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378" : "0xf6025c8d93ed23c91c7d99f43e2ea6f991b1d686d7d5294f9190f4e7f79bab4a", - "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519" : "0x90fbdfb71576fc4b7d7708148a3bb1a048cafb08315ec421bb0b58eb316f411d", - "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b" : "0xee068c20b96c0261c068aad55ec3f694661522e1be3dc3ecb1160d6688dddbb6", - "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7" : "0x072b70e34fa2480ba7a330adee62aa68b4dda85d10a023a6ad21003f00cb3cd7", - "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994" : "0x2e6715953d4024b835c6dea6391dad24deb2218ffaf4a16519b8fb0a506c31f0", - "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb" : "0xdcb2671ccd0792c97a19f436bf65083d2aab2c8152392b186bf5b1759fecdae1", - "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7" : "0x18c7bacf14e204a76b074398b5f08f359b3ae95aff7842acccb39e3730b7d4eb", - "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62" : "0x258e47ffb0f52304bfce48b6dcf647720d68b725a492621cf34143127b447645", - "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f" : "0x4c931fc66e2a247d1e588be60af21de43b765b2ef39074ee8e18bd42deb30df6", - "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d" : "0x1d16c37a39462cff97191c0caccda3fd610c95bcc0100326da6880410e3d9e73", - "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08" : "0xc9ded1e350998915d4530087d00121083f2effbe4f6c879af4b2e7eb4d44e623", - "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb" : "0x93a20704efadd5bed89d10519f4664958acfe615d4d1f58fe3df1869c16b890f", - "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7" : "0x347ff680ea7236166e9bc005e24822ce47ef760d14ce8827de17a3c630980363", - "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621" : "0xac3f419bb0bde029b9221a3a820bcd2bb83e01071f8b107e3f8ad0d8be9ae993", - "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a" : "0x693956733018d8c521101fe69cb5196b7395b1cf12ecb15a30cebf63a3814a32", - "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494" : "0xead5f2282d63db693887b79e80772a3f52a0b948500ff7e7bb230e4335570e50", - "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86" : "0x64efdd90ded345eb55dffab383194e94deb6821fa25494343be8534b29472a4a", - "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193" : "0x64f8924ee4a5e4378f16d29477873996e4211ce5ae8aa48213a9a870cb215563", - "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7" : "0xac38e5f0aaa10f50fdb5eac34ec2df8777bd14b07f422f47031d44c7cd7af6dc", - "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7" : "0x5b4508ee0da8bf3f40eaefd50d5f49648863c37670612e048abd491057c7637c", - "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc" : "0x4a35514e2502c9b858a869d29ce27760f51c536bc313df8b3b80a68192ce501a", - "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2" : "0xdbade3342b68d11b2e6770299cb5b135e5791a8c722a42d95276c961bb935fdd", - "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51" : "0x7a71572916bf129514448ba9680ff4dc5aaf46cc8b529446aa74d1da4a80d71a", - "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd" : "0x2c9d20757ac94d33eb8bd807a363111513760646cd8cb9ba0ebca7920e2f999a", - "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417" : "0x16c9d88a6750c589129bf1b58325ce09dbd81c6cad769cdb9e718f0578af60ea", - "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc" : "0xe8fafe957ffe05e4a31c6116a1a6b6ddfb3494ac5426ee17c1e8fd77579eb4f5", - "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f" : "0x95089834f36e75ade17c352d074d83097130501800c86ee6a6385e7089016cdf", - "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064" : "0x398d9709d550256f6987889c210fd0a3487744767951564f79ff5b6a7e314ffc", - "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee" : "0xd13dc34b9093bcb118d1cf977936a0e44dfcbd82514d9eee387d180cdd6073f1", - "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f" : "0xf50428a88bc7244bd45417e5dc79675a711799f200191f53834dbc700402ee97", - "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32" : "0xd939c3eee5b12e0f105974385b18a64934a172008c5a9f732211fdf01e84f5d5", - "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6" : "0x4a4942a9a6ccae4188ef412973c014a3f14344ba19132d5a180af0d06ac9ed11", - "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b" : "0xa3baa7b5ca62a1dda6dcf7d14761b6ab2bbf981ca7a6aacfd18e21ac480cf027", - "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d" : "0xbcf3d401fced41ac5244d726d2964fd10684f88fdfcf7e956ebf7ac312b11d71", - "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f" : "0x162b021a535c9eaa6cd803120d78723bd03538bdd0cb423b135bae0215a00761", - "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919" : "0x41238998dfe44707cd686152d2ef98aac1880d9146450dcde0d801a2ad1213cb", - "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93" : "0x69672ab7c1e015dbe5e9e9305c32af8341aacc1b0b40a072a6376f84f4f924d6", - "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b" : "0xea6b1a2ad1b7cfe1b2b909791748a2e79025aa9702d8eaf5cdc49b7a5459a663", - "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73" : "0x99aea01afaff60e631309a695cf1b65f9c9158829821c250580bed4367f403d1", - "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e" : "0x4e2ed20484adabe15b757a7f34452505f1318232f2a3e7267c01b853b34fb716", - "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc" : "0xfd34f66ed27be18a17aa67b85efa7ba3326596513d0c03bf70de1c5c1b60bf4b", - "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f" : "0x35e8d81297205dadff23815f30401f8831cee8782b35bc8a923ed4be7ee29032", - "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd" : "0x4fe45439ea1af7600959561cc4f1295896a33c0bd417c0282d353878b00a0fa1", - "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8" : "0x9b097dca0aa847df70dafcd5c0c04d9f328108927ba5279131ee421a27b57283", - "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a" : "0x515d445b30d93c5bcc5cbeb1cd50c2b739a2e5756c564896d17e68fee5bc2ed2", - "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73" : "0x671cb561f93b564cc3dc72d55e24693b009a8c547634de59382c3fa80f40814b", - "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3" : "0xd2bce68cd588c016bfc1e82cef0a156791f74f7b46c91ff001c9f80d5983a0a7", - "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea" : "0x1b6d4021043c20931fdb79b6d920e61fe9bd13b38e9bf26bb1d89c4c0cad7213", - "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02" : "0xe6ca2a2a3158844a242602e7a9169eb6d6c99d8c87d6f1e0d517fde42094b802", - "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb" : "0xbef9c22a3c218b4dbf0b61dfaf62c8319a1298b7db3190ed50e2e5443084ab0a", - "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0" : "0x48ef93e6cee8e39f3f6f600654b2a84c5d2be83d0914c52cbff1f1db40cc7a01", - "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d" : "0x599f2bedc68036be537b6383cc13a45b5c45fed1420678d6d0e1094b851c43c2", - "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063" : "0xacc2b70ced0a5b0b245587860577e510a0c8410aa77b1667e167ad044359e83a", - "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93" : "0x7e2bb27f20c0474f24c3252aa813bd662bec101823b1bd7b5615b583e3192e5c", - "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2" : "0xa21cab5b1c4776eaf628ee27c494f9e855ab3e38cf1014807545d802bd0c3690", - "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b" : "0x65577361c45ab1bb94e319b1ee3930383170aa30a1c802dfe742394ce65fe680", - "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993" : "0x9eadd039593ea14ee4866811c90e6dc4d9c30948dee67a879b4a52e958675310", - "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a" : "0xa55283328a71ab719d8c99198ed9743876e674da9b9a1fe4309a12e01eeab137", - "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7" : "0x133a309c58962643664a62d867d2a8c48f166f0dc15d36773d2a4f845a05fd82", - "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748" : "0xba609f5cdd4c559a5a1de5fcc69ed1cfa15719b4efe5808109a1a425fe4e24e1", - "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66" : "0x2cd027259c4adf81d13b7270970987da55a676dbcd70790979a8a236b352efd5", - "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b" : "0x072a36b2b3c19cb68990a0b9bd5c2dafb9519da9afe1ca8e1f27054a5640a4e9", - "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8" : "0xdbc447274b3344577cdcd3f20cc32737c470a087f776e6a6d19972586d0fa0ab", - "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e" : "0x7e8fa556edd79ecf2567c140ebd7beacf609e19d88a70e98cc0d68b3b35c4cdf", - "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15" : "0xc64a124545e0b33dbaf889e5b8fa7278d9ca9b522a07610ed6cf05cdad06080e", - "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b" : "0x75db5897a856401c4084cd1f7415c1b6db2175debaad3d151e9af3300d6e4690", - "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24" : "0xddf729a44e3748651097187f8ca39d8eaaa90ee931848518bb91f429aeb3847e", - "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634" : "0x2c282b897bdd84673894e3a440675267339663fbed13f58636eb99801bb2b1ef", - "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98" : "0x875f8f4615921f2330c64c1fe288b544b061fd9701079b72ff7038c773ab1d37", - "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5" : "0x5b06b2d60c94726d66d9338ece963175e63c819baa7895670bc7fa7803fc2251", - "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860" : "0x365c58a2b25c1bff239d0e641c7b350bc96edbde776b1b81865d6f3fba7a3e16", - "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d" : "0x7f677e0ba88dc07225c05c2df967ced3eae58ed66ccbba089026fe7701b42184", - "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d" : "0xcf2dc7f20a8b180dde47ce0a01d2bcbc257866395294cdb649e48bfa9d5df432", - "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf" : "0x891410ba9a1151d4afc6c92b2f5f1c326df872de8fbb6c5aaf41b2cf08496bc7", - "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e" : "0xf8e635635b4693482e74c7b1cd2fbbecd9bb4cc574bcb4ec00b17d8c1ebe62de", - "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3" : "0x48eba1ccda0430be8b864e650e2e7d4cb6e2c8de7b29c31c2af08eb42d27a398", - "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e" : "0xae1210658c5281aea40d57de3534406661bf285a27cc4796e0f785dd67ed8350", - "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f" : "0xa2a3ef1a0e97d9df8aeb3ecf38b86a12ab9b8ad993dd7940999aab5274b3a8c4", - "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21" : "0x9b4eea93487aa3d286a32c0d1a8744b319d71fef9be0f382a55e3490c50a6ad5", - "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749" : "0xca31bdbeb0948a301359cbf9d846a5e0435b84157f48aacea27040e6cdeb919a", - "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6" : "0x623796f77fe6f9320c97d6b3d7bfc6f0b9cbe8b343156687eb0bf27af5997426", - "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae" : "0x6269e90c5928e99c2318cd22aebeaa81f5c4b79d3ae3779f260ab4506473bdfe", - "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a" : "0xf75681af3c1e6961d57a6d63afc922b683faa2619e707dfcf52c33949826c01c", - "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2" : "0xd2e6d67f78d852fe8a1e5c0423a76e544dad0b586ca145b08e4f0f62bfe30ceb", - "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f" : "0x17c1e9853d615692701277b93271ce1956cf91669c1e6a2b384ff89260471899", - "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d" : "0x80a46af7ced56369f0c3a297243259f6f98032b294863e9cc5d4459faef64703", - "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff" : "0x3aea9e92a9fea9a2735f289ee6e84adec95f7ee68e2dd6cf9be24ca8124ef900", - "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c" : "0x54368cd9e1b8f1b8d3915a47ff06f8d33574c9174d39cd2047ed7b1603bdc40f", - "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530" : "0x9eedadebf2213428ed18728a7d43154b508ba88e8f7c7529e365418ad1f86f39", - "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8" : "0xfc032fedb020961beffae7924dfa7b8d8792311d05b1f79fd18e47c5bf0167a4", - "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421" : "0x9aaad1b31d67baf0e63ea859d2c6b2a6ba7d4fc89078191f33b54470eeee368c", - "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204" : "0xf772438ecc2d833b5f95b5688a864c7aeab8001fce78ffeb099bfd23fe43f053", - "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea" : "0xab52a4a19e510e8b03ecaac798b776ff6b93057418fe8d54bd3424b0b25d3052", - "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e" : "0x5ad1ca7e025df052b44adbc9c98d5657ad5f5864050af8c4407f516a344d7f34", - "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722" : "0xc01c988c12bebe9b84496b876f6efe9e4ed420447d68cea06b5469180c447ecc", - "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87" : "0x5d4be7762db40868af9f566c1ad275558cbf0bfa8a186b843c362036ac0647f6", - "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed" : "0xcebb3ab7835c8074ebfd4727c91ce7d1cdaf86ffed1da9ab3c320a06cbdb339b", - "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2" : "0x08d17a4ba06ac9b12a2585ab2de390078d470621ae996a64c860162bc9bade5d", - "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc" : "0x608c822bda8d0935b037e4f079c470eda8fd13c9066ea19387824572a8e8325d", - "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14" : "0x11c2a8bdb9b83eac482f72fa486c8e239e04428cf983edc0b48a57baeb7d62b5", - "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964" : "0x9d303bb3c47454e94c8e22121135de47a8e8ed1dffff750c1fa3f8fb10282f71", - "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984" : "0x49bb1363cdc5df0477024191a47d1c40a0271764a38a70ff60195cd8db4b4407", - "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d" : "0x9955ad2b91e16cb949a809305ccf9c029f78c47f7b81cdefd5f3d31b7804aa4a", - "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8" : "0x951c1f820675ca522b652e087ca1b594fc9164d11d4f4608cf89817b89e1fea0", - "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c" : "0x95abc47c9f8ab3747f6a5c54709d075cf29ec75e105bdb0df3626b02f5580386", - "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b" : "0xaeabc4a6018e99b776884643c4b79272f33f0ed1bfd93e136a6f0a4d90eefa26", - "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc" : "0xbb2ef8d91680d631620528fe680c907ad7c25f9e525513e8c0d986ff785bbc61", - "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9" : "0xde9349978ba44b757d1199202bde18e916f08c3a008a95bc681ded060bb28bf8", - "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d" : "0x1c0cc83c6b651faf439763c2a21ca7552dbc80e76bf81c815953b875cf1704ce", - "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e" : "0x8a9ca7164af66ecb0b725b84e8e0e0eda6098867887e4d500ff5e292ff5c96b1", - "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161" : "0x7fd2baf0c85184a5a8df42d92440d97c784df22fe3c32fa573bea39c0f45d669", - "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d" : "0xcfd38a14116b4ec0b02c3e941125f474ef059fa76652b98198afa1bcdbbdde08", - "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b" : "0x9972b39aaec311e98e5c273087e6d04007f0a4b4ecbed21ba49310f39e5169ef", - "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e" : "0xf00de33e9d45bcd94b0764db8f2d30fb4e0a5e4e52b0e19055090ea1eebb1f47", - "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c" : "0x52b2a8378867e2169de3f3fca02443e22fb9b46839ffc5446c62dbd13b3aa4ab", - "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154" : "0xfca4f7001e1e24ac375b31f00deae4f0ddc7d04aa5422830414ba844a20e1513", - "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced" : "0xd01755c25d9f522257de674486fa12fe0f124c72552f7b49534942cd6b29bae8", - "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f" : "0x96e634bfb7725a1d72adc5fb093bc1ce9029206ca30f9cd28001da29bf14a924", - "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd" : "0x6cd20ec9d5c7306c08df7add2f367a6912bff418903caa5c62c30f71e9ea0fbe", - "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679" : "0xb5752f8b57810ed55dc86b3152bc14e6dfd8514038c1f4e73ef26fcc39f43a39", - "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538" : "0x7e2514c5f5d305756a19256495c588dbf2ac02b8779e7dcd5f32278b2fadf5e9", - "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3" : "0xea0e92e2d3ca995bef480150252c7483c37f4b7673cee2bfadff072202bf531d", - "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0" : "0xf6754c778cf567c88e1ff15d279d74bed0e37ad12ddd58294c29f4b4c1006f80", - "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593" : "0x9d9bac8c5eea68adfb10a4e9b4ef6c89d9471a3af15e497c51528f4a138ff825", - "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f" : "0xc89da84c7227561df4568772a9546267f0ef0e0c11a993a04427d0e71f3eb111", - "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f" : "0x307262d206af22c4aa32659589d706cc3b8e26c1695f28fb28f24f674c3382d8", - "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1" : "0x991272ee8dc41357af568c7bfe3194ed3b3c50fdae3849da757156443e0f2761", - "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4" : "0x729d2defe81e4fde41b5323caddd277e6c9fd9ae52ed0474026f9a0be6601cea", - "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075" : "0x1194fc9de0873a52f5b341938121862ea438e40e1a59cf7f567b50fd40320e31", - "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b" : "0x087fbb94714f80d73cf2f88ae6a0a9bddf89f3cd3be96c19bb6e0ed5e1d6f07e", - "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883" : "0x1b59382db57b3fbcc78677f9e6ddfaddc5bb8cd0a5c45b90d73ec513b5171a2f", - "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857" : "0x0d466e35956a017c3962cd9b247a6f53f0138693e99272b99f3e1e652ef8d4a8", - "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4" : "0x022d38a4f44074cb19370e1e9fc2efb8d0817ee32e8dd3d3e498e932c299ad7f", - "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4" : "0x29c32d2330df7444bbc7c7d955986114dcbe8894c90c1df1d00ce359f4a2223c", - "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937" : "0xf5a74f4af0c7766fa838c690ade5c12360cace938f7fd886c0a6c48b3bba3883", - "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266" : "0xb087a38644d78928e284d30e8ffc15edfee5b90601521532362a8548325ad8bb", - "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967" : "0x56ca515043afd03da69981ba0e948497e35790d0218c6703f16e4d44d6fd965b", - "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad" : "0xe9fa8ad34ba87bc824987bd97ec4d02bb7b25ca4995a9d862abdde85481a5ed5", - "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6" : "0x8811017ab514e51c453d26230da3af791cb7935b0a4a2a3b1ee62a5fccdf143a", - "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321" : "0xfff346a46192d09cb9484a5c685acb73965858c7709bf2bf5aa2cd4eec027e1f", - "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106" : "0x6094ef3d713fa773fc98d6eaab39c220cc47fb15cd84231eccffe10a222020ee", - "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b" : "0xcb5a5b8f0f69c2de868c13d47ab111b2994d1b0db7d51ba29dde665d666a2123", - "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9" : "0x77126ae9116d02ca390a8e7cd1547f499d79a6163f9200108861fbadb1160221", - "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d" : "0xf5ac66138f5df33b4e62308f22479389c8e9abb1ba6a620c241d5b54883bc432", - "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192" : "0xbb1d66d3e60608a03acf867d9baf5cf55a8634d0b3568e92fbbafc9c2bf61826", - "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183" : "0x30912b7ab216d965d2f27284f5ebd808b60357ab381bd6a589dc58a3e4aa32f1", - "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca" : "0xf569f573cb2aae2b424838f318b2e7d7399d4ce04e3246ff227677a87e753a2b", - "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e" : "0x8fd40fb9e4bb2d60ced887ca047604fa98b8cc119f85290b19a1bfd130ed1570", - "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832" : "0x07d262c9b8e6b0d10604d03a6badabd16c21e1758d118e43a52e9a861ec58137", - "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" : "0x370c155a2ff0a6b70c4876c519f4af410bb8984176c5331d4633a1774815bc14", - "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02" : "0x7974a6a5cea42767dc9315f78b96200ec4222c181b0b9923302a0bd5acba5f28", - "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29" : "0x02eb588f6b96a95b7b662caeafdba033d1788db2ae08fdff34170e78435490a9", - "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f" : "0x765a64c9f0f90dd79192469a4131b09890e1d1231dab226ae5844518129dd6ae", - "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256" : "0xd23a4f1731ae652d2f29616224824346115db23def854b3f689433d5d6b32056", - "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f" : "0x51d0842dcba32ff118644d5a7ea3e2c1ec2280d67634a0d7c146bd3b602d9ad0", - "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6" : "0xfb3d5f0b2fb5573b4eaff2492f01d6bf0df9aaba17b7cf5ac8e82314d3fa5223", - "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033" : "0x7fbc0b3e8e0fada50eb34102facde77ef9edfdc0ae000199a43d5abfb0e9f746", - "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de" : "0x9d9d250aedfd4f3aec2b1aa86dc073ecf9f5c6db0d6a6deaf2ea836eecdafb28", - "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" : "0xf0979b906f161364616266d032e89b61518cc69b9f58197fd5a1b141c3013c69", - "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd" : "0x45f62c74a1547a4f2bae029d1f3144141ac9c7c79bdf39d0d4dd54d13dbf3ded", - "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c" : "0xcce9d48f851245d7113e44a97f267bec51d9c5c91efa833683357328945b53bf", - "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b" : "0xbff266b2007e0f66844bd5889e8d0d90535475ec0a03377984e0987c76b966ad", - "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822" : "0x8a6da2744401ddf52da08fd24ba91ef9196be029800150bbf9348d57c4fff396", - "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318" : "0x22831f701204d6072fb2c910fc16c84a05fa7c282a5eac31635de9395a599552", - "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a" : "0x800a8ed22c7a1295d8ececde5d13b5cef0de3ee4fc2d39fea71d375fcef2bdb0", - "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606" : "0xfcfcb0c068c8c5e19e0d4de7172b2742788733c16b4f9f0f62d7f64b2f976c8a", - "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97" : "0x6eec6c2191a712b362ba814d820e1514f4d4c6281b0cb9f8eae700f37e76c862", - "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c" : "0x4ed7cc649bec904d31075fb1ee785bbd89d44ccfe5a6ddbb420b4e0f736e26c1", - "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d" : "0x8ac6da7958820fca5173cf60dafba89beb19983370c6e1a6cb2122fee0f63939", - "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62" : "0x8f45fb362e234cc77248cf1c4eb8c4cf113acbf0acfd052ab4046e5c42e153a1", - "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6" : "0xe733b5b7a1a44103098c07a2d1c8959fb7d4a5e79f536d4fb230116efd11734d", - "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206" : "0x828bd3a81feb16c85851ae0790e3054090c773d93f7f00e249478b112d6b01bb", - "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12" : "0x1852204304bd76f2ba43e525142a93d7b0aa863f49e1abc2d57d24f1f7ac64bd", - "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4" : "0x3205185c4f904a819a07a2de90c13a3ed5d8fa81464d08d1fd2bda748518747e", - "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b" : "0xdbcf8cf3b72555080edbd1743f201d31c3bb64fcf73053b031cda80791d8fd82", - "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c" : "0x9339c2b34f78e0417dda1c5e141c4a08100878e4ef56221708f37abbe944449d", - "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef" : "0xd38b35c780fc9c29d73ef1a4ed5123eba10f4cf70b8db100ef285b37d53cc1d3", - "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5" : "0xe347218a40dd14b6936d5ac2b15416ced36e1a54a8e0bee6e546658dcead4fc5", - "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808" : "0x997678b3f2f0a811d107f0f6a29c8aab2cff00b1155a8a3ba58ed960475eca3a", - "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a" : "0xaabcc31cf69cb64339d756b91b0eb00744d05e4642b12b3209470d156e6b8835", - "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281" : "0xfae43f6568e718885621f60e1ab23578769f0f761ea4fe2c8676b1e1d8f51b2b", - "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" : "0x5d2d6a0c0604d93daf6b684f0aa1aa20cbf211e3490d21ca07b43e5f9a95eb75", - "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9" : "0x3422d63305e707a0920420ca8b2e4339d3f004e7156350b522ca525599cb0583", - "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b" : "0x8883be162cd46285abbde1ad3d31a643334894455532ab2ea709d87ccf4c7703", - "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e" : "0x8ab07863ce5aabd114f1f42f6d544d95a7c2b091dd9871b05283b9f45ead057d", - "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359" : "0x5682c0d7debe687117e00f0ed5eafe2f84f49fc38bfecd7bcdcb0b9796eafd08", - "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165" : "0x61367c5ee86ab1b47467010c8aaef137621bf80bebf330843d7deb81e8b965ec", - "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2" : "0x82b876bb465125be257ffcb65fe3ebaf566e617e85c7d14f2f14d0487655ebd3", - "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb" : "0x1aa6c00bae8d6ece98cb3f68af3a29c81cee18387f07e8201538c4aa4f2bed69", - "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a" : "0x38ba3fe5bd2f1f47b96dd5745196849b790c84b6b1d298ff7f27deed7ab42b88", - "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" : "0x3366831452872fb8687f292942e306c95db7ba7af9c5a1b01e8366ee337d4cae", - "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb" : "0xa526a6486f877e95af9440d79c103e610c491ddc7aa76bd16dcf6b26f9bfcd20", - "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e" : "0x20448ca3b845fe901ae27778ae0106e818bb09e7914446536a74ea2f78ce20f1", - "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999" : "0xb8152cae7c97fcb1c701184b36064c2c1690077c5d6f309d7c4a19b3ac4c57b9", - "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec" : "0x7e033a29ebf20a02e0e8db942bf450b257567bb8a6aa4d8887c306874ee7552d", - "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f" : "0xad95927aadffb8c2e3a31ffdb1a6d5fc69811ed1d24d8a5c6a1ef4603b221796", - "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3" : "0xae7cbb85aa28c27055d134aae2a383c55c359f858415564a9734b3d07a410fc3", - "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7" : "0x626e681f099f10fb89856c3704aeb94e98da90f4ac1463961d027cf3fd8d3261", - "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded" : "0x7c68d4823fb1b968f73c5299af4ca93f6e73ec0f13365c3d832965e03c5a8f08", - "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073" : "0xb4474e62c6d8bcca08e5a3ccb4297bbe160b3904e36b1963f77e332a8250a77a", - "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c" : "0x299e8c71168d42108e6bb585f80cf2e7ff356b532b7eb0e84b0efe9930622bac", - "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8" : "0x52becfac8b5c8b2d6b74591e36104060122faa33f493addd1564449371543acb", - "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40" : "0xd389078390725e729d089861533486f18335951a49d70c4dc72db5487a7269d6", - "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941" : "0x5c04d38d622306b4d2aab35193044975cc417ce2b4fca8756ee891d9a93cbcec", - "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f" : "0xd58792a59c93c78776457ea223e27a288707c4b9e67fb2de27f12f17a9d95fcb", - "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28" : "0x79fe7927141b6522eaf79da82a3d1a855a6c9801e4abfbb10c666cd4a86a0e52", - "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c" : "0xb5917d77ac60f66a07506a9d9510de662d978ddfd980ffbfd01bfa49e2a76eec", - "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137" : "0xaef705b451ce4309d1fbf88cdd9cd08f83fdfbfe45c236d9cf59cdee15b5f784", - "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b" : "0x754d1c110baab9aa7905c742dd04cf40156fb4ee0813b786fbe8fbf253056e7e", - "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad" : "0x7d63bf0faf1c040bba674564b1d3601a06b3b6c720fcd526c41e747ee41ef7c5", - "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa" : "0x38b1074a64ebfb45ac65ecc972c67b8ffcd9a6c05627f26e990c383092edb199", - "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412" : "0xaeb8c436d5a644bfb10fe028a5bf257983a81585e7a3136e2bfef12383a102fb", - "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a" : "0x61f8c6738ee1b9b3aad12383c3a7441c667292766c0af6ecaa60fa070b893c57", - "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41" : "0x1a6bfe708d8f36bf48b342c29fc27f307b99cecdefbb6368ad7540b7178691c3", - "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590" : "0x2d99f9f925ecc6830e68b89e734d5fe53f1ae956b5df24da50b3705c545e7179", - "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d" : "0x66c962bdb290bee925ab48dff17921f1f10f9f49a3424f78836d442051de677b", - "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2" : "0x40bba2b3896b2d0811666d6b2610039deac970762e32ab2d1b35719dafd02c29", - "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a" : "0x2d1f2da2e6f873cc2cf5407a3a276537a6e0fd49c43864c0ec0c46b0a02ee7ba", - "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130" : "0x7a957e940d979bb4eb9ed71af8d46e0dfcb46587392c4c957d8e596ded792ad9", - "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a" : "0x17a0779affa9e0d6c638bce00093bf0132040da831f51bdfe28e97526c4d49aa", - "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3" : "0x02b2a8ef659b0865b773340d4f649786a48c33af688940fa1176f008fd5de365", - "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27" : "0xd78eb3e217808f503f71ba9c6ec99f5c34c99b352bd0649010a712fcdb105b1e", - "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb" : "0xc2c00924b47ce5a4c51b455dff49923c77b4d66eef4953b5b7abcabc1ed80a07", - "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776" : "0xeda1dfa63f4ba4e9dc9a2dcfa9756b07422015d1e2672c51ab72d1fc98a0e49c", - "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477" : "0x0542119253115a2d4ef95aeef2897cf040b035da7c0a8f9ff2547e283390e060", - "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96" : "0x25fc799f175f01f02ed388fa4c63669175fa3e13e474c10994e56dc20e61f5ce", - "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2" : "0xa20ea5187b6fcd052963f09c5137a2aaa95110ed944ea1e8a92497a5321b3164", - "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8" : "0x3695bfe5dbd94f7e4a9c19d2a77eeee320bdb9db99c130f9bce95584d8bcf9df", - "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97" : "0x7cbc5ae417360eddc8acea5a30532a9aeb43682b776a1490b309835b0b18057a", - "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c" : "0x8228575ff9d761fd6ffc100b0253d847c038a8afeb7d2758ccbda4bc47a10a37", - "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66" : "0x281b29079ae27ca919d542776ecfe8dfbe5b74dbdcad3cd3b8ccedba94377b3f", - "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431" : "0x333c671a287e2f96a7a15767f1f5adc7fec4f8fa04e724ede39cee05f5f3b7bd" + "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e" : "0x40dc0e47c7532b510fb64643b3c159fa915d3fedc995091f8f4988851e64882b", + "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc" : "0xc7c04a8b26728e4799bbf4e1b1bc62fa3bc3d97f07930043124caba14ce6a67e", + "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73" : "0x89f9f365b778269000498306614d321ccbf5202f2c27c42b56ccf7694afb9aa6", + "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9" : "0xd3162c03a4d2e7ca41344534a71e00d452f1cb55714b76d8b4d4629558ff90ca", + "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3" : "0x73cf73bf1fca269741cfb3c1bffd57df6d8ec2302e6322b89275ac25a51186d5", + "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea" : "0xa0914ee7a28ccaf731e4f7d7cb7992524b850d4eaee644b9e5dd521fbb091ce5", + "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d" : "0x6dbe582bc7481c1256f6d4911363f60c8c0eb5a3db12cc4017832d88c09593de", + "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad" : "0x4efb93f9ef37311b041f572f5d3b9344bfa350347a00b174eb4564771588e253", + "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f" : "0x660181518c0f271779f686cf764fa4ecdfa42dd1ec739b1b49b33f5d232167d0", + "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593" : "0x2c2ba9ca6cc3cc89ac168e6c0b203b808de3d0a057e2841edc741df5eed48972", + "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e" : "0x813045ce58d6de022ce2bdb6ca47614f09dcd94d5bc81e8c97f726cd99322280", + "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679" : "0x235677967ccca2f61567c4c1cabfb2dfbb5df65351acb3eb2298bc1978516317", + "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf" : "0xe872dddd09ec833125df31db1e0ab9e78851611276c36da31d8e56d557383b62", + "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f" : "0x139058bd7a6205857a9157a751a68737a1a36a53a8a2bfe762ec89854a4286d8", + "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4" : "0x08ca5945ed936383ad2daaea44741f89e3ccac86e01b4bfcee4938c16591847e", + "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40" : "0xc6d699e04604f45d16c646adbc71f3390e925c1dd8405be870a46afec46a6cb1", + "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0" : "0x1be0b8b785162bf6a0c925aa9571febc6bc45fc52e305d038b5522880609ad5e", + "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6" : "0xa839103ba00441feec4196db2ac6e25d0c424449434233febc6bca8804a3228c", + "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a" : "0x8087f8fb619c044922261bf2725c82ddd131ea0cdd5bb45d6c641bd9b0ae2281", + "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a" : "0x6d84fa0d21d5222c628c63ef1097b87a6a2a7662f20d5dce57700252952e812b", + "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3" : "0x9c226b30ae83e97b125b1fba0375cccf4f4193c1b92f3f891b478677203e8e6d", + "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883" : "0x7f3276e0419a754827bc201047c5aab7101c2a30c5c07c942abcb63c2a28b663", + "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb" : "0xb98c122a0bef9a21b6c66a51066d104f0b7e0d17b3f0d3262ba1a09596df6887", + "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e" : "0x97fdb2150e801036036b2a65755e5505298fb8fe269cf05188a6389d52d1d3f9", + "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832" : "0x06b05813fdd6e8e31cf12ff83e4fdfd66ecb618f3b7bff757749373b75b8de1a", + "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a" : "0x70f5d481f3375ca82f7618012acd45b1542e5f03644bcaa6dabc682f678ebd18", + "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606" : "0x80da9558684486cdd0742b4921af9f497fab0627017613755dd03f06191ea844", + "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941" : "0x561e86691a214c2dd9ea6ce052ab1379d3b3c69dcfbb1accfc9b6ad5b8795773", + "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192" : "0x18810043a934f082f417585ebed52638ed6bf9a25fa25265b9b6e346dbc89722", + "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f" : "0x870677ef2703b8910b5f1524dcb33d8f4f116e6553d07d15abaefec2c251f3f7", + "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421" : "0x2020a356fca7d7a2c23a8d453a656234c3f7a135cf0f69de76bddf3c37eb224e", + "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4" : "0x253b2bbbfd0e864e9019f1aff6def52a0a8572ce168f1ec0f85f76d9c1f0770e", + "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137" : "0xcf9066ea651b64609e0a42754130367c1a02e2e388266d43c1a1f59e5ee4b23c", + "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98" : "0x18edd6764583e90b5a8a4d11b2a8902a225818e234bc71ba73e13d569fccfc69", + "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3" : "0xde9f8dcb0d99577e01f13c936b40e62c6e5b8b1950147fdca0f85eeab1bbad64", + "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca" : "0x9f96ee590406f0d978ee11c0bf742446162a304f50cac08bd39d686ca230140d", + "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97" : "0xe6c05b9769d102f88ef6ebb2b7fd20b647c7d34a7f1a401668f6dfc40bd1840d", + "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f" : "0xfcf5833a7d3c2f49e2eb8b4fdb1c84ab784c0bdcf260ddd952a159ac167075a2", + "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c" : "0x902246786a371b96d2541711dec59ff76a5e2d60c17da53ef9af26c7cd1cba6a", + "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f" : "0x8763a5cf6d2f2e874426e2461e8ffe9e37075e6bf50383649d8e5e6ac2591a12", + "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2" : "0xb3806700fafcca1c74b04f642761a59bc575c99aa103079f712a9d5e83c1ab45", + "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d" : "0x627bdff59fa6f797540809c4a95fb8bba638b08a772ef6addc9e6148a5ae6fa2", + "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9" : "0x10d2154546d3c5b312fac578cc7e6979a29c8da3be893fa5d76f6695c22a819d", + "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7" : "0xbc6519d63b0e16eb4ab51162c8c4980ef1eea5d7c428bb7232cb8b86db17b57c", + "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378" : "0xf457b3a34866a1a2962b05c297f64567bd39fdcd67dab69cf93357427af49a95", + "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc" : "0x9f87bd62394aef7b73c9c69800a802763dce97b9d5d6dfa2c885f8a374ab9fc0", + "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8" : "0xda07ab28353d27ccdc834db6bc20c109d10e03a4d4fc0e6298a71a70d8c942f7", + "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937" : "0xd1f61a7fb2476f8aaae36565f358ad8e8db43e57dc155f3121c942696b8f40b8", + "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb" : "0x68bc94bfd55998bcdfe91174a8e51e1fe3702261a1b36124f7424e8dd530008b", + "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7" : "0xc2461a0dbe0bf377d27c6b7edea393052f9f229e1aaa9452c6b4bfa73da7f06d", + "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967" : "0x20dbaffcfdacc1fbd706fc465e00ab32de7cef3a53dc55ea7ff253b9e5552dd1", + "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93" : "0x82a4bf6f19b5b507fb8c5da7f1753240ba20683744d893a6a7b0e02065c31c17", + "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced" : "0xda90ad0930dabcc75eca7160a54fcd8e11a120ac9a5ea2343b9b0a8d41213263", + "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8" : "0xe4e9c46acb68199cca90b72570f98201acaac095d68bdf8d0efb99dc19381583", + "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8" : "0x79b7fbef05b1517da88a593acbaadb335eb5e7a71e0d8af6cf7915ac7ba4d8b1", + "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7" : "0x5dfb2f1ccb3ac9625d0e192142d970cb11cd577c3abdd8ef60177ec5dadd9919", + "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e" : "0xa8bde60edf6cb161b72d6330cf105c5e2cc04fef56bb1524add907626baaaa8b", + "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b" : "0x0d4113ced47ca07dc7824d0cfe5a940fcd7dfadc984d9572fba398567e8da0b5", + "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f" : "0x1a6affdf8e2bb09111de3bbb3a5f278d22e7e39cd780930cb77ecbbbc3e065f7", + "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e" : "0x574c2b00546e1bf55555eefeaf3f7f384108519ea49500e092517d9455d16edd", + "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f" : "0x4be83384eef315a158a5543005ec58fc261cbb2e7e154b90190afaed2b80bde4", + "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb" : "0x0d29e3a3b66b02a1df4b54aa2dfb94a21c90ff460b7f0ebc2011b33a466dfe5a", + "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758" : "0xfdeaab644af9ad9b0ecf442069766cf462c7552ebb9f2f1087f4926798300b34", + "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033" : "0x31ae40b88e9250f9c963557c393403551fab9d7be47e6b03c827a4979b12d766", + "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4" : "0x6b720ee332c35dc18ed0914b1bca6759af364079d8f8a43e5383319966c56f31", + "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183" : "0xca1950714e2bfaa2c7b2ba0430247baaceea8e420d9e1815f6a97af28509b467", + "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96" : "0xc8706e01c12a79a4722d905a9cdc200a0b9265a220b3e774c259be162799807c", + "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193" : "0x8020fb77c33a43a12e794a61400345f56fa6a5034ee160bbb98581ef4ab86963", + "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc" : "0xfb28dd693e10796e16dc227cff4b6f068f2fd3c62e6fb624072c080b7b856246", + "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d" : "0x017613a64f40325bdf37007d23a07efb9069f83d408a4e032d7dd1bdec4a5e5e", + "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24" : "0x65c3821c00042d518fbe5618c90eeeb8be5ff83d6c9b99cb54f85b12b1dc6f00", + "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1" : "0xaa0cd084c0fa8aa7aaa6fda9d6078b5ca14880265766f7ec9a607dd694e79d36", + "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204" : "0xa3419c1a3d385ee9ad25728a6571210e51f4df57991861a170fcd097eeed4912", + "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857" : "0xc045d5ec0e280170313613afa2200895419d1d65b5bbd33e8dee0c600bb76e3a", + "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b" : "0xdbf643f32acd25c4f3132c9feba62d7f113d84a385e859ff869efc0085ff0e7b", + "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9" : "0x687d8656adef36228796a311164e99a3c9843cf571541451eaee08e47bad1bfc", + "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de" : "0x16b87881c102d0de55b5fbfa3e5559877a2f8f66c23a326a7bf19d3c49631354", + "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538" : "0x88fc2033efad9b5bcb3db06753eb2474638d271b1be3623d13b6d9e3eeb89954", + "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b" : "0x5711b3794e45df99e87db3e04de5f40310376f659b75e567f42b2b76ce87959d", + "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd" : "0x6802b4b5ded44ad628633057be43b9d7b2b8e082c0210f3d16ffe762788d614d", + "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb" : "0x08949235714561e4927b5669f6ddaabb5531cac8e8163947b9989353342dc623", + "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba" : "0xc726563077eeedfac8560df99f9281d7352e7f89a290e725b4fcdc7ff7e0553f", + "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206" : "0x33d6acc01a0ed77a1f0a726f41da5638c34cb663fb249ff2b0863594f50a4760", + "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02" : "0x87bff43e1fac9b6be2b7800968e96c02de8ea12741e5a5c63c695502796f5593", + "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359" : "0x5aaee83989806c89786461755e41e64f97d8fb6452e5a033bd5ca50a7f11fed1", + "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29" : "0xd2f80da3e46d74c86219f9901242aa6223f3d19cc432c89b2bc868c4ad4754ba", + "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb" : "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", + "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed" : "0x44d621c9245e9ab1493d108424f71503bb81cb638988ec62cbe2245cdd8c6edf", + "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14" : "0xae0e979110319039d652dcf126233ec02c8160b2bc04f44f620c00efb81ef413", + "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e" : "0xabc4eca741386b8c062684439f015301b44807e1a24716f8919499055463af9f", + "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e" : "0x12d2131451d987a977250ce3b3efb7d75ddc3580df0a3ecba6a924c61998fd1c", + "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d" : "0x216316cbbb30b6cdaf016175b66d4b8f2b61de9c6800bef18c6ce51d727526a8", + "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376" : "0xad84d1830cd1912eddb6349d7d23b31e518a1a68d5ec499e792ac716938a6b14", + "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808" : "0xbf68ba9d294219d26cce360800f5c4c76235d85a370d1a83e408a6013d60b655", + "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae" : "0x3a1577fa55499f98478348448a3f0a8f3aaede101de82ee9aad434ef4db86e07", + "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b" : "0xfb647ec378c9741fd864c301808bbf4701abe2b454860df360a4c621e2b7d355", + "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32" : "0x995c13519980e8157a270fa3090eed2972bc4f9d018892a24158ea1e2375a008", + "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b" : "0x8a05868f897561e26aace362ecfc525e1a50a809ed2599926a76eb14431e8a13", + "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd" : "0x86c739bc36a97c40fb1c7fa689dd5f1f34866998748c8126096c36b0b0596966", + "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d" : "0xc42bbe07e081ff22647983cdb1817a1df34ec6a73e95dfd223ceab0a81a170a3", + "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded" : "0xf7069102183ae080ea053bc11cf5f53852f64cfa622cbab5dab6694d0488d87d", + "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87" : "0x6243f4d2ba7b91daf74f193a22cedd0ab58e10e008df65362151b82af1a37d5a", + "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c" : "0xbd366d16350179afe78210b20dec5b9b4f3fd407408eaace62e77ff45d0cb1c5", + "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8" : "0x0818978faca0246b90e5117945b01b308a13dd8abb635e91b44ba79a8614e7e5", + "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f" : "0xff60f7d627d852611728005bf6f8e626d2884b3719e2e8481e50bd2dbda559b7", + "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f" : "0xdcbd29996cb740650e9a4769fad54bc1eb4391ec7b731afea8b37c686a9c9b63", + "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" : "0x6a665095260910e6331d7a08c151739ab068bf01e5b3196b05deb72d9a534473", + "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b" : "0x212821dcbfdeceffc28b740fbede9850044ef58e526a223376406fb55a4ab8d5", + "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161" : "0xe544d2f578939aed76745f69962725a6fc5cabd3999b23b6d05490a120772b95", + "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073" : "0xb26e53863fe6cb8a8141152e1eed7f72e8ba4e40c0c69736f9531c70952e9f2e", + "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c" : "0x31e8c88eed0ca91a9d23f9a66a3eb1c2f9f73624903548c0010fefaebc1e044a", + "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d" : "0x89d12b55a39967c6656603977285775fc8e90058dafccf66fe6694d58ccec312", + "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2" : "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", + "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c" : "0xa9cf9c0bf6a4a3f4f1cdf9fdb047b927cd930137e60839c7aef1ecb2d6b7fe41", + "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c" : "0x4f1307589c6cfe42798097125162d36003393f5b293fff6a8571a15f894918e8", + "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a" : "0x5b155d95c7bfb97bb58a27aa1559479edb4b2b1829b91822ddc75e299a74a341", + "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd" : "0xa71f0638d73b0d574cb1da446cf31438b06f3fb1596f21853cf26db208a6984f", + "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b" : "0x7901a095fccdcbf046d17189f00c234fd67a5d053143bb9544c15abde452cb82", + "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5" : "0x957b0fb1d5a2609abfaccbf53a29b610e60122917f9c62cfca4e5ae0f784e365", + "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266" : "0x391aafe578a4cf669bf7669288ced3077539eca239dca6fd145144bd8c8e67b6", + "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c" : "0xe969d6a05d2c3f1923310ccc968755956c5325ef0a560d1128d4058aaef9fab8", + "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7" : "0x2d568c6a763da478ad1f5be4876edfb2a21db1052ff1710ce29a5c69977e727c", + "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321" : "0x0f4efb76e8c4adeb363baf0e08c58fe6206c221ed8a7bd19d814518621f528f7", + "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106" : "0x6e88d415f6f69b8b6ddb138417dd657066a7c5626695e64bd1231397db822891", + "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634" : "0x66b739fbbf4e599809104a284bb6fcabeb1ded01b40eec6bdd103d54a0262aa8", + "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d" : "0xd9e0b9527248da6d7ab734183480c7c0f4a68d763efc3e9ec14225315e77ceef", + "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154" : "0xcfcadebffccb36f209cd882606b5266705aa3236201c4a78acaada2961c5c820", + "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa" : "0x90cfcd7e8f730eff4f7e5ce866c4c382b74638ed756673ee73849b0f091e428c", + "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93" : "0xa26749829361ba584fad065a85088df40da3052d94524543af68745d072113ce", + "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722" : "0x915e825251a3a2bc2dfb7544986493f11c49db28c470da6bcda295412dcc485e", + "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41" : "0x572f9648daebce7f49c74a4a6f10675d26e1022e4254c7e561153fd830436d6f", + "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62" : "0x4c44d38c0595cbec5879d1a391c0ff09c98508e2248738898e2265ce6db50de7", + "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6" : "0x6b2f9691db98716d60c608c04710e1126073ae960f4ab612b4517970730df813", + "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7" : "0x6b908407d2a9c19cbadbd82fc46f7c014ef4d4f2417ce87a9bdf7961027d12ce", + "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999" : "0xfa3ea46867381a5a0c77d7fe02c6e1019e5b21ec9bb01648fc0556b5ca82e324", + "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e" : "0xb6ec2a86dbc4260cdb09d0d03ef64735b17e8df52bd4a99855f3cd4459b55cbc", + "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f" : "0xec284a341e94877de26c1fb3c8c4cc4496dde67c21f98c4edb2fc22ee57d32fa", + "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a" : "0xe32b657e501e960cb22441cc0fb16241d1438957a7a5cc29f2f3a4534f606de0", + "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27" : "0x662c008d0cccbc8107a3d04a4ea6f24c0f8163034c511a65714880558d05b5cb", + "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08" : "0x3ff14e99a0dc75a6eed6235377f36b3aa898ff24c770fe9964abeb85b4df110d", + "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02" : "0x4a86bcc123a4acaf1ec17202ca55c28604b9870557b5678677c379ee6d91b56d", + "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd" : "0x899f4c28403478aca380b850046207904abdc72fffd40a2dbc4c7877d66b3b35", + "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb" : "0xbc7876c742ce955abc903c2cda4228f2df67011177c39de9e6e58865e50851c2", + "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97" : "0x570cc2a509139e91c836b80b84bdeb43fa9490122942b841437749d365c9ed78", + "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964" : "0x8cd103420eaf372dedc1485f20bf1a089c14740fa9166ae58dd588171afecc52", + "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21" : "0xfd826b5aa4e68aa98ad2f8ae82a252976dbabd0695045cd01f8c7eea4a59646a", + "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec" : "0x60b19ef0942c206064d5c79e10f61f3ebe5574ca212eb0b03b7e9c976d5222ed", + "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f" : "0x99a14a6d2f452f9321a3813edd69563afc4a80613ad66a3b1be509f4782a6638", + "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318" : "0x91b9aaaca37fdd549d4a698b75ad9f8e45029cf34b7ce65185147b7ce7c460ce", + "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880" : "0x985119764fe557980b1e2e4af0c17a9d3e78805242298480e73ce1e87a1c7951", + "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776" : "0x9dd39656933fde0e214987f75b6eceede8ea1d8dec6e9e57a4fcb576f987432e", + "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3" : "0xc6c8db69035622ed4b0ccee051a7fac449d006316202ef80fadfd021483fc0ac", + "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef" : "0x6d2a9db48b7d7a73dc2c6351bf94d84416a2e2bbe1478d36553ea3cab3b4c6e1", + "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5" : "0x0226ce2235a29e57bbcf9de83410da44ae93af36a6cb47b373429dd89cb21ad6", + "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a" : "0x9f0c7efc58e868d7382c9e61e204766fdcc93528a172c47f701affafd6577f05", + "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590" : "0x1f2f243b26337f649a95d5f20c84980e00f33295771322779f6a6856c7de6e72", + "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad" : "0x48ba7c9a39b50754c8bdbe64f606c2c840ea05c234741012330db56a37bbaff5", + "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d" : "0xf5a9c79847a09df6b55950a5ed5cb07078d4c34c6386ebfd48ad625832d951ac", + "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5" : "0x32804a1b37c53582018eaeab02991abe455132d480be9af7d35626f6f841c151", + "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" : "0x213c2fcc946dfbc2a27c1728a27bad028af6e0156f98d07843e7a09acbf2f985", + "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530" : "0xb3ad4ef14d38e165d1866fc07fc818c898441ff18c547642a5f21127b93399fb", + "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d" : "0xbb789504ec8c1d05f7ccfd03c96f743a7a488e6dc1e025f15fa9793e40333561", + "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd" : "0x4570ca77c553df40101445a1a2c29661d314b5b823ee882d3c1f0735abc2aa35", + "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b" : "0x82775f3a7544fcc0376ff89240d253d2a360c1ef8067a78bb56ef7a5f31f3d73", + "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f" : "0xf5e5350a8cab2d1eeb903ca826150beb15c04824eb78cd75f4ab1207e5b5a0ec", + "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b" : "0x329c1a63ee5b75c6659c37463776428a810fd05fa4759662f379b3959ad59a5b", + "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822" : "0x02c2ddec95e6f6200c1e605c3f4f8522cff8bb0ae7def8c4783c954fbf638682", + "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c" : "0xdcbcfd6fe23074210bfd9d3fff4af65f9308a5acb71a20b08977d1d46dc7eabd", + "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc" : "0xdee0247ddf71ada4d8e22a7b412e9dfe038a62770d9e9026c1648787219e7281", + "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b" : "0x7510aec1a8a7b73642c4d637bc4e9a5b8267d17453fb91c3b7f11a9c51ec7d76", + "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4" : "0xfc61f7d213551954f388fd5053d28bd6e38930f761454e2e8bca494b6243741f", + "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2" : "0x5e1b139cf1d519718f48ebebcb4f69d0a0d33cd133cc544a8aaf40460a28d9a5", + "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff" : "0x747bf8671e8a46f9ed192e495b9473fa6f4bfd3ab951ff5791857481dfed0206", + "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7" : "0x59918c1a3ff2cfbbc9b23bae44c283841900d9f1f1d72e95f3e6f6e257f8fab0", + "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2" : "0xf24ac7808e734c74f464584e7a8e8b0fc2bbd18ff3ec0af4b89f4315e669161b", + "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749" : "0x00e20c455eb5f3644ad29893a827ecf4f0e2279ac94d3c7342eaa8f0e64f0b2e", + "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5" : "0x88a716a60e3580862cff9c72a0b01bc51887ff770208dae8c5d8b5344be9be4b", + "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431" : "0x2376fee0c2de18dfc2ad36a2ea739252c15728720b96d548d3ac40a94d305a88", + "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a" : "0xa1472f80e3c42338ed73a659ea45f785bcb98e12ede94b35cf86db32c9672012", + "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0" : "0xb4128041762af56bf5ebb5cf23eda0055aeb9b2c416b5508e0161e97f15a3498", + "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256" : "0x12c5c355abc7fea0d8500a67ccd4a338839dfc862522dd92b2e31c40f740bae8", + "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6" : "0x28ebb25d7d1324344461461454bd3a0740210d2a7a174b2c6f67c466b5cea1e6", + "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519" : "0x6fea5bed3c94e8c368cd269398755d0293a204688fc038fe1f09b24d2879bbb0", + "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021" : "0x0ee3a94e7e8f0f7a764c3c712057ea1df48d57ea1f2b1a92e68aaa844a99beab", + "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd" : "0x276f27e9dbce84ab4a1a70b1271d24c7d3ccb2917e7aaa3b052e07bcc06fd68a", + "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064" : "0xf58e253eae96810e1bf2bf70065ffa790080bdbd1f0130a0dbb0a81073cfcccb", + "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2" : "0xcab0caef369ee790373127dad1c9f8fb6243853a4fb4678b2e062ecf2450789e", + "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860" : "0x9c7c49bc8a0002ba1d3acadc2e3797eea191af846527b179159b91ef4d638207", + "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21" : "0x360343818334fd0f4420dd0b989418dc5bbbc6554193b1ef9f41cd5b24ae6803", + "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15" : "0x671cc6ecbc12dcd26e6242f39fcf222e4d1291677dd627155b888983df0fc683", + "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66" : "0x9c697dae8d53325258fd20200f5d239261b0b7c5b05aaacb4c7646896c045677", + "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd" : "0x31d3ca0a9372dc45eeea6838d1d6e824775a00e4527414028abc7a8571fcf8b0", + "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919" : "0xcbde31643c45d3d972b69f46c0388109fcf2699288b92be2741ee8e24a09bc02", + "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984" : "0x0cf0445e1de7149ecf509d9e81df11f5cd3696f2289f061c91fea2cca84b19d8", + "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28" : "0x66cb2538d6c0ecb7e6eca68cd3eca5fa50042cb328eec3d7c71963a51e2b99b1", + "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d" : "0x8be10a0269a7534d1800ae330a5b7fb79d22d3e4f57a30d7b687c39fb138d185", + "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea" : "0xa69a67e9a1f671dcfdf4e1d09f8deba61799f32c77b5f209192a861fbc3d2083", + "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" : "0x8899a5649db0099f3a685cf246ed2bd4224bc2078fcaf2c897268764df684d94", + "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1" : "0x69c3776a1d09ddf6f4c69247a1cb6a7074ae8061ea517b8287a38bb07a3a964d", + "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412" : "0xbcc572307d5aa33ff3c3ae9c121332a8a2f53fa227163839d4b2114abc21a440", + "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73" : "0xb2008d67e8d03d4275af3f7c24c6008a81f917b32cd66193dd1f35cf88b20abc", + "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7" : "0x5c21d65d714feef232ca493f0e3c40362489ee6f35eb9a224d250a0485f906ee", + "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2" : "0x85fd57c6f2befbe0c354ce22d6131628ca5b0d7d3c9c413f494a7f1afc1fa376", + "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c" : "0x18ca0f2912e8eb3ea6f9efaf69797f0376a001a658bc0b5e4f89e9c63b5cce41", + "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d" : "0x3ce91f020d6044ef2b7558b6412db7611f5b78a8a1d9ff855100c16be44d3fd1", + "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621" : "0x1d0f15325ab3b33ec6d713bf5aeab500622f8a99b25fd7ddeaa97040de311a06", + "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994" : "0x1dc6c49cfb12c5960bd6bb726e67682125df7ddd0cc596cc53eaa0d3c80e4abd", + "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66" : "0x8f73d176d4961a02877b04fff44baf9fe864c488e00fe2b0add60b2036f2acee", + "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f" : "0x3b3d353e33465a732ab16820a1d040043d8c9a4084fe910ee3958e547adf673f", + "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048" : "0xa536e7345d2ec59b54bb2fcb36778dd4e05dddd969bdb8fc8404223c5512ef36", + "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165" : "0xd09185f027213ea12a551fa49fefd5bb3eba8df3622cbe2e3a073a7489eb6f9a", + "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075" : "0xa6c777046e09f028aa7611ebba6ae3d6f9c2fa39321936e13041e22542a588a6", + "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6" : "0x89b76133e1787183b12c753a6cb03484a274a8b3a3438e7d0a467d02271f5dda", + "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748" : "0x18f6136595c863a09cced4b37ffab98f95eb6bdd1987249e98529debf72b4102", + "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86" : "0x0a55ea16cb0728a58e0cf5b5fe711c1e6b12fdfa33f38b579508474d6987804c", + "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588" : "0x5185bbe53391af7d87bdd954023f9dbb4f1b50714aab021e35eb99115ffc390d", + "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993" : "0x3e34ae137afd1c5d432325ccdcff0342d7a18d32b99911f16db9117176c95846", + "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417" : "0xced35c680fadca7bebb6ad82b16a57b9b9a558698853003cb31c3c13dabbc5d1", + "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b" : "0xa1e2ec6a42138ac047c208bc10e6c614bb27efc5ce4c9c7fe900fbcad9a34151", + "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e" : "0x478e6985fa6faebc6d3fede65a104433c1ba363e3a9c447fa3fa13621dd206ec", + "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6" : "0xde0c17b2eb029491050a4579ad659858f86b497ae112fada8adc842eb4d991ed", + "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8" : "0xd87098a5dc2ce4c760707b72bd257cfe45ef63552834b23343770be399adf601", + "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b" : "0x11a76f49fe5fb7f31addf2e036c813ddb245c59fbfb7c935cb4e0fe9003e0b52", + "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b" : "0xfb12bfdf9a8f91e20d38240686c6181755c5540ca6d45f632cc0b4f7e79b1d96", + "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb" : "0x313c3bd1b1d331e65dfd53ef881306a2d9603a38745993ed4bea216f906a6ebc", + "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b" : "0x2334548c84eb206f2068c1c94ab7affd1f7865472643ca66e60978be1dd4353d", + "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e" : "0x8238c4be5ef44106b78c46451fc005623f94973764d3d8acdadbbebcc644a634", + "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12" : "0x95cb9030d1cadbbfe43ec5ab9a74c0c514b42efb89c0fdccf08c90310cce5672", + "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3" : "0x6b3b3dc9ecd2c4074c7276b11a8785cbaebde39154604f9019648912fe2e9507", + "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063" : "0x334fd150faab7b49551bad92b9eef6d0a39df31e852ae20c9495409a087e3382", + "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a" : "0x89d110550810e8029c344cfa53e0edbdead734f676f980af60b7cab989372539", + "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477" : "0xb6c077401eb8f8d46b03686253fe0143a54686ffce48f1c3b8a30441c814d092", + "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" : "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee", + "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281" : "0x1bd25e8b945ebe80773524e168ba2c22850036f5d5717a663da0a26ce5bc1a4f", + "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2" : "0x7896f3676fb73e4ca3381d888214541475dd8d05794dcd58af589e5eee7ee2d8", + "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a" : "0xffb818ae0b18d6b1b586571fc17ac4904ffa90207b781f2405e82e3495dd2a78", + "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc" : "0x1ff6104c9bb0825a0e9775117570f8557c594f983714baaf0e01a46483e7c1f4", + "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee" : "0xf767e81a16481014b4893bfe78b9939b62d98cb47ce2070f4c393115bcb96ea5", + "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d" : "0xd1a4e6b7f5a2d8d33fa8650ffb890fa85d0a813fd6e01868015b2bf0857deb14", + "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8" : "0xb66db08b306e6cf55f2ded29e4cc2abcfd58536f4a119aea2e7d8e8478d88e4d", + "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c" : "0x69555e01ff36f34c60a130f072f5e8a99a68bdd8955c697a0707b9a35aebe4da", + "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e" : "0xe80724f68a22ae781c5d58ef82083bac7cc18de84c3b484941f381fc217034b2", + "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51" : "0x737798b005a43368788248e888ea23bd660616fd0b0a0658fbec7d2f702b0827", + "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a" : "0x1af8d7cd4e1c570b060dbdfd237a9fcc8165cf9a327ea6c06f227589cb32676b", + "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130" : "0x37294785df603e73a956c1c5ae7aa0043d74040a0e2edc74df63df9c8e8705fd", + "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f" : "0x86d1f2036ebf557f94798ccdeeb6b7ac9ec7cb6a2625a45c847d510c82709b39", + "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7" : "0xf8b78c0b2dc5df968a31797c9fcee401462c715d400d513dcb16e19a7646d7f0", + "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62" : "0xbbcb57bcc3dc40b43027564b023ade7a335bb7486a0975f388b7bc209ebca378", + "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494" : "0xc52b28732dca60be94fdc83d6b5a61fe5d04d2b8fc68176b3bbeb81f52a83d16", + "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93" : "0xb9eb777dd43c1619f2633455bcd4804fc528be51f8372fbb38fd42ef99f9b31a" } \ No newline at end of file diff --git a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts index 6cae378026..d98d95b74e 100644 --- a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts @@ -4,7 +4,7 @@ const provider = new JsonRpcProvider( new Connection({ fullnode: "https://fullnode.testnet.sui.io:443" }) // <= NOTE: Update this when changing network ); const objectId = -"0xb2989cd62ec2c2d031f3fbb7cefc0784e0325e73edd5c252019e931ec98bf065"; // <= NOTE: Update this when changing network +"0xf1cadf5316e1da9af0126c4851a3769b7d77d1cbf053037d20d46484cfc84846"; // <= NOTE: Update this when changing network AND with new deployment async function main() { // Table of Sui Pyth PriceIdentifier => Price Info Object IDs diff --git a/target_chains/sui/scripts/pyth/get_vaas.ts b/target_chains/sui/scripts/pyth/get_vaas.ts index 3d566de4c5..e498150aab 100644 --- a/target_chains/sui/scripts/pyth/get_vaas.ts +++ b/target_chains/sui/scripts/pyth/get_vaas.ts @@ -18,7 +18,9 @@ async function main() { //console.log("number of all price feed ids: ", data.length) let data = [ - "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", // testnet + "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", + "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", + "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" ]; const priceFeedVAAs = await connection.getLatestVaas(data); //console.log("number of VAAs: ", priceFeedVAAs.length) diff --git a/target_chains/sui/scripts/pyth/init_state.ts b/target_chains/sui/scripts/pyth/init_state.ts index 68c6b42e5e..cd2b72515e 100644 --- a/target_chains/sui/scripts/pyth/init_state.ts +++ b/target_chains/sui/scripts/pyth/init_state.ts @@ -35,9 +35,9 @@ async function main() { // NOTE: Set these before calling init_pyth const upgradeCap = - "0xa8ec5206fe1306433bfa7925d97f9eba8394442cd08888d965341185119656b8"; + "0xc9d62cb6af2937ec1dafe99a7e1f85ecfaaa05800c1a4fdbec1a9fdadcee7cab"; const deployerCap = - "0x4d294a17405992e04e220991bdb6768b7f261f188e711a962cd2a8d45fee2a8d"; + "0xea1aeeb71a4607f1ec61cd3573be44eade6150af407da95d15ca283dc6bd8921"; init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap); } diff --git a/target_chains/sui/scripts/pyth/test.ts b/target_chains/sui/scripts/pyth/test.ts index 458aff1cc0..25303d28ad 100644 --- a/target_chains/sui/scripts/pyth/test.ts +++ b/target_chains/sui/scripts/pyth/test.ts @@ -1,4 +1,5 @@ import axios from "axios"; +import { Buffer } from "buffer"; const price_ids_to_price_objects = { "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", @@ -203,22 +204,59 @@ const price_feed_id_url = "https://xc-mainnet.pyth.network/api/price_feed_ids"; async function main(){ // get keys from map (price feed ids) - console.log("price ids published len: ", Object.keys(price_ids_to_price_objects).length) - let all_keys = Object.keys(price_ids_to_price_objects).map(x=>x.toUpperCase()) - console.log("all keys: ", all_keys) + // console.log("price ids published len: ", Object.keys(price_ids_to_price_objects).length) + // let all_keys = Object.keys(price_ids_to_price_objects).map(x=>x.toUpperCase()) + // console.log("all keys: ", all_keys) - let { data } = await axios.get(price_feed_id_url); - console.log("data len: ", data.length) - let not_published = [] - for (let item of data){ - //console.log("item: ", item) - if (!(all_keys.indexOf(item.toUpperCase())>-1)){ - console.log("not found in keys") - not_published = not_published.concat(item) - } - } - console.log("not published: ", not_published) - console.log("not_published length: ", not_published.length) + // let { data } = await axios.get(price_feed_id_url); + // console.log("data len: ", data.length) + // let not_published = [] + // for (let item of data){ + // //console.log("item: ", item) + // if (!(all_keys.indexOf(item.toUpperCase())>-1)){ + // console.log("not found in keys") + // not_published = not_published.concat(item) + // } + // } + // console.log("not published: ", not_published) + // console.log("not_published length: ", not_published.length) + + + let buf = Buffer.from([ + 139, + 98, + 134, + 111, + 205, + 58, + 37, + 255, + 145, + 24, + 80, + 100, + 68, + 233, + 254, + 81, + 113, + 230, + 124, + 97, + 160, + 73, + 244, + 180, + 253, + 172, + 219, + 195, + 26, + 232, + 98, + 187 + ]).toString("hex") + console.log("buf is: ", buf) } main() diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 19aa2283b9..10a2d8ceb6 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -50,14 +50,31 @@ async function main() { console.log(wallet.getAddress()); // update a single price feed - const deployer = "0xf0bd738bf137f4cb0601713e95bb9307a5efe8d27f34c9e34f419e17b4e74099";// testnet - const price_feed_id = - "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb"; // testnet - const vaa = - "AQAAAAABAK46ShchGcySL+D7xbyKdz6C3FxGeMlAaAmDrb1l2LQTRsY7JOCMcKhvhYUvi6U+50JiFO8/AUudI+d5a4RZj/IBZFUq5QAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFRKgMBUDJXSAADAAEAAQIABQCdbQGa55bF3PAaj/dFvylmM/7ksc5l+Znf6Dh2cLQS04AZeG8x6F01mM7Nq4ELJ4feD8IsLPmLTxb7Hlv1Z6CkMQAAAAACwJuKAAAAAAABP5D////4AAAAAAK5q0QAAAAAAADnMAEAAAABAAAAAgAAAABkVSrlAAAAAGRVKuUAAAAAZFUq4gAAAAACwJSlAAAAAAABOKsAAAAAZFUq36meZwvnpS94J0Hz0p7r3Wf8PzJV4TpTWn+5piu04/t3i2KGb806Jf+RGFBkROn+UXHmfGGgSfS0/azbwxroYrsAAAAACQzUggAAAAAAAU8K////+AAAAAAI90/oAAAAAAABzswBAAAAAQAAAAIAAAAAZFUq5QAAAABkVSrlAAAAAGRVKuEAAAAACQwGpAAAAAAAAgfMAAAAAGRVKt9+Yw45hhOUDjYjAl2plplx0/MalDbZej7hWqfLWEavS/cxEtStJv03zxjKmz9+bxpWK1lly8JuRIilQFUvGAcuAAAAAAAFHyQAAAAAAAAEgP////gAAAAAAAUXsgAAAAAAAALxAQAAAAEAAAACAAAAAGRVKuUAAAAAZFUq5QAAAABkVSrhAAAAAAAFHyIAAAAAAAAEfgAAAABkVSrfD+5d3AdqlvGg7TGQdX5DE6SESe17memDpYdZE5ORzgVs1cmcbYbfkosFYvJmF93vQAgY+JBzkfMIeWXmt4awswAAAAAALc8CAAAAAAAABm3////4AAAAAAAtgJUAAAAAAAAHJwEAAAABAAAAAgAAAABkVSrlAAAAAGRVKuUAAAAAZFUq4QAAAAAALc5GAAAAAAAAB4YAAAAAZFUq36lo4j3CfwMhZ7N8DkPz3CwQlXKtkOtI8gyvkMqhah5m6wDh+FhUnhIDT/iAt1kkVqcbQjeq9K6xbmPNm2i6TX4AAAAAAO7CdQAAAAAAAZX/////+AAAAAAA7e9ZAAAAAAAA95IBAAAAAQAAAAIAAAAAZFUq5QAAAABkVSrlAAAAAGRVKuQAAAAAAO7CdQAAAAAAAZX/AAAAAGRVKt8=" - const price_info_object_id = - "0xc2c00924b47ce5a4c51b455dff49923c77b4d66eef4953b5b7abcabc1ed80a07"; - update_price_feeds(wallet, registry, vaa, price_info_object_id, deployer); + const _deployer = "0xf0bd738bf137f4cb0601713e95bb9307a5efe8d27f34c9e34f419e17b4e74099";// testnet + + // Price feeds IDs of feeds we are interested in updating. + const _price_feed_ids = [ + "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", + "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", + "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" + ]; + + // Batch attestation VAA for price feed IDs above. + const vaas = [ + 'AQAAAAABAEV7/X8bjY4dpfT1vfNn6yxAvQUGDw5+cmUcs0qKddnPOc76sAVA76QqcRJlGGNJFOyRSVxEtejb5ufqIx99BrkBZFWgEwAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmE0BUDJXSAADAAEAAQIABQCdbQGa55bF3PAaj/dFvylmM/7ksc5l+Znf6Dh2cLQS04AZeG8x6F01mM7Nq4ELJ4feD8IsLPmLTxb7Hlv1Z6CkMQAAAAACxD7OAAAAAAABS2L////4AAAAAALD2yUAAAAAAAC9PQEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAACxBwjAAAAAAABKLcAAAAAZFWgCqmeZwvnpS94J0Hz0p7r3Wf8PzJV4TpTWn+5piu04/t3i2KGb806Jf+RGFBkROn+UXHmfGGgSfS0/azbwxroYrsAAAAACRX/7wAAAAAAAVK3////+AAAAAAJE7maAAAAAAAB6zMBAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAACRX/7wAAAAAAAVK3AAAAAGRVoAl+Yw45hhOUDjYjAl2plplx0/MalDbZej7hWqfLWEavS/cxEtStJv03zxjKmz9+bxpWK1lly8JuRIilQFUvGAcuAAAAAAAFEN8AAAAAAAAB8/////gAAAAAAAUSKgAAAAAAAAMHAQAAAAEAAAACAAAAAGRVoBMAAAAAZFWgEwAAAABkVaASAAAAAAAFEN8AAAAAAAAB8wAAAABkVaAKD+5d3AdqlvGg7TGQdX5DE6SESe17memDpYdZE5ORzgVs1cmcbYbfkosFYvJmF93vQAgY+JBzkfMIeWXmt4awswAAAAAALezCAAAAAAAACqr////4AAAAAAAt7kYAAAAAAAAHkAEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAAALezCAAAAAAAACqoAAAAAZFWgCqlo4j3CfwMhZ7N8DkPz3CwQlXKtkOtI8gyvkMqhah5m6wDh+FhUnhIDT/iAt1kkVqcbQjeq9K6xbmPNm2i6TX4AAAAAAO38OAAAAAAAALYI////+AAAAAAA7b1wAAAAAAAA3X0BAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAAAO38OAAAAAAAALYIAAAAAGRVoAs=', + 'AQAAAAABAL2tDgf95A1ZZ6txlEL7q0i3Z4TU4roV1R9GXgclvIjYTAjjHRs/L/7gYHT3PZbZtijeDF4SA/NWRdOm7Ou3Jh0AZFWgEgAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmCcBUDJXSAADAAEAAQIABQCd3ssQGAihxJoCHqR91Gm6hxzC1qaZ9WHNw9ZBE8+3JSzgf5gw3WObdv08NB8yPQoEVi9ELuW6se/mmiZdWrm5SgAAAAASpRb2AAAAAAAHfSr////4AAAAABKnkVAAAAAAAAYUoAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAASpPNaAAAAAAAHoMYAAAAAZFWgCpgvJzHwmiUBF9/OljYDtO98hjoXAKGzTbL2eEfaGAB07Cv2owh9IizpYK/PdbQrlphdWAqA/NTEXHal1eVxPMcAAAAAEIt9KQAAAAAADryf////+AAAAAAQjvkSAAAAAAANJGMBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEIt9KQAAAAAADryfAAAAAGRVoArgvDRLEovOfekzHp3Oq8h2QavUrI/L2wFq/JJbqR6pdsMjubPm3Qmp2TCQMiaJ8PtEu9kp6HAgKP8d3YOLFNQhAAAAAAVc3xQAAAAAAAE9Hf////gAAAAABV5cXAAAAAAAAt83AQAAAAEAAAACAAAAAGRVoBIAAAAAZFWgEgAAAABkVaAOAAAAAAVc3xQAAAAAAAE9HQAAAABkVaAKN4h5fPE+mjHvS5A7tgO6f+dLq4kFpk+q6kT4CFhV98sOYKZNy9Zg6HoI6yzJXo2E0RJv1zVNN3s/xXMDUvS4sgAAAAAROYh0AAAAAAAGXEz////4AAAAABE6ZQQAAAAAAAT1XAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAAROYh0AAAAAAAGXEwAAAAAZFWgCZYEjXggMUU+2EGxbUKzbCBTU3iULMwlQU5r80iFSllYeFijwqbNRdm2cTuzYfZlrr0puVH+/pd7tNuvDkYGqm8AAAAAEcOf7AAAAAAABsZF////+AAAAAARxww0AAAAAAAF6zcBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEcOf7AAAAAAABsZFAAAAAGRVoAk=', + 'AQAAAAABAEEJ0wacl2Xe33BLe7OtE35aHtvaQGuwRB6j92QYHx21RqT5sw8eFP1/l/TAQN3f6zrJMZWu5kkS+pmGR4Vn4t4AZFWgGAAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmIoBUDJXSAADAAEAAQIABQCdQxzC/Q70r0vHyF//ri9j1Rsm0WIXloLRSa5hmxIhwAv8MJRn3vpLGYxrW9WcCNtLnfsn3bzDLzFWDyF7T/j8KwAAAC6Z97mTAAAAAAnuxGn////4AAAALlf1XtAAAAAACaYFYAEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC6bvuq2AAAAAArRGrYAAAAAZFWgFfQqr4hMexRUiUFwvgqvHbObS3jTpWon/Um9iznvLDPXZRBx+MerIyG2vdO8eblKUIQakqbgZfnjuLmSao+1pdEAAAAwGwan8gAAAAAhJEgs////+AAAAC/cuqOQAAAAABnu+soBAAAAAQAAAAIAAAAAZFWgGAAAAABkVaAXAAAAAGRVoBUAAAAwGHAYOQAAAABOb34ZAAAAAGRVoBcYAesDgDrwJEUj7iqGw/J7Emq+iQTbS0WoKttf4hcItMqAum3DLgjQbxqohgEe7R13x3vp63YcwQ1yt9Ci/VemAAAALruXSnAAAAAABQWNkP////gAAAAudzafIAAAAAAE4btdAQAAAAEAAAACAAAAAGRVoBgAAAAAZFWgFwAAAABkVaAVAAAALr2FMz0AAAAABdksvAAAAABkVaAXfd8Ngq9THwrxCdXpzp7Ce6nwDp7oq3HJEq//oW1xWDa3q9Jadt2v/fhHIk8DGYzLknI/kLJCnPM/Duy5bjUqhgAAAC64Ff23AAAAACK8F3b////4AAAALnHJXrAAAAAAIgFtzgEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC64Ff23AAAAACK8F3YAAAAAZFWgFdWlwvMOBr1vOOAcLEyM3XynwcEtR6czbkWfxttBcbrmYP1hstkOukfygVBaiIabZhM9ncWPIDsBn1qkfxs5ND4AAAAtI2bqGgAAAAAisDf5////+AAAAC0htMOYAAAAACKu/ZABAAAAAQAAAAIAAAAAZFWgGAAAAABkR/zyAAAAAGRH/PAAAAAtI2bqGgAAAAAisDf5AAAAAGRH/PI=' + ] + + // Price info objects corresponding to the price feeds we want to update. + const price_info_object_ids = + [ + "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", + "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", + "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee" + ]; + + update_price_feeds(wallet, registry, vaas, price_info_object_ids); } main(); @@ -65,9 +82,8 @@ main(); async function update_price_feeds( signer: RawSigner, registry: any, - vaa: string, - object_id: string, - deployer: string + vaas: Array, + price_info_object_ids: Array, ) { const tx = new TransactionBlock(); @@ -79,55 +95,50 @@ async function update_price_feeds( console.log("PYTH_STATE: ", PYTH_STATE); console.log("WORM_PACKAGE: ", WORM_PACKAGE); console.log("WORM_STATE: ", WORM_STATE); - console.log("SUI_CLOCK_OBJECT_ID: ", SUI_CLOCK_OBJECT_ID); - let [verified_vaa] = tx.moveCall({ - target: `${WORM_PACKAGE}::vaa::parse_and_verify`, - arguments: [ - tx.object(WORM_STATE), - tx.pure([...Buffer.from(vaa, "base64")]), - tx.object(SUI_CLOCK_OBJECT_ID), - ], - }); - - const [coin] = tx.splitCoins(tx.gas, [tx.pure(1)]); - tx.transferObjects([coin], tx.pure(deployer)); + let verified_vaas = [] + for (let vaa of vaas){ + let [verified_vaa] = tx.moveCall({ + target: `${WORM_PACKAGE}::vaa::parse_and_verify`, + arguments: [ + tx.object(WORM_STATE), + tx.pure([...Buffer.from(vaa, "base64")]), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + verified_vaas = verified_vaas.concat(verified_vaa) + } - let [price_updates_hot_potato_1] = tx.moveCall({ + let [price_updates_hot_potato] = tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::create_price_infos_hot_potato`, arguments: [ tx.object(PYTH_STATE), tx.makeMoveVec({ type: `${WORM_PACKAGE}::vaa::VAA`, - objects: [verified_vaa], + objects: verified_vaas, }), tx.object(SUI_CLOCK_OBJECT_ID), ], }); - // Signature: - // pyth_state: &PythState, - // price_updates: HotPotatoVector, - // price_info_object: &mut PriceInfoObject, - // fee: Coin, - // clock: &Clock - - // This appears to fail with 'CommandArgumentError { arg_idx: 2, kind: TypeMismatch } in command 5' - let [price_updates_hot_potato_2] = tx.moveCall({ - target: `${PYTH_PACKAGE}::pyth::update_single_price_feed`, - arguments: [ - tx.object(PYTH_STATE), - price_updates_hot_potato_1, - tx.object(object_id), - coin, - tx.object(SUI_CLOCK_OBJECT_ID), - ] - }); + for (let price_info_object of price_info_object_ids){ + let coin = tx.splitCoins(tx.gas, [tx.pure(1)]); + [price_updates_hot_potato] = tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::update_single_price_feed`, + arguments: [ + tx.object(PYTH_STATE), + price_updates_hot_potato, + tx.object(price_info_object), + coin, + tx.object(SUI_CLOCK_OBJECT_ID), + ] + }); + } tx.moveCall({ target: `${PYTH_PACKAGE}::hot_potato_vector::destroy`, arguments: [ - price_updates_hot_potato_2 + price_updates_hot_potato ], typeArguments: [ `${PYTH_PACKAGE}::price_info::PriceInfo` diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index 5b92cb49a2..b346f53899 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -18,9 +18,9 @@ export const REGISTRY = { }, TESTNET: { PYTH_PACKAGE_ID: - "0xd4e0337eb6a9d6af032238ab2d7fdb817830dbbd91574579cfe7a020d45b5098", + "0x4eb4b9b5f3ca3293d3b92898ebb54f4a8705cc6c1fb2a0d2b7ec69388c7f14e4", PYTH_STATE_ID: - "0xfb098ca89e35e3f72454e68d29e7dce345186710d1d20b4175aca69065d01154", + "0xe96526143f8305830a103331151d46063339f7a9946b50aaa0d704c8c04173e5", WORMHOLE_PACKAGE_ID: "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", WORMHOLE_STATE_ID: From 538a95d3751cd623b47f91d6df564952f40343b4 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 6 May 2023 01:04:06 +0000 Subject: [PATCH 103/140] formatting via pre-commit --- .../price_id_to_object_id.testnet.json | 502 ++++++------- .../scripts/pyth/create_all_price_feeds.ts | 2 +- .../scripts/pyth/get_price_info_object_ids.ts | 7 +- target_chains/sui/scripts/pyth/get_vaas.ts | 2 +- target_chains/sui/scripts/pyth/test.ts | 667 +++++++++++------- .../sui/scripts/pyth/update_price_feeds.ts | 67 +- 6 files changed, 702 insertions(+), 545 deletions(-) diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json index f789abc106..7ca0eec725 100644 --- a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json @@ -1,252 +1,252 @@ { - "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e" : "0x40dc0e47c7532b510fb64643b3c159fa915d3fedc995091f8f4988851e64882b", - "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc" : "0xc7c04a8b26728e4799bbf4e1b1bc62fa3bc3d97f07930043124caba14ce6a67e", - "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73" : "0x89f9f365b778269000498306614d321ccbf5202f2c27c42b56ccf7694afb9aa6", - "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9" : "0xd3162c03a4d2e7ca41344534a71e00d452f1cb55714b76d8b4d4629558ff90ca", - "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3" : "0x73cf73bf1fca269741cfb3c1bffd57df6d8ec2302e6322b89275ac25a51186d5", - "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea" : "0xa0914ee7a28ccaf731e4f7d7cb7992524b850d4eaee644b9e5dd521fbb091ce5", - "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d" : "0x6dbe582bc7481c1256f6d4911363f60c8c0eb5a3db12cc4017832d88c09593de", - "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad" : "0x4efb93f9ef37311b041f572f5d3b9344bfa350347a00b174eb4564771588e253", - "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f" : "0x660181518c0f271779f686cf764fa4ecdfa42dd1ec739b1b49b33f5d232167d0", - "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593" : "0x2c2ba9ca6cc3cc89ac168e6c0b203b808de3d0a057e2841edc741df5eed48972", - "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e" : "0x813045ce58d6de022ce2bdb6ca47614f09dcd94d5bc81e8c97f726cd99322280", - "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679" : "0x235677967ccca2f61567c4c1cabfb2dfbb5df65351acb3eb2298bc1978516317", - "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf" : "0xe872dddd09ec833125df31db1e0ab9e78851611276c36da31d8e56d557383b62", - "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f" : "0x139058bd7a6205857a9157a751a68737a1a36a53a8a2bfe762ec89854a4286d8", - "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4" : "0x08ca5945ed936383ad2daaea44741f89e3ccac86e01b4bfcee4938c16591847e", - "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40" : "0xc6d699e04604f45d16c646adbc71f3390e925c1dd8405be870a46afec46a6cb1", - "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0" : "0x1be0b8b785162bf6a0c925aa9571febc6bc45fc52e305d038b5522880609ad5e", - "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6" : "0xa839103ba00441feec4196db2ac6e25d0c424449434233febc6bca8804a3228c", - "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a" : "0x8087f8fb619c044922261bf2725c82ddd131ea0cdd5bb45d6c641bd9b0ae2281", - "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a" : "0x6d84fa0d21d5222c628c63ef1097b87a6a2a7662f20d5dce57700252952e812b", - "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3" : "0x9c226b30ae83e97b125b1fba0375cccf4f4193c1b92f3f891b478677203e8e6d", - "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883" : "0x7f3276e0419a754827bc201047c5aab7101c2a30c5c07c942abcb63c2a28b663", - "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb" : "0xb98c122a0bef9a21b6c66a51066d104f0b7e0d17b3f0d3262ba1a09596df6887", - "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e" : "0x97fdb2150e801036036b2a65755e5505298fb8fe269cf05188a6389d52d1d3f9", - "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832" : "0x06b05813fdd6e8e31cf12ff83e4fdfd66ecb618f3b7bff757749373b75b8de1a", - "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a" : "0x70f5d481f3375ca82f7618012acd45b1542e5f03644bcaa6dabc682f678ebd18", - "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606" : "0x80da9558684486cdd0742b4921af9f497fab0627017613755dd03f06191ea844", - "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941" : "0x561e86691a214c2dd9ea6ce052ab1379d3b3c69dcfbb1accfc9b6ad5b8795773", - "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192" : "0x18810043a934f082f417585ebed52638ed6bf9a25fa25265b9b6e346dbc89722", - "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f" : "0x870677ef2703b8910b5f1524dcb33d8f4f116e6553d07d15abaefec2c251f3f7", - "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421" : "0x2020a356fca7d7a2c23a8d453a656234c3f7a135cf0f69de76bddf3c37eb224e", - "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4" : "0x253b2bbbfd0e864e9019f1aff6def52a0a8572ce168f1ec0f85f76d9c1f0770e", - "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137" : "0xcf9066ea651b64609e0a42754130367c1a02e2e388266d43c1a1f59e5ee4b23c", - "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98" : "0x18edd6764583e90b5a8a4d11b2a8902a225818e234bc71ba73e13d569fccfc69", - "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3" : "0xde9f8dcb0d99577e01f13c936b40e62c6e5b8b1950147fdca0f85eeab1bbad64", - "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca" : "0x9f96ee590406f0d978ee11c0bf742446162a304f50cac08bd39d686ca230140d", - "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97" : "0xe6c05b9769d102f88ef6ebb2b7fd20b647c7d34a7f1a401668f6dfc40bd1840d", - "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f" : "0xfcf5833a7d3c2f49e2eb8b4fdb1c84ab784c0bdcf260ddd952a159ac167075a2", - "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c" : "0x902246786a371b96d2541711dec59ff76a5e2d60c17da53ef9af26c7cd1cba6a", - "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f" : "0x8763a5cf6d2f2e874426e2461e8ffe9e37075e6bf50383649d8e5e6ac2591a12", - "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2" : "0xb3806700fafcca1c74b04f642761a59bc575c99aa103079f712a9d5e83c1ab45", - "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d" : "0x627bdff59fa6f797540809c4a95fb8bba638b08a772ef6addc9e6148a5ae6fa2", - "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9" : "0x10d2154546d3c5b312fac578cc7e6979a29c8da3be893fa5d76f6695c22a819d", - "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7" : "0xbc6519d63b0e16eb4ab51162c8c4980ef1eea5d7c428bb7232cb8b86db17b57c", - "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378" : "0xf457b3a34866a1a2962b05c297f64567bd39fdcd67dab69cf93357427af49a95", - "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc" : "0x9f87bd62394aef7b73c9c69800a802763dce97b9d5d6dfa2c885f8a374ab9fc0", - "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8" : "0xda07ab28353d27ccdc834db6bc20c109d10e03a4d4fc0e6298a71a70d8c942f7", - "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937" : "0xd1f61a7fb2476f8aaae36565f358ad8e8db43e57dc155f3121c942696b8f40b8", - "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb" : "0x68bc94bfd55998bcdfe91174a8e51e1fe3702261a1b36124f7424e8dd530008b", - "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7" : "0xc2461a0dbe0bf377d27c6b7edea393052f9f229e1aaa9452c6b4bfa73da7f06d", - "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967" : "0x20dbaffcfdacc1fbd706fc465e00ab32de7cef3a53dc55ea7ff253b9e5552dd1", - "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93" : "0x82a4bf6f19b5b507fb8c5da7f1753240ba20683744d893a6a7b0e02065c31c17", - "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced" : "0xda90ad0930dabcc75eca7160a54fcd8e11a120ac9a5ea2343b9b0a8d41213263", - "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8" : "0xe4e9c46acb68199cca90b72570f98201acaac095d68bdf8d0efb99dc19381583", - "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8" : "0x79b7fbef05b1517da88a593acbaadb335eb5e7a71e0d8af6cf7915ac7ba4d8b1", - "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7" : "0x5dfb2f1ccb3ac9625d0e192142d970cb11cd577c3abdd8ef60177ec5dadd9919", - "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e" : "0xa8bde60edf6cb161b72d6330cf105c5e2cc04fef56bb1524add907626baaaa8b", - "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b" : "0x0d4113ced47ca07dc7824d0cfe5a940fcd7dfadc984d9572fba398567e8da0b5", - "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f" : "0x1a6affdf8e2bb09111de3bbb3a5f278d22e7e39cd780930cb77ecbbbc3e065f7", - "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e" : "0x574c2b00546e1bf55555eefeaf3f7f384108519ea49500e092517d9455d16edd", - "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f" : "0x4be83384eef315a158a5543005ec58fc261cbb2e7e154b90190afaed2b80bde4", - "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb" : "0x0d29e3a3b66b02a1df4b54aa2dfb94a21c90ff460b7f0ebc2011b33a466dfe5a", - "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758" : "0xfdeaab644af9ad9b0ecf442069766cf462c7552ebb9f2f1087f4926798300b34", - "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033" : "0x31ae40b88e9250f9c963557c393403551fab9d7be47e6b03c827a4979b12d766", - "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4" : "0x6b720ee332c35dc18ed0914b1bca6759af364079d8f8a43e5383319966c56f31", - "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183" : "0xca1950714e2bfaa2c7b2ba0430247baaceea8e420d9e1815f6a97af28509b467", - "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96" : "0xc8706e01c12a79a4722d905a9cdc200a0b9265a220b3e774c259be162799807c", - "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193" : "0x8020fb77c33a43a12e794a61400345f56fa6a5034ee160bbb98581ef4ab86963", - "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc" : "0xfb28dd693e10796e16dc227cff4b6f068f2fd3c62e6fb624072c080b7b856246", - "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d" : "0x017613a64f40325bdf37007d23a07efb9069f83d408a4e032d7dd1bdec4a5e5e", - "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24" : "0x65c3821c00042d518fbe5618c90eeeb8be5ff83d6c9b99cb54f85b12b1dc6f00", - "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1" : "0xaa0cd084c0fa8aa7aaa6fda9d6078b5ca14880265766f7ec9a607dd694e79d36", - "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204" : "0xa3419c1a3d385ee9ad25728a6571210e51f4df57991861a170fcd097eeed4912", - "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857" : "0xc045d5ec0e280170313613afa2200895419d1d65b5bbd33e8dee0c600bb76e3a", - "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b" : "0xdbf643f32acd25c4f3132c9feba62d7f113d84a385e859ff869efc0085ff0e7b", - "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9" : "0x687d8656adef36228796a311164e99a3c9843cf571541451eaee08e47bad1bfc", - "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de" : "0x16b87881c102d0de55b5fbfa3e5559877a2f8f66c23a326a7bf19d3c49631354", - "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538" : "0x88fc2033efad9b5bcb3db06753eb2474638d271b1be3623d13b6d9e3eeb89954", - "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b" : "0x5711b3794e45df99e87db3e04de5f40310376f659b75e567f42b2b76ce87959d", - "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd" : "0x6802b4b5ded44ad628633057be43b9d7b2b8e082c0210f3d16ffe762788d614d", - "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb" : "0x08949235714561e4927b5669f6ddaabb5531cac8e8163947b9989353342dc623", - "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba" : "0xc726563077eeedfac8560df99f9281d7352e7f89a290e725b4fcdc7ff7e0553f", - "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206" : "0x33d6acc01a0ed77a1f0a726f41da5638c34cb663fb249ff2b0863594f50a4760", - "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02" : "0x87bff43e1fac9b6be2b7800968e96c02de8ea12741e5a5c63c695502796f5593", - "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359" : "0x5aaee83989806c89786461755e41e64f97d8fb6452e5a033bd5ca50a7f11fed1", - "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29" : "0xd2f80da3e46d74c86219f9901242aa6223f3d19cc432c89b2bc868c4ad4754ba", - "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb" : "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", - "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed" : "0x44d621c9245e9ab1493d108424f71503bb81cb638988ec62cbe2245cdd8c6edf", - "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14" : "0xae0e979110319039d652dcf126233ec02c8160b2bc04f44f620c00efb81ef413", - "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e" : "0xabc4eca741386b8c062684439f015301b44807e1a24716f8919499055463af9f", - "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e" : "0x12d2131451d987a977250ce3b3efb7d75ddc3580df0a3ecba6a924c61998fd1c", - "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d" : "0x216316cbbb30b6cdaf016175b66d4b8f2b61de9c6800bef18c6ce51d727526a8", - "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376" : "0xad84d1830cd1912eddb6349d7d23b31e518a1a68d5ec499e792ac716938a6b14", - "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808" : "0xbf68ba9d294219d26cce360800f5c4c76235d85a370d1a83e408a6013d60b655", - "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae" : "0x3a1577fa55499f98478348448a3f0a8f3aaede101de82ee9aad434ef4db86e07", - "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b" : "0xfb647ec378c9741fd864c301808bbf4701abe2b454860df360a4c621e2b7d355", - "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32" : "0x995c13519980e8157a270fa3090eed2972bc4f9d018892a24158ea1e2375a008", - "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b" : "0x8a05868f897561e26aace362ecfc525e1a50a809ed2599926a76eb14431e8a13", - "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd" : "0x86c739bc36a97c40fb1c7fa689dd5f1f34866998748c8126096c36b0b0596966", - "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d" : "0xc42bbe07e081ff22647983cdb1817a1df34ec6a73e95dfd223ceab0a81a170a3", - "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded" : "0xf7069102183ae080ea053bc11cf5f53852f64cfa622cbab5dab6694d0488d87d", - "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87" : "0x6243f4d2ba7b91daf74f193a22cedd0ab58e10e008df65362151b82af1a37d5a", - "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c" : "0xbd366d16350179afe78210b20dec5b9b4f3fd407408eaace62e77ff45d0cb1c5", - "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8" : "0x0818978faca0246b90e5117945b01b308a13dd8abb635e91b44ba79a8614e7e5", - "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f" : "0xff60f7d627d852611728005bf6f8e626d2884b3719e2e8481e50bd2dbda559b7", - "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f" : "0xdcbd29996cb740650e9a4769fad54bc1eb4391ec7b731afea8b37c686a9c9b63", - "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" : "0x6a665095260910e6331d7a08c151739ab068bf01e5b3196b05deb72d9a534473", - "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b" : "0x212821dcbfdeceffc28b740fbede9850044ef58e526a223376406fb55a4ab8d5", - "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161" : "0xe544d2f578939aed76745f69962725a6fc5cabd3999b23b6d05490a120772b95", - "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073" : "0xb26e53863fe6cb8a8141152e1eed7f72e8ba4e40c0c69736f9531c70952e9f2e", - "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c" : "0x31e8c88eed0ca91a9d23f9a66a3eb1c2f9f73624903548c0010fefaebc1e044a", - "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d" : "0x89d12b55a39967c6656603977285775fc8e90058dafccf66fe6694d58ccec312", - "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2" : "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", - "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c" : "0xa9cf9c0bf6a4a3f4f1cdf9fdb047b927cd930137e60839c7aef1ecb2d6b7fe41", - "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c" : "0x4f1307589c6cfe42798097125162d36003393f5b293fff6a8571a15f894918e8", - "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a" : "0x5b155d95c7bfb97bb58a27aa1559479edb4b2b1829b91822ddc75e299a74a341", - "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd" : "0xa71f0638d73b0d574cb1da446cf31438b06f3fb1596f21853cf26db208a6984f", - "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b" : "0x7901a095fccdcbf046d17189f00c234fd67a5d053143bb9544c15abde452cb82", - "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5" : "0x957b0fb1d5a2609abfaccbf53a29b610e60122917f9c62cfca4e5ae0f784e365", - "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266" : "0x391aafe578a4cf669bf7669288ced3077539eca239dca6fd145144bd8c8e67b6", - "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c" : "0xe969d6a05d2c3f1923310ccc968755956c5325ef0a560d1128d4058aaef9fab8", - "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7" : "0x2d568c6a763da478ad1f5be4876edfb2a21db1052ff1710ce29a5c69977e727c", - "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321" : "0x0f4efb76e8c4adeb363baf0e08c58fe6206c221ed8a7bd19d814518621f528f7", - "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106" : "0x6e88d415f6f69b8b6ddb138417dd657066a7c5626695e64bd1231397db822891", - "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634" : "0x66b739fbbf4e599809104a284bb6fcabeb1ded01b40eec6bdd103d54a0262aa8", - "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d" : "0xd9e0b9527248da6d7ab734183480c7c0f4a68d763efc3e9ec14225315e77ceef", - "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154" : "0xcfcadebffccb36f209cd882606b5266705aa3236201c4a78acaada2961c5c820", - "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa" : "0x90cfcd7e8f730eff4f7e5ce866c4c382b74638ed756673ee73849b0f091e428c", - "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93" : "0xa26749829361ba584fad065a85088df40da3052d94524543af68745d072113ce", - "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722" : "0x915e825251a3a2bc2dfb7544986493f11c49db28c470da6bcda295412dcc485e", - "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41" : "0x572f9648daebce7f49c74a4a6f10675d26e1022e4254c7e561153fd830436d6f", - "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62" : "0x4c44d38c0595cbec5879d1a391c0ff09c98508e2248738898e2265ce6db50de7", - "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6" : "0x6b2f9691db98716d60c608c04710e1126073ae960f4ab612b4517970730df813", - "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7" : "0x6b908407d2a9c19cbadbd82fc46f7c014ef4d4f2417ce87a9bdf7961027d12ce", - "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999" : "0xfa3ea46867381a5a0c77d7fe02c6e1019e5b21ec9bb01648fc0556b5ca82e324", - "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e" : "0xb6ec2a86dbc4260cdb09d0d03ef64735b17e8df52bd4a99855f3cd4459b55cbc", - "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f" : "0xec284a341e94877de26c1fb3c8c4cc4496dde67c21f98c4edb2fc22ee57d32fa", - "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a" : "0xe32b657e501e960cb22441cc0fb16241d1438957a7a5cc29f2f3a4534f606de0", - "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27" : "0x662c008d0cccbc8107a3d04a4ea6f24c0f8163034c511a65714880558d05b5cb", - "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08" : "0x3ff14e99a0dc75a6eed6235377f36b3aa898ff24c770fe9964abeb85b4df110d", - "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02" : "0x4a86bcc123a4acaf1ec17202ca55c28604b9870557b5678677c379ee6d91b56d", - "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd" : "0x899f4c28403478aca380b850046207904abdc72fffd40a2dbc4c7877d66b3b35", - "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb" : "0xbc7876c742ce955abc903c2cda4228f2df67011177c39de9e6e58865e50851c2", - "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97" : "0x570cc2a509139e91c836b80b84bdeb43fa9490122942b841437749d365c9ed78", - "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964" : "0x8cd103420eaf372dedc1485f20bf1a089c14740fa9166ae58dd588171afecc52", - "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21" : "0xfd826b5aa4e68aa98ad2f8ae82a252976dbabd0695045cd01f8c7eea4a59646a", - "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec" : "0x60b19ef0942c206064d5c79e10f61f3ebe5574ca212eb0b03b7e9c976d5222ed", - "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f" : "0x99a14a6d2f452f9321a3813edd69563afc4a80613ad66a3b1be509f4782a6638", - "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318" : "0x91b9aaaca37fdd549d4a698b75ad9f8e45029cf34b7ce65185147b7ce7c460ce", - "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880" : "0x985119764fe557980b1e2e4af0c17a9d3e78805242298480e73ce1e87a1c7951", - "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776" : "0x9dd39656933fde0e214987f75b6eceede8ea1d8dec6e9e57a4fcb576f987432e", - "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3" : "0xc6c8db69035622ed4b0ccee051a7fac449d006316202ef80fadfd021483fc0ac", - "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef" : "0x6d2a9db48b7d7a73dc2c6351bf94d84416a2e2bbe1478d36553ea3cab3b4c6e1", - "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5" : "0x0226ce2235a29e57bbcf9de83410da44ae93af36a6cb47b373429dd89cb21ad6", - "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a" : "0x9f0c7efc58e868d7382c9e61e204766fdcc93528a172c47f701affafd6577f05", - "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590" : "0x1f2f243b26337f649a95d5f20c84980e00f33295771322779f6a6856c7de6e72", - "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad" : "0x48ba7c9a39b50754c8bdbe64f606c2c840ea05c234741012330db56a37bbaff5", - "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d" : "0xf5a9c79847a09df6b55950a5ed5cb07078d4c34c6386ebfd48ad625832d951ac", - "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5" : "0x32804a1b37c53582018eaeab02991abe455132d480be9af7d35626f6f841c151", - "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" : "0x213c2fcc946dfbc2a27c1728a27bad028af6e0156f98d07843e7a09acbf2f985", - "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530" : "0xb3ad4ef14d38e165d1866fc07fc818c898441ff18c547642a5f21127b93399fb", - "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d" : "0xbb789504ec8c1d05f7ccfd03c96f743a7a488e6dc1e025f15fa9793e40333561", - "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd" : "0x4570ca77c553df40101445a1a2c29661d314b5b823ee882d3c1f0735abc2aa35", - "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b" : "0x82775f3a7544fcc0376ff89240d253d2a360c1ef8067a78bb56ef7a5f31f3d73", - "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f" : "0xf5e5350a8cab2d1eeb903ca826150beb15c04824eb78cd75f4ab1207e5b5a0ec", - "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b" : "0x329c1a63ee5b75c6659c37463776428a810fd05fa4759662f379b3959ad59a5b", - "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822" : "0x02c2ddec95e6f6200c1e605c3f4f8522cff8bb0ae7def8c4783c954fbf638682", - "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c" : "0xdcbcfd6fe23074210bfd9d3fff4af65f9308a5acb71a20b08977d1d46dc7eabd", - "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc" : "0xdee0247ddf71ada4d8e22a7b412e9dfe038a62770d9e9026c1648787219e7281", - "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b" : "0x7510aec1a8a7b73642c4d637bc4e9a5b8267d17453fb91c3b7f11a9c51ec7d76", - "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4" : "0xfc61f7d213551954f388fd5053d28bd6e38930f761454e2e8bca494b6243741f", - "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2" : "0x5e1b139cf1d519718f48ebebcb4f69d0a0d33cd133cc544a8aaf40460a28d9a5", - "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff" : "0x747bf8671e8a46f9ed192e495b9473fa6f4bfd3ab951ff5791857481dfed0206", - "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7" : "0x59918c1a3ff2cfbbc9b23bae44c283841900d9f1f1d72e95f3e6f6e257f8fab0", - "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2" : "0xf24ac7808e734c74f464584e7a8e8b0fc2bbd18ff3ec0af4b89f4315e669161b", - "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749" : "0x00e20c455eb5f3644ad29893a827ecf4f0e2279ac94d3c7342eaa8f0e64f0b2e", - "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5" : "0x88a716a60e3580862cff9c72a0b01bc51887ff770208dae8c5d8b5344be9be4b", - "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431" : "0x2376fee0c2de18dfc2ad36a2ea739252c15728720b96d548d3ac40a94d305a88", - "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a" : "0xa1472f80e3c42338ed73a659ea45f785bcb98e12ede94b35cf86db32c9672012", - "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0" : "0xb4128041762af56bf5ebb5cf23eda0055aeb9b2c416b5508e0161e97f15a3498", - "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256" : "0x12c5c355abc7fea0d8500a67ccd4a338839dfc862522dd92b2e31c40f740bae8", - "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6" : "0x28ebb25d7d1324344461461454bd3a0740210d2a7a174b2c6f67c466b5cea1e6", - "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519" : "0x6fea5bed3c94e8c368cd269398755d0293a204688fc038fe1f09b24d2879bbb0", - "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021" : "0x0ee3a94e7e8f0f7a764c3c712057ea1df48d57ea1f2b1a92e68aaa844a99beab", - "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd" : "0x276f27e9dbce84ab4a1a70b1271d24c7d3ccb2917e7aaa3b052e07bcc06fd68a", - "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064" : "0xf58e253eae96810e1bf2bf70065ffa790080bdbd1f0130a0dbb0a81073cfcccb", - "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2" : "0xcab0caef369ee790373127dad1c9f8fb6243853a4fb4678b2e062ecf2450789e", - "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860" : "0x9c7c49bc8a0002ba1d3acadc2e3797eea191af846527b179159b91ef4d638207", - "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21" : "0x360343818334fd0f4420dd0b989418dc5bbbc6554193b1ef9f41cd5b24ae6803", - "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15" : "0x671cc6ecbc12dcd26e6242f39fcf222e4d1291677dd627155b888983df0fc683", - "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66" : "0x9c697dae8d53325258fd20200f5d239261b0b7c5b05aaacb4c7646896c045677", - "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd" : "0x31d3ca0a9372dc45eeea6838d1d6e824775a00e4527414028abc7a8571fcf8b0", - "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919" : "0xcbde31643c45d3d972b69f46c0388109fcf2699288b92be2741ee8e24a09bc02", - "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984" : "0x0cf0445e1de7149ecf509d9e81df11f5cd3696f2289f061c91fea2cca84b19d8", - "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28" : "0x66cb2538d6c0ecb7e6eca68cd3eca5fa50042cb328eec3d7c71963a51e2b99b1", - "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d" : "0x8be10a0269a7534d1800ae330a5b7fb79d22d3e4f57a30d7b687c39fb138d185", - "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea" : "0xa69a67e9a1f671dcfdf4e1d09f8deba61799f32c77b5f209192a861fbc3d2083", - "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" : "0x8899a5649db0099f3a685cf246ed2bd4224bc2078fcaf2c897268764df684d94", - "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1" : "0x69c3776a1d09ddf6f4c69247a1cb6a7074ae8061ea517b8287a38bb07a3a964d", - "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412" : "0xbcc572307d5aa33ff3c3ae9c121332a8a2f53fa227163839d4b2114abc21a440", - "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73" : "0xb2008d67e8d03d4275af3f7c24c6008a81f917b32cd66193dd1f35cf88b20abc", - "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7" : "0x5c21d65d714feef232ca493f0e3c40362489ee6f35eb9a224d250a0485f906ee", - "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2" : "0x85fd57c6f2befbe0c354ce22d6131628ca5b0d7d3c9c413f494a7f1afc1fa376", - "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c" : "0x18ca0f2912e8eb3ea6f9efaf69797f0376a001a658bc0b5e4f89e9c63b5cce41", - "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d" : "0x3ce91f020d6044ef2b7558b6412db7611f5b78a8a1d9ff855100c16be44d3fd1", - "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621" : "0x1d0f15325ab3b33ec6d713bf5aeab500622f8a99b25fd7ddeaa97040de311a06", - "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994" : "0x1dc6c49cfb12c5960bd6bb726e67682125df7ddd0cc596cc53eaa0d3c80e4abd", - "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66" : "0x8f73d176d4961a02877b04fff44baf9fe864c488e00fe2b0add60b2036f2acee", - "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f" : "0x3b3d353e33465a732ab16820a1d040043d8c9a4084fe910ee3958e547adf673f", - "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048" : "0xa536e7345d2ec59b54bb2fcb36778dd4e05dddd969bdb8fc8404223c5512ef36", - "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165" : "0xd09185f027213ea12a551fa49fefd5bb3eba8df3622cbe2e3a073a7489eb6f9a", - "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075" : "0xa6c777046e09f028aa7611ebba6ae3d6f9c2fa39321936e13041e22542a588a6", - "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6" : "0x89b76133e1787183b12c753a6cb03484a274a8b3a3438e7d0a467d02271f5dda", - "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748" : "0x18f6136595c863a09cced4b37ffab98f95eb6bdd1987249e98529debf72b4102", - "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86" : "0x0a55ea16cb0728a58e0cf5b5fe711c1e6b12fdfa33f38b579508474d6987804c", - "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588" : "0x5185bbe53391af7d87bdd954023f9dbb4f1b50714aab021e35eb99115ffc390d", - "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993" : "0x3e34ae137afd1c5d432325ccdcff0342d7a18d32b99911f16db9117176c95846", - "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417" : "0xced35c680fadca7bebb6ad82b16a57b9b9a558698853003cb31c3c13dabbc5d1", - "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b" : "0xa1e2ec6a42138ac047c208bc10e6c614bb27efc5ce4c9c7fe900fbcad9a34151", - "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e" : "0x478e6985fa6faebc6d3fede65a104433c1ba363e3a9c447fa3fa13621dd206ec", - "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6" : "0xde0c17b2eb029491050a4579ad659858f86b497ae112fada8adc842eb4d991ed", - "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8" : "0xd87098a5dc2ce4c760707b72bd257cfe45ef63552834b23343770be399adf601", - "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b" : "0x11a76f49fe5fb7f31addf2e036c813ddb245c59fbfb7c935cb4e0fe9003e0b52", - "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b" : "0xfb12bfdf9a8f91e20d38240686c6181755c5540ca6d45f632cc0b4f7e79b1d96", - "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb" : "0x313c3bd1b1d331e65dfd53ef881306a2d9603a38745993ed4bea216f906a6ebc", - "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b" : "0x2334548c84eb206f2068c1c94ab7affd1f7865472643ca66e60978be1dd4353d", - "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e" : "0x8238c4be5ef44106b78c46451fc005623f94973764d3d8acdadbbebcc644a634", - "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12" : "0x95cb9030d1cadbbfe43ec5ab9a74c0c514b42efb89c0fdccf08c90310cce5672", - "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3" : "0x6b3b3dc9ecd2c4074c7276b11a8785cbaebde39154604f9019648912fe2e9507", - "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063" : "0x334fd150faab7b49551bad92b9eef6d0a39df31e852ae20c9495409a087e3382", - "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a" : "0x89d110550810e8029c344cfa53e0edbdead734f676f980af60b7cab989372539", - "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477" : "0xb6c077401eb8f8d46b03686253fe0143a54686ffce48f1c3b8a30441c814d092", - "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" : "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee", - "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281" : "0x1bd25e8b945ebe80773524e168ba2c22850036f5d5717a663da0a26ce5bc1a4f", - "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2" : "0x7896f3676fb73e4ca3381d888214541475dd8d05794dcd58af589e5eee7ee2d8", - "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a" : "0xffb818ae0b18d6b1b586571fc17ac4904ffa90207b781f2405e82e3495dd2a78", - "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc" : "0x1ff6104c9bb0825a0e9775117570f8557c594f983714baaf0e01a46483e7c1f4", - "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee" : "0xf767e81a16481014b4893bfe78b9939b62d98cb47ce2070f4c393115bcb96ea5", - "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d" : "0xd1a4e6b7f5a2d8d33fa8650ffb890fa85d0a813fd6e01868015b2bf0857deb14", - "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8" : "0xb66db08b306e6cf55f2ded29e4cc2abcfd58536f4a119aea2e7d8e8478d88e4d", - "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c" : "0x69555e01ff36f34c60a130f072f5e8a99a68bdd8955c697a0707b9a35aebe4da", - "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e" : "0xe80724f68a22ae781c5d58ef82083bac7cc18de84c3b484941f381fc217034b2", - "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51" : "0x737798b005a43368788248e888ea23bd660616fd0b0a0658fbec7d2f702b0827", - "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a" : "0x1af8d7cd4e1c570b060dbdfd237a9fcc8165cf9a327ea6c06f227589cb32676b", - "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130" : "0x37294785df603e73a956c1c5ae7aa0043d74040a0e2edc74df63df9c8e8705fd", - "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f" : "0x86d1f2036ebf557f94798ccdeeb6b7ac9ec7cb6a2625a45c847d510c82709b39", - "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7" : "0xf8b78c0b2dc5df968a31797c9fcee401462c715d400d513dcb16e19a7646d7f0", - "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62" : "0xbbcb57bcc3dc40b43027564b023ade7a335bb7486a0975f388b7bc209ebca378", - "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494" : "0xc52b28732dca60be94fdc83d6b5a61fe5d04d2b8fc68176b3bbeb81f52a83d16", - "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93" : "0xb9eb777dd43c1619f2633455bcd4804fc528be51f8372fbb38fd42ef99f9b31a" -} \ No newline at end of file + "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e": "0x40dc0e47c7532b510fb64643b3c159fa915d3fedc995091f8f4988851e64882b", + "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc": "0xc7c04a8b26728e4799bbf4e1b1bc62fa3bc3d97f07930043124caba14ce6a67e", + "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73": "0x89f9f365b778269000498306614d321ccbf5202f2c27c42b56ccf7694afb9aa6", + "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9": "0xd3162c03a4d2e7ca41344534a71e00d452f1cb55714b76d8b4d4629558ff90ca", + "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3": "0x73cf73bf1fca269741cfb3c1bffd57df6d8ec2302e6322b89275ac25a51186d5", + "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea": "0xa0914ee7a28ccaf731e4f7d7cb7992524b850d4eaee644b9e5dd521fbb091ce5", + "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d": "0x6dbe582bc7481c1256f6d4911363f60c8c0eb5a3db12cc4017832d88c09593de", + "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad": "0x4efb93f9ef37311b041f572f5d3b9344bfa350347a00b174eb4564771588e253", + "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f": "0x660181518c0f271779f686cf764fa4ecdfa42dd1ec739b1b49b33f5d232167d0", + "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593": "0x2c2ba9ca6cc3cc89ac168e6c0b203b808de3d0a057e2841edc741df5eed48972", + "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e": "0x813045ce58d6de022ce2bdb6ca47614f09dcd94d5bc81e8c97f726cd99322280", + "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679": "0x235677967ccca2f61567c4c1cabfb2dfbb5df65351acb3eb2298bc1978516317", + "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf": "0xe872dddd09ec833125df31db1e0ab9e78851611276c36da31d8e56d557383b62", + "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f": "0x139058bd7a6205857a9157a751a68737a1a36a53a8a2bfe762ec89854a4286d8", + "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4": "0x08ca5945ed936383ad2daaea44741f89e3ccac86e01b4bfcee4938c16591847e", + "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40": "0xc6d699e04604f45d16c646adbc71f3390e925c1dd8405be870a46afec46a6cb1", + "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0": "0x1be0b8b785162bf6a0c925aa9571febc6bc45fc52e305d038b5522880609ad5e", + "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6": "0xa839103ba00441feec4196db2ac6e25d0c424449434233febc6bca8804a3228c", + "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a": "0x8087f8fb619c044922261bf2725c82ddd131ea0cdd5bb45d6c641bd9b0ae2281", + "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a": "0x6d84fa0d21d5222c628c63ef1097b87a6a2a7662f20d5dce57700252952e812b", + "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3": "0x9c226b30ae83e97b125b1fba0375cccf4f4193c1b92f3f891b478677203e8e6d", + "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883": "0x7f3276e0419a754827bc201047c5aab7101c2a30c5c07c942abcb63c2a28b663", + "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb": "0xb98c122a0bef9a21b6c66a51066d104f0b7e0d17b3f0d3262ba1a09596df6887", + "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e": "0x97fdb2150e801036036b2a65755e5505298fb8fe269cf05188a6389d52d1d3f9", + "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832": "0x06b05813fdd6e8e31cf12ff83e4fdfd66ecb618f3b7bff757749373b75b8de1a", + "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a": "0x70f5d481f3375ca82f7618012acd45b1542e5f03644bcaa6dabc682f678ebd18", + "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606": "0x80da9558684486cdd0742b4921af9f497fab0627017613755dd03f06191ea844", + "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941": "0x561e86691a214c2dd9ea6ce052ab1379d3b3c69dcfbb1accfc9b6ad5b8795773", + "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192": "0x18810043a934f082f417585ebed52638ed6bf9a25fa25265b9b6e346dbc89722", + "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f": "0x870677ef2703b8910b5f1524dcb33d8f4f116e6553d07d15abaefec2c251f3f7", + "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421": "0x2020a356fca7d7a2c23a8d453a656234c3f7a135cf0f69de76bddf3c37eb224e", + "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4": "0x253b2bbbfd0e864e9019f1aff6def52a0a8572ce168f1ec0f85f76d9c1f0770e", + "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137": "0xcf9066ea651b64609e0a42754130367c1a02e2e388266d43c1a1f59e5ee4b23c", + "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98": "0x18edd6764583e90b5a8a4d11b2a8902a225818e234bc71ba73e13d569fccfc69", + "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3": "0xde9f8dcb0d99577e01f13c936b40e62c6e5b8b1950147fdca0f85eeab1bbad64", + "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca": "0x9f96ee590406f0d978ee11c0bf742446162a304f50cac08bd39d686ca230140d", + "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97": "0xe6c05b9769d102f88ef6ebb2b7fd20b647c7d34a7f1a401668f6dfc40bd1840d", + "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f": "0xfcf5833a7d3c2f49e2eb8b4fdb1c84ab784c0bdcf260ddd952a159ac167075a2", + "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c": "0x902246786a371b96d2541711dec59ff76a5e2d60c17da53ef9af26c7cd1cba6a", + "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f": "0x8763a5cf6d2f2e874426e2461e8ffe9e37075e6bf50383649d8e5e6ac2591a12", + "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2": "0xb3806700fafcca1c74b04f642761a59bc575c99aa103079f712a9d5e83c1ab45", + "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d": "0x627bdff59fa6f797540809c4a95fb8bba638b08a772ef6addc9e6148a5ae6fa2", + "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9": "0x10d2154546d3c5b312fac578cc7e6979a29c8da3be893fa5d76f6695c22a819d", + "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7": "0xbc6519d63b0e16eb4ab51162c8c4980ef1eea5d7c428bb7232cb8b86db17b57c", + "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378": "0xf457b3a34866a1a2962b05c297f64567bd39fdcd67dab69cf93357427af49a95", + "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc": "0x9f87bd62394aef7b73c9c69800a802763dce97b9d5d6dfa2c885f8a374ab9fc0", + "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8": "0xda07ab28353d27ccdc834db6bc20c109d10e03a4d4fc0e6298a71a70d8c942f7", + "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937": "0xd1f61a7fb2476f8aaae36565f358ad8e8db43e57dc155f3121c942696b8f40b8", + "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb": "0x68bc94bfd55998bcdfe91174a8e51e1fe3702261a1b36124f7424e8dd530008b", + "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7": "0xc2461a0dbe0bf377d27c6b7edea393052f9f229e1aaa9452c6b4bfa73da7f06d", + "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967": "0x20dbaffcfdacc1fbd706fc465e00ab32de7cef3a53dc55ea7ff253b9e5552dd1", + "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93": "0x82a4bf6f19b5b507fb8c5da7f1753240ba20683744d893a6a7b0e02065c31c17", + "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced": "0xda90ad0930dabcc75eca7160a54fcd8e11a120ac9a5ea2343b9b0a8d41213263", + "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8": "0xe4e9c46acb68199cca90b72570f98201acaac095d68bdf8d0efb99dc19381583", + "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8": "0x79b7fbef05b1517da88a593acbaadb335eb5e7a71e0d8af6cf7915ac7ba4d8b1", + "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7": "0x5dfb2f1ccb3ac9625d0e192142d970cb11cd577c3abdd8ef60177ec5dadd9919", + "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e": "0xa8bde60edf6cb161b72d6330cf105c5e2cc04fef56bb1524add907626baaaa8b", + "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b": "0x0d4113ced47ca07dc7824d0cfe5a940fcd7dfadc984d9572fba398567e8da0b5", + "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f": "0x1a6affdf8e2bb09111de3bbb3a5f278d22e7e39cd780930cb77ecbbbc3e065f7", + "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e": "0x574c2b00546e1bf55555eefeaf3f7f384108519ea49500e092517d9455d16edd", + "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f": "0x4be83384eef315a158a5543005ec58fc261cbb2e7e154b90190afaed2b80bde4", + "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb": "0x0d29e3a3b66b02a1df4b54aa2dfb94a21c90ff460b7f0ebc2011b33a466dfe5a", + "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758": "0xfdeaab644af9ad9b0ecf442069766cf462c7552ebb9f2f1087f4926798300b34", + "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033": "0x31ae40b88e9250f9c963557c393403551fab9d7be47e6b03c827a4979b12d766", + "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4": "0x6b720ee332c35dc18ed0914b1bca6759af364079d8f8a43e5383319966c56f31", + "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183": "0xca1950714e2bfaa2c7b2ba0430247baaceea8e420d9e1815f6a97af28509b467", + "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96": "0xc8706e01c12a79a4722d905a9cdc200a0b9265a220b3e774c259be162799807c", + "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193": "0x8020fb77c33a43a12e794a61400345f56fa6a5034ee160bbb98581ef4ab86963", + "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc": "0xfb28dd693e10796e16dc227cff4b6f068f2fd3c62e6fb624072c080b7b856246", + "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d": "0x017613a64f40325bdf37007d23a07efb9069f83d408a4e032d7dd1bdec4a5e5e", + "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24": "0x65c3821c00042d518fbe5618c90eeeb8be5ff83d6c9b99cb54f85b12b1dc6f00", + "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1": "0xaa0cd084c0fa8aa7aaa6fda9d6078b5ca14880265766f7ec9a607dd694e79d36", + "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204": "0xa3419c1a3d385ee9ad25728a6571210e51f4df57991861a170fcd097eeed4912", + "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857": "0xc045d5ec0e280170313613afa2200895419d1d65b5bbd33e8dee0c600bb76e3a", + "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b": "0xdbf643f32acd25c4f3132c9feba62d7f113d84a385e859ff869efc0085ff0e7b", + "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9": "0x687d8656adef36228796a311164e99a3c9843cf571541451eaee08e47bad1bfc", + "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de": "0x16b87881c102d0de55b5fbfa3e5559877a2f8f66c23a326a7bf19d3c49631354", + "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538": "0x88fc2033efad9b5bcb3db06753eb2474638d271b1be3623d13b6d9e3eeb89954", + "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b": "0x5711b3794e45df99e87db3e04de5f40310376f659b75e567f42b2b76ce87959d", + "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd": "0x6802b4b5ded44ad628633057be43b9d7b2b8e082c0210f3d16ffe762788d614d", + "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb": "0x08949235714561e4927b5669f6ddaabb5531cac8e8163947b9989353342dc623", + "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba": "0xc726563077eeedfac8560df99f9281d7352e7f89a290e725b4fcdc7ff7e0553f", + "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206": "0x33d6acc01a0ed77a1f0a726f41da5638c34cb663fb249ff2b0863594f50a4760", + "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02": "0x87bff43e1fac9b6be2b7800968e96c02de8ea12741e5a5c63c695502796f5593", + "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359": "0x5aaee83989806c89786461755e41e64f97d8fb6452e5a033bd5ca50a7f11fed1", + "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29": "0xd2f80da3e46d74c86219f9901242aa6223f3d19cc432c89b2bc868c4ad4754ba", + "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb": "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", + "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed": "0x44d621c9245e9ab1493d108424f71503bb81cb638988ec62cbe2245cdd8c6edf", + "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14": "0xae0e979110319039d652dcf126233ec02c8160b2bc04f44f620c00efb81ef413", + "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e": "0xabc4eca741386b8c062684439f015301b44807e1a24716f8919499055463af9f", + "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e": "0x12d2131451d987a977250ce3b3efb7d75ddc3580df0a3ecba6a924c61998fd1c", + "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d": "0x216316cbbb30b6cdaf016175b66d4b8f2b61de9c6800bef18c6ce51d727526a8", + "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376": "0xad84d1830cd1912eddb6349d7d23b31e518a1a68d5ec499e792ac716938a6b14", + "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808": "0xbf68ba9d294219d26cce360800f5c4c76235d85a370d1a83e408a6013d60b655", + "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae": "0x3a1577fa55499f98478348448a3f0a8f3aaede101de82ee9aad434ef4db86e07", + "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b": "0xfb647ec378c9741fd864c301808bbf4701abe2b454860df360a4c621e2b7d355", + "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32": "0x995c13519980e8157a270fa3090eed2972bc4f9d018892a24158ea1e2375a008", + "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b": "0x8a05868f897561e26aace362ecfc525e1a50a809ed2599926a76eb14431e8a13", + "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd": "0x86c739bc36a97c40fb1c7fa689dd5f1f34866998748c8126096c36b0b0596966", + "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d": "0xc42bbe07e081ff22647983cdb1817a1df34ec6a73e95dfd223ceab0a81a170a3", + "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded": "0xf7069102183ae080ea053bc11cf5f53852f64cfa622cbab5dab6694d0488d87d", + "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87": "0x6243f4d2ba7b91daf74f193a22cedd0ab58e10e008df65362151b82af1a37d5a", + "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c": "0xbd366d16350179afe78210b20dec5b9b4f3fd407408eaace62e77ff45d0cb1c5", + "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8": "0x0818978faca0246b90e5117945b01b308a13dd8abb635e91b44ba79a8614e7e5", + "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f": "0xff60f7d627d852611728005bf6f8e626d2884b3719e2e8481e50bd2dbda559b7", + "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f": "0xdcbd29996cb740650e9a4769fad54bc1eb4391ec7b731afea8b37c686a9c9b63", + "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280": "0x6a665095260910e6331d7a08c151739ab068bf01e5b3196b05deb72d9a534473", + "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b": "0x212821dcbfdeceffc28b740fbede9850044ef58e526a223376406fb55a4ab8d5", + "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161": "0xe544d2f578939aed76745f69962725a6fc5cabd3999b23b6d05490a120772b95", + "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073": "0xb26e53863fe6cb8a8141152e1eed7f72e8ba4e40c0c69736f9531c70952e9f2e", + "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c": "0x31e8c88eed0ca91a9d23f9a66a3eb1c2f9f73624903548c0010fefaebc1e044a", + "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d": "0x89d12b55a39967c6656603977285775fc8e90058dafccf66fe6694d58ccec312", + "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2": "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", + "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c": "0xa9cf9c0bf6a4a3f4f1cdf9fdb047b927cd930137e60839c7aef1ecb2d6b7fe41", + "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c": "0x4f1307589c6cfe42798097125162d36003393f5b293fff6a8571a15f894918e8", + "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a": "0x5b155d95c7bfb97bb58a27aa1559479edb4b2b1829b91822ddc75e299a74a341", + "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd": "0xa71f0638d73b0d574cb1da446cf31438b06f3fb1596f21853cf26db208a6984f", + "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b": "0x7901a095fccdcbf046d17189f00c234fd67a5d053143bb9544c15abde452cb82", + "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5": "0x957b0fb1d5a2609abfaccbf53a29b610e60122917f9c62cfca4e5ae0f784e365", + "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266": "0x391aafe578a4cf669bf7669288ced3077539eca239dca6fd145144bd8c8e67b6", + "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c": "0xe969d6a05d2c3f1923310ccc968755956c5325ef0a560d1128d4058aaef9fab8", + "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7": "0x2d568c6a763da478ad1f5be4876edfb2a21db1052ff1710ce29a5c69977e727c", + "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321": "0x0f4efb76e8c4adeb363baf0e08c58fe6206c221ed8a7bd19d814518621f528f7", + "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106": "0x6e88d415f6f69b8b6ddb138417dd657066a7c5626695e64bd1231397db822891", + "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634": "0x66b739fbbf4e599809104a284bb6fcabeb1ded01b40eec6bdd103d54a0262aa8", + "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d": "0xd9e0b9527248da6d7ab734183480c7c0f4a68d763efc3e9ec14225315e77ceef", + "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154": "0xcfcadebffccb36f209cd882606b5266705aa3236201c4a78acaada2961c5c820", + "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa": "0x90cfcd7e8f730eff4f7e5ce866c4c382b74638ed756673ee73849b0f091e428c", + "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93": "0xa26749829361ba584fad065a85088df40da3052d94524543af68745d072113ce", + "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722": "0x915e825251a3a2bc2dfb7544986493f11c49db28c470da6bcda295412dcc485e", + "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41": "0x572f9648daebce7f49c74a4a6f10675d26e1022e4254c7e561153fd830436d6f", + "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62": "0x4c44d38c0595cbec5879d1a391c0ff09c98508e2248738898e2265ce6db50de7", + "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6": "0x6b2f9691db98716d60c608c04710e1126073ae960f4ab612b4517970730df813", + "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7": "0x6b908407d2a9c19cbadbd82fc46f7c014ef4d4f2417ce87a9bdf7961027d12ce", + "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999": "0xfa3ea46867381a5a0c77d7fe02c6e1019e5b21ec9bb01648fc0556b5ca82e324", + "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e": "0xb6ec2a86dbc4260cdb09d0d03ef64735b17e8df52bd4a99855f3cd4459b55cbc", + "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f": "0xec284a341e94877de26c1fb3c8c4cc4496dde67c21f98c4edb2fc22ee57d32fa", + "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a": "0xe32b657e501e960cb22441cc0fb16241d1438957a7a5cc29f2f3a4534f606de0", + "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27": "0x662c008d0cccbc8107a3d04a4ea6f24c0f8163034c511a65714880558d05b5cb", + "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08": "0x3ff14e99a0dc75a6eed6235377f36b3aa898ff24c770fe9964abeb85b4df110d", + "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02": "0x4a86bcc123a4acaf1ec17202ca55c28604b9870557b5678677c379ee6d91b56d", + "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd": "0x899f4c28403478aca380b850046207904abdc72fffd40a2dbc4c7877d66b3b35", + "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb": "0xbc7876c742ce955abc903c2cda4228f2df67011177c39de9e6e58865e50851c2", + "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97": "0x570cc2a509139e91c836b80b84bdeb43fa9490122942b841437749d365c9ed78", + "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964": "0x8cd103420eaf372dedc1485f20bf1a089c14740fa9166ae58dd588171afecc52", + "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21": "0xfd826b5aa4e68aa98ad2f8ae82a252976dbabd0695045cd01f8c7eea4a59646a", + "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec": "0x60b19ef0942c206064d5c79e10f61f3ebe5574ca212eb0b03b7e9c976d5222ed", + "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f": "0x99a14a6d2f452f9321a3813edd69563afc4a80613ad66a3b1be509f4782a6638", + "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318": "0x91b9aaaca37fdd549d4a698b75ad9f8e45029cf34b7ce65185147b7ce7c460ce", + "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880": "0x985119764fe557980b1e2e4af0c17a9d3e78805242298480e73ce1e87a1c7951", + "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776": "0x9dd39656933fde0e214987f75b6eceede8ea1d8dec6e9e57a4fcb576f987432e", + "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3": "0xc6c8db69035622ed4b0ccee051a7fac449d006316202ef80fadfd021483fc0ac", + "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef": "0x6d2a9db48b7d7a73dc2c6351bf94d84416a2e2bbe1478d36553ea3cab3b4c6e1", + "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5": "0x0226ce2235a29e57bbcf9de83410da44ae93af36a6cb47b373429dd89cb21ad6", + "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a": "0x9f0c7efc58e868d7382c9e61e204766fdcc93528a172c47f701affafd6577f05", + "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590": "0x1f2f243b26337f649a95d5f20c84980e00f33295771322779f6a6856c7de6e72", + "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad": "0x48ba7c9a39b50754c8bdbe64f606c2c840ea05c234741012330db56a37bbaff5", + "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d": "0xf5a9c79847a09df6b55950a5ed5cb07078d4c34c6386ebfd48ad625832d951ac", + "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5": "0x32804a1b37c53582018eaeab02991abe455132d480be9af7d35626f6f841c151", + "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3": "0x213c2fcc946dfbc2a27c1728a27bad028af6e0156f98d07843e7a09acbf2f985", + "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530": "0xb3ad4ef14d38e165d1866fc07fc818c898441ff18c547642a5f21127b93399fb", + "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d": "0xbb789504ec8c1d05f7ccfd03c96f743a7a488e6dc1e025f15fa9793e40333561", + "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd": "0x4570ca77c553df40101445a1a2c29661d314b5b823ee882d3c1f0735abc2aa35", + "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b": "0x82775f3a7544fcc0376ff89240d253d2a360c1ef8067a78bb56ef7a5f31f3d73", + "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f": "0xf5e5350a8cab2d1eeb903ca826150beb15c04824eb78cd75f4ab1207e5b5a0ec", + "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b": "0x329c1a63ee5b75c6659c37463776428a810fd05fa4759662f379b3959ad59a5b", + "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822": "0x02c2ddec95e6f6200c1e605c3f4f8522cff8bb0ae7def8c4783c954fbf638682", + "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c": "0xdcbcfd6fe23074210bfd9d3fff4af65f9308a5acb71a20b08977d1d46dc7eabd", + "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc": "0xdee0247ddf71ada4d8e22a7b412e9dfe038a62770d9e9026c1648787219e7281", + "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b": "0x7510aec1a8a7b73642c4d637bc4e9a5b8267d17453fb91c3b7f11a9c51ec7d76", + "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4": "0xfc61f7d213551954f388fd5053d28bd6e38930f761454e2e8bca494b6243741f", + "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2": "0x5e1b139cf1d519718f48ebebcb4f69d0a0d33cd133cc544a8aaf40460a28d9a5", + "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff": "0x747bf8671e8a46f9ed192e495b9473fa6f4bfd3ab951ff5791857481dfed0206", + "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7": "0x59918c1a3ff2cfbbc9b23bae44c283841900d9f1f1d72e95f3e6f6e257f8fab0", + "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2": "0xf24ac7808e734c74f464584e7a8e8b0fc2bbd18ff3ec0af4b89f4315e669161b", + "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749": "0x00e20c455eb5f3644ad29893a827ecf4f0e2279ac94d3c7342eaa8f0e64f0b2e", + "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5": "0x88a716a60e3580862cff9c72a0b01bc51887ff770208dae8c5d8b5344be9be4b", + "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431": "0x2376fee0c2de18dfc2ad36a2ea739252c15728720b96d548d3ac40a94d305a88", + "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a": "0xa1472f80e3c42338ed73a659ea45f785bcb98e12ede94b35cf86db32c9672012", + "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0": "0xb4128041762af56bf5ebb5cf23eda0055aeb9b2c416b5508e0161e97f15a3498", + "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256": "0x12c5c355abc7fea0d8500a67ccd4a338839dfc862522dd92b2e31c40f740bae8", + "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6": "0x28ebb25d7d1324344461461454bd3a0740210d2a7a174b2c6f67c466b5cea1e6", + "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519": "0x6fea5bed3c94e8c368cd269398755d0293a204688fc038fe1f09b24d2879bbb0", + "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021": "0x0ee3a94e7e8f0f7a764c3c712057ea1df48d57ea1f2b1a92e68aaa844a99beab", + "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd": "0x276f27e9dbce84ab4a1a70b1271d24c7d3ccb2917e7aaa3b052e07bcc06fd68a", + "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064": "0xf58e253eae96810e1bf2bf70065ffa790080bdbd1f0130a0dbb0a81073cfcccb", + "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2": "0xcab0caef369ee790373127dad1c9f8fb6243853a4fb4678b2e062ecf2450789e", + "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860": "0x9c7c49bc8a0002ba1d3acadc2e3797eea191af846527b179159b91ef4d638207", + "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21": "0x360343818334fd0f4420dd0b989418dc5bbbc6554193b1ef9f41cd5b24ae6803", + "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15": "0x671cc6ecbc12dcd26e6242f39fcf222e4d1291677dd627155b888983df0fc683", + "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66": "0x9c697dae8d53325258fd20200f5d239261b0b7c5b05aaacb4c7646896c045677", + "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd": "0x31d3ca0a9372dc45eeea6838d1d6e824775a00e4527414028abc7a8571fcf8b0", + "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919": "0xcbde31643c45d3d972b69f46c0388109fcf2699288b92be2741ee8e24a09bc02", + "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984": "0x0cf0445e1de7149ecf509d9e81df11f5cd3696f2289f061c91fea2cca84b19d8", + "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28": "0x66cb2538d6c0ecb7e6eca68cd3eca5fa50042cb328eec3d7c71963a51e2b99b1", + "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d": "0x8be10a0269a7534d1800ae330a5b7fb79d22d3e4f57a30d7b687c39fb138d185", + "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea": "0xa69a67e9a1f671dcfdf4e1d09f8deba61799f32c77b5f209192a861fbc3d2083", + "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b": "0x8899a5649db0099f3a685cf246ed2bd4224bc2078fcaf2c897268764df684d94", + "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1": "0x69c3776a1d09ddf6f4c69247a1cb6a7074ae8061ea517b8287a38bb07a3a964d", + "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412": "0xbcc572307d5aa33ff3c3ae9c121332a8a2f53fa227163839d4b2114abc21a440", + "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73": "0xb2008d67e8d03d4275af3f7c24c6008a81f917b32cd66193dd1f35cf88b20abc", + "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7": "0x5c21d65d714feef232ca493f0e3c40362489ee6f35eb9a224d250a0485f906ee", + "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2": "0x85fd57c6f2befbe0c354ce22d6131628ca5b0d7d3c9c413f494a7f1afc1fa376", + "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c": "0x18ca0f2912e8eb3ea6f9efaf69797f0376a001a658bc0b5e4f89e9c63b5cce41", + "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d": "0x3ce91f020d6044ef2b7558b6412db7611f5b78a8a1d9ff855100c16be44d3fd1", + "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621": "0x1d0f15325ab3b33ec6d713bf5aeab500622f8a99b25fd7ddeaa97040de311a06", + "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994": "0x1dc6c49cfb12c5960bd6bb726e67682125df7ddd0cc596cc53eaa0d3c80e4abd", + "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66": "0x8f73d176d4961a02877b04fff44baf9fe864c488e00fe2b0add60b2036f2acee", + "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f": "0x3b3d353e33465a732ab16820a1d040043d8c9a4084fe910ee3958e547adf673f", + "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048": "0xa536e7345d2ec59b54bb2fcb36778dd4e05dddd969bdb8fc8404223c5512ef36", + "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165": "0xd09185f027213ea12a551fa49fefd5bb3eba8df3622cbe2e3a073a7489eb6f9a", + "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075": "0xa6c777046e09f028aa7611ebba6ae3d6f9c2fa39321936e13041e22542a588a6", + "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6": "0x89b76133e1787183b12c753a6cb03484a274a8b3a3438e7d0a467d02271f5dda", + "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748": "0x18f6136595c863a09cced4b37ffab98f95eb6bdd1987249e98529debf72b4102", + "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86": "0x0a55ea16cb0728a58e0cf5b5fe711c1e6b12fdfa33f38b579508474d6987804c", + "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588": "0x5185bbe53391af7d87bdd954023f9dbb4f1b50714aab021e35eb99115ffc390d", + "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993": "0x3e34ae137afd1c5d432325ccdcff0342d7a18d32b99911f16db9117176c95846", + "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417": "0xced35c680fadca7bebb6ad82b16a57b9b9a558698853003cb31c3c13dabbc5d1", + "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b": "0xa1e2ec6a42138ac047c208bc10e6c614bb27efc5ce4c9c7fe900fbcad9a34151", + "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e": "0x478e6985fa6faebc6d3fede65a104433c1ba363e3a9c447fa3fa13621dd206ec", + "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6": "0xde0c17b2eb029491050a4579ad659858f86b497ae112fada8adc842eb4d991ed", + "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8": "0xd87098a5dc2ce4c760707b72bd257cfe45ef63552834b23343770be399adf601", + "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b": "0x11a76f49fe5fb7f31addf2e036c813ddb245c59fbfb7c935cb4e0fe9003e0b52", + "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b": "0xfb12bfdf9a8f91e20d38240686c6181755c5540ca6d45f632cc0b4f7e79b1d96", + "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb": "0x313c3bd1b1d331e65dfd53ef881306a2d9603a38745993ed4bea216f906a6ebc", + "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b": "0x2334548c84eb206f2068c1c94ab7affd1f7865472643ca66e60978be1dd4353d", + "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e": "0x8238c4be5ef44106b78c46451fc005623f94973764d3d8acdadbbebcc644a634", + "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12": "0x95cb9030d1cadbbfe43ec5ab9a74c0c514b42efb89c0fdccf08c90310cce5672", + "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3": "0x6b3b3dc9ecd2c4074c7276b11a8785cbaebde39154604f9019648912fe2e9507", + "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063": "0x334fd150faab7b49551bad92b9eef6d0a39df31e852ae20c9495409a087e3382", + "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a": "0x89d110550810e8029c344cfa53e0edbdead734f676f980af60b7cab989372539", + "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477": "0xb6c077401eb8f8d46b03686253fe0143a54686ffce48f1c3b8a30441c814d092", + "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1": "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee", + "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281": "0x1bd25e8b945ebe80773524e168ba2c22850036f5d5717a663da0a26ce5bc1a4f", + "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2": "0x7896f3676fb73e4ca3381d888214541475dd8d05794dcd58af589e5eee7ee2d8", + "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a": "0xffb818ae0b18d6b1b586571fc17ac4904ffa90207b781f2405e82e3495dd2a78", + "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc": "0x1ff6104c9bb0825a0e9775117570f8557c594f983714baaf0e01a46483e7c1f4", + "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee": "0xf767e81a16481014b4893bfe78b9939b62d98cb47ce2070f4c393115bcb96ea5", + "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d": "0xd1a4e6b7f5a2d8d33fa8650ffb890fa85d0a813fd6e01868015b2bf0857deb14", + "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8": "0xb66db08b306e6cf55f2ded29e4cc2abcfd58536f4a119aea2e7d8e8478d88e4d", + "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c": "0x69555e01ff36f34c60a130f072f5e8a99a68bdd8955c697a0707b9a35aebe4da", + "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e": "0xe80724f68a22ae781c5d58ef82083bac7cc18de84c3b484941f381fc217034b2", + "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51": "0x737798b005a43368788248e888ea23bd660616fd0b0a0658fbec7d2f702b0827", + "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a": "0x1af8d7cd4e1c570b060dbdfd237a9fcc8165cf9a327ea6c06f227589cb32676b", + "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130": "0x37294785df603e73a956c1c5ae7aa0043d74040a0e2edc74df63df9c8e8705fd", + "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f": "0x86d1f2036ebf557f94798ccdeeb6b7ac9ec7cb6a2625a45c847d510c82709b39", + "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7": "0xf8b78c0b2dc5df968a31797c9fcee401462c715d400d513dcb16e19a7646d7f0", + "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62": "0xbbcb57bcc3dc40b43027564b023ade7a335bb7486a0975f388b7bc209ebca378", + "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494": "0xc52b28732dca60be94fdc83d6b5a61fe5d04d2b8fc68176b3bbeb81f52a83d16", + "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93": "0xb9eb777dd43c1619f2633455bcd4804fc528be51f8372fbb38fd42ef99f9b31a" +} diff --git a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts index c53b642060..b54dd16134 100644 --- a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts @@ -49,7 +49,7 @@ async function main() { console.log("num price feed ids: ", price_feed_ids.length); // Create price feeds 20 at a time - for (let chunk of _.chunk(price_feed_ids, 20)){ + for (let chunk of _.chunk(price_feed_ids, 20)) { //@ts-ignore const priceFeedVAAs = await connection.getLatestVaas(chunk); console.log("price feed VAAs len: ", priceFeedVAAs.length); diff --git a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts index d98d95b74e..889f270dc5 100644 --- a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts @@ -4,7 +4,7 @@ const provider = new JsonRpcProvider( new Connection({ fullnode: "https://fullnode.testnet.sui.io:443" }) // <= NOTE: Update this when changing network ); const objectId = -"0xf1cadf5316e1da9af0126c4851a3769b7d77d1cbf053037d20d46484cfc84846"; // <= NOTE: Update this when changing network AND with new deployment + "0xf1cadf5316e1da9af0126c4851a3769b7d77d1cbf053037d20d46484cfc84846"; // <= NOTE: Update this when changing network AND with new deployment async function main() { // Table of Sui Pyth PriceIdentifier => Price Info Object IDs @@ -26,8 +26,9 @@ async function main() { ); //@ts-ignore - let get_key = x => Buffer.from(x.data.content.fields.name.fields.bytes).toString("hex") - let get_value = x => x.data.content.fields.value + let get_key = (x) => + Buffer.from(x.data.content.fields.name.fields.bytes).toString("hex"); + let get_value = (x) => x.data.content.fields.value; let key_value_pairs = promises.map((x) => [get_key(x), get_value(x)]); console.log("key value pairs: ", key_value_pairs); for (let x of key_value_pairs) { diff --git a/target_chains/sui/scripts/pyth/get_vaas.ts b/target_chains/sui/scripts/pyth/get_vaas.ts index e498150aab..566a41e651 100644 --- a/target_chains/sui/scripts/pyth/get_vaas.ts +++ b/target_chains/sui/scripts/pyth/get_vaas.ts @@ -20,7 +20,7 @@ async function main() { let data = [ "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", - "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" + "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1", ]; const priceFeedVAAs = await connection.getLatestVaas(data); //console.log("number of VAAs: ", priceFeedVAAs.length) diff --git a/target_chains/sui/scripts/pyth/test.ts b/target_chains/sui/scripts/pyth/test.ts index 25303d28ad..fddb9fd811 100644 --- a/target_chains/sui/scripts/pyth/test.ts +++ b/target_chains/sui/scripts/pyth/test.ts @@ -2,261 +2,426 @@ import axios from "axios"; import { Buffer } from "buffer"; const price_ids_to_price_objects = { - "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", - "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x813dab097dc9a913a37553dc21a51ec264c5b3018a9148530ee5d4131d9cd948", - "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x12cd27871301e7b10488d294b21fdca0e02208d60d966cc363137c432bce49dd", - "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0x8f011dc003102d272bcfb9a1423ed9ab16bf8720102888dbdf3481dc2b81fe52", - "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xbff692a9a42736393001e997f0895203c81a0b0d7d100177150d3ca2404c2264", - "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0x7b06c8e0204faba400a6b69c75b51fe84ef24c4251340f4b00eca37852ef9944", - "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0xc9c0f5b0c331f02792cf47a6136fdea01772aa6e8bcd0acd7927b2cbf0c9500b", - "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0x73198faa767ea791159fb8c64c71ff490793fbe1abec0af9d959653739b86242", - "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0x7786857b0713ec6b060c873ba9ebf70cdbe8770453214aa7129e0965d3a8725d", - "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xd9b07adaceffb21296de31b46ef0f1db8825a83098d22af07f60205c6394bdd7", - "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x2b9e4beab792ea64bf6dea7d1d4455a6ff70744602a73388b3d03fc58cc0eca4", - "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0xe6eb8bc3a9cdab5955a78ebf0dd3f5e4ed3458ab4491285345dd8a6d0aecd2af", - "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x29405b9f25ad9deb23357298732edb4383d3745ffd9a0373cf3028992d85cf99", - "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0x94223482aa78b4dc59f670ca42c8c9a93b90b0c21721f6a9d679e3f5a50e4434", - "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0x6f5059e755771ad838278b6407a769717b40629f4655bfe9c2afe781cce5d966", - "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x08eae5969d90a4f03e33582077407608f74df4ccc5273cae3236710f68dc348e", - "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0xe883778d404e7c9eb7ff6fa190e8ddaa26a1b175c02cb00b1b72a4390e38c5f7", - "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0x0ec8b3c28c4240c5acc6c7ff145310d6d2129e6b718189be9c36828d75cf136e", - "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0x72f36e3b229031b91718b533cde17bf48a3222f4821486f47801671f8d584308", - "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0x35f9fa1bc253e91cfb42396800a37886b7d5fda5e015a9a5d7eea24b4a516421", - "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0xc6e1c6307fa87aa0f3c8e33ce786c6a80ca4aa6de74b8e1a62d9e65ad1047aac", - "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0x75b7db1ba4946126fa9193d4d00216cd1a52a17087c35feda74905bd0386c076", - "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0x1666ee917cb925fd3d78da42bfb14c8aa2f51ba1fdfe7a424220fa709133426a", - "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x7ceb15c8e72d0b917103e43a695e94e40dc653bccbc0806bb71d3ea6539884da", - "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0x663c14c977c46b85b5ea3f1a97ebc5b93d8cf6cf2c94d01dbcfaef0d0ef9efdf", - "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0x8e812924daaf7dc02188976e71d20d86baaf90129d1c1f4470b7e79084fed804", - "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0x54499295661a8cfb2c4da4184e330ab5948c4ec7522cad5f96e923b97bc91e61", - "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0x3c90b83f0acb025336debeb37d6014cdc788d9bece7828eb1412ebe44a01d31f", - "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0x0ffe43da21a5d957c833d778b0f527b82980f1b210cafa592054f0a026b658b4", - "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0xb9792f919aebd4ce7eb2a4c4b400dc40c2260f81b516e62cd3bb16a2f1cdaec3", - "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0x784f3db957f968930f9ac749c9b61ef614716964d93e689a482e15c665cf210e", - "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x847b4e30707fbaedbe1ebf261a9c08299b53389def13b6268f0aaed06118b711", - "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0x243536ac6942683448eb0f0013540ee72a6d31dd4f6efebb44a0918de2234a67", - "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0x421f3e1cc42aa5cfd4dc87de41c16bde36a9dffb3392bf61c70d6b3f0ba73a99", - "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0xf6bcaef2cb75a98bf2c16af8e0b0a36127f865be99a456ebbbbcfc2d54632fc2", - "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0x2ef5a5df964ff7cecceb968fbe84e8e12e6048518ab3c24e9343b46f6d1dd011", - "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xc38286eec0a9bdc4f7f8ebff7070bf4441ddb06af48cca506cd5477f72a1ec56", - "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0x8190db687f806ebb5a85e19789a969680e0fd8380724c4f51353ed0fd57d0a35", - "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x3192a035740b7d8a9a2f34e87983f43052bda1a8df4f257dba38d0d021b5afe5", - "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0x7c9f660c492c80357be785fb2b2eeb37147343740244975bc9622311281c945c", - "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0x6535ece8ec0e0a6a6f1baf5b80f64bd8d5c18fa2f40b5023e495ad02a9564a49", - "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xe6638d450412b1934890a43d48606d91ad5c945a25ace66f211ccc9f606cf405", - "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0x25325258fd0fb6965aedf380cde6636109d6e3b6c2faa47ec91d2f976bbae702", - "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0x537d0fd5f9576506fce8c81f976a5e7dd183ef875585e78cde420baa9c2dc0cf", - "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0x342f11fa43dbe19d0d5097f28526f4c40a7c9e84097a59d66bb619bff59d971b", - "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x300a7f0a24b012be8b90b21761624f1da3109b33bf47d8b0e34816b824ce2472", - "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x88f936c9b272a119b80045783f70f119b5d7214242c2ffa1dab67c1d2645043c", - "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x3aa76ccda83a8025ad9d12ae64b8efff22fbefa2edee12ddb6a8ee62c15db628", - "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0x1e81c65a2bb74c8870cbf7620003dc978623b83da4f8ad0615d02a4c8ee9be71", - "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x6728f81af4b438713f0a6bafac0a9c5b19559fcb8c9c3da9107a5c5715c77150", - "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x4f8d4f109c805cf57b95add8534e96c2652cf80fc9d6b390797367361c6f9f87", - "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0x393e4f0af86f2b7c4f6cf87053a90fce28be9507462183c08112ab680f5b222b", - "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0x5e5f1fa6a90893daf6400a009781b4e146a9714c9e432719d3dd970d58782dbc", - "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0x25a108e8fabff628d547ade6e7fb5ffba5e3fc4a86d5563c7c9c3f7f89c2838d", - "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0x969a55ba2749858a67b5ac3740218859ff91958711a4726e4729b6358c592541", - "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0x3d4f0ed8ede749b0b7969a845a78a3e04052c5bd67632f9ca3e6b8c95e0471e0", - "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0xa2621adcdd0a0eb0856a4bbc95a7a29ac2576915025f1ffff42a0387c659bd0f", - "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0x7e427b11a67228418d02657537dbbe12e653fb6e25c0553e6cccfd93e09b62f9", - "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x6bc83acae136c07fb371388c5701aab8c4093719964434c48fcbb24fcd242302", - "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x6da106d1876e1ae75110398ba4b4170b8617fdfd7f765682fc2556cfd8fad477", - "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0xdc8c7a10228f753c4a806f00e624f6d5111bcb01fa1a25e49deb8eab5ef3b959", - "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x41810c3ebd3ff83df1d52fce4ae30ae393defeada8c35334f658b552e702a808", - "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0xa59919df888ea0a69aeeb865145ee208e0b5e96e744276097dc5d370ce12c937", - "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0x094c553dcaefa8daccac6512a27b6bd518962acac070c4a90fd4cbcc7d93cd2d", - "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x7cc9590c0632c06b336a729fb338855fa50a4c1f56f6bf19792607545ebfce75", - "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0x0beeaa7af57e04218e931c260a19f7cd5d73728ca9b992e7eaadda5a92352a6c", - "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x5be5a532a4234472bd42f648c860cc6ce505f4abba1d1ff280c307edaa91c6e5", - "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0x970d1a400036ee4ed970edc5fc28c1e1a063fd70abaa5635609f84fda603477c", - "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0xb9b0291e4443cf2919528d4f190963f59f73b2fa60d042ab6d3525ea747e012e", - "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0x84acdb9701e59d7fe938dafaf9d84161838cb862e84f307124a1b1e81e6b77d1", - "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0x9be7c21f6f7d2b6271fe5dfa45f71c067b0a680aa1ca46ff436afba19336059f", - "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0x4e959b3d766a38dd63a3dccadda27ee46608b13a0a17d66ba50f6c6b43794492", - "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0xfdbf22be9ca4e8be48886404f4eda806287824318d22fbd8bbea6a06ff21a749", - "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0x82f7cc493ac5c0c0e32c5797cb61372a985439b996ae320926df3eaf982255f9", - "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0x06e3b2601f985409297e81f89b64df8a22e4bda271630322b723c799b3ca558f", - "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0x60cf8eb3bb66b9f1ee5ad5971ce24f85750ed6d65357278cdd24508018c0fb77", - "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x2819077ee5dc736f75d74505f2686240d84618948ec7c94ac67139c8335c3dfa", - "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x0948ff7e93869e56cfa994a8611af061dab31d429017b64cbdbdec687807a4bd", - "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x59432d2fe5002ddeb6d4b245cfdc6ee8a0b441ff2fb5a9d154f12ef526f40d86", - "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0xc7dd91bb190bb6b918bcbc1671b8820088e5aab9502236f55ed204aae8d437c7", - "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0x97e8f6a69d1e3bd5a9aea5cbc12ebaf74a2268c21220306c5a4fcce978c3134e", - "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0xf8a94a60b67fc29212788ff0d125bd00a78873ce64a5f166989fa0a8a6051880", - "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0xfc6f0ecf57581be16f246383c1b0d39d27d47fd96097b77dd3d9a052f7efd9e5", - "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0x2121ae366fc6daf8a79c5420153e16a31b4c6a485666c11ef4ab20dcedfc1904", - "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xb6dfe8dd1f13f5db49e93909e8151cda0b3eb873950522e2c6dd9409057eea03", - "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0x397baeff4f1ad933330bff0101898d7dd376d33467bfee1fe4c8a13b6930c669", - "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0x6a2caf39dec7db0ca51e6cf1462756efc7b3637490920c3d111cd3d7da46a6e9", - "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0x5e0b5d2f55fe8ea36709508a4741219a009e32273daa8c43278a89b4c67112e4", - "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0xe2f01b5ad1edec664d3d646a708b26f85adde915999d56b2f15c0076a140cbd1", - "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x8274e4be99bf8117209b4cdcc963fc397b868f360d20ecf15233591a84da752c", - "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0x0e8d64923791a322a31ccc8a8c7e1da47622c776414cc2a57c73795dcdad7b88", - "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0x3f0a05354694d442310e2acba79deb48621a7ca32c170d5bc068fd85dbec760e", - "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0x3a552d9bcc7dbb8f9bb088f9fc81163a27aae54b79de7192a2ee88803a2c4598", - "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x262feca09bba056ee9b05c8d0e438c11862533bdabd42f8e79e37a03e994031e", - "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0x35988ff2b50960965250ccfc4a1be70ffa1a327e0cacfb7618db155d5a93d95f", - "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0xf21863beeed8d8213ad163a37547ca404879875838cefd773f45966140e03536", - "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x94538413241766c917b5837bc66a2f07201f9df610e985bc70f6f1a65bc8b824", - "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0xe477c82786dd5186a36ada1d0092522bc04422a133bee0882cbffebee74bdfaf", - "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0x83e3bcf94d15dd8246f343a0c3a25b531da1882a237e65d0e3afa8ccc29c2b53", - "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0xa6f4d72ebb3d8d3b847f560c0e1b9b53be59c61cb17905efcb78d9e59097eb61", - "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x2a2acf181c73055bfbce46e0bd01ffbb73b4481fee51d1442dd0fcfca7011ee1", - "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0x415149af9fd9d712a5c543d203f5e7a4647232c93291b51cc77dda27591acdf3", - "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0x3d537759f6eb0f5d8a0894ab553553e70c7526f15c026641ab457d6e600dd488", - "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0xf8bb072d7779c1f9eab2b5de52a0c7db7603cfc9076151bb5a2ba1ca2ed385b0", - "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0xede216a9f98d06bf4ebab1a696ae992590605bf9bbaf05f742b96ab5d6ba0426", - "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0xdc7f9dbd88b507e36df3737e44106b8594b75eb4324412e960d113f5f61e2f55", - "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0xb148065aef7a6902b5a56404db8dc728253cc3562d6a0c274de4d4db91746cd7", - "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0xd3261ba9e558eda4056861879ede295549b416c75f3b756ca59145552b43ed03", - "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0xa6241689d50ea973e4e0efa11e64f05d85255e18610bd094c6ee95efc2f670b7", - "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0xc9552aff3ed695958e7279ac930e5f4062fb3d9e0831c5fdcf1564019d2581b2", - "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0x1df777cf70c4741367735002de6dbbed06346194749d9825b8578587a139f964", - "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0x57bd3abe704df070c95bd142463c919f7eb8aab851f56a437429d40a2bcc5c04", - "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0x44b2efb1ffc530ee28b53ad75aba15d03beeac3d3ac00ab456a95e72b6e46e28", - "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0xfaa34d98d5776b63a0aa707cac04e3906a769c7b9822181e5831c3fdbe3852bc", - "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0xec8b5dc385c72e1925585a8809df24b1797663b362d7ee698e94c244d95c4502", - "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0xdd9518d23f6500d095760fe27b6be884cb729141828840501c745fbbb4077ac1", - "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x2ad5bca64988a60eb6c015984d86f896d7780f89ba4e17d239a8d18dd0ff3c62", - "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0xb1ce5c0bc015130411f74c52c69b17b34778beda878cf35582f4db10e1b37798", - "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0xf159bc6a781614afd84e7452a57afcea4b02c2a1d89e2af4b345d5704648274f", - "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0x17d6e86db99e31eec29b25faf06888bbb0cc5f5bad64d462c36c095384236eb8", - "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0x1f81a0a54c5acf8c6849d3555566ae3bcc078fac98ac44d95a248579e00254a6", - "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x0c51789af2ef3a02c1a8dd4a5e90898ae4ab495909a0dec337d2adbf641f9e14", - "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xc1ee9666521d2494288b3a4264e7428c4be31fbfd0412b7d3e480fa66cb7868e", - "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0x1e56055aa5510e42a522ac0d45baadeec54cb1ab4f80ed05fbcb01d6a63fe709", - "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0x6c9fce723d522ec708cd4ff6d363277b03fe48fafee79e2b53ce7dfd95838f72", - "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0x1d8e49343d812229fba1f2e7f04a6162224a566681d781c71b792fdc1b08947c", - "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0xce84576e03736d879f77af0652b62185234af2ccc4e2e21e276813fa0ca47dbd", - "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x30a78a430a10cae0d78913036d460eef5c6085c46f8ecf1ad7ba8dee76a12527", - "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xf261698164fef1649da47f846c6677648f524bc880b257fc771dd65ac540487d", - "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0xedbc661a883e5f47ea5fa4bf5a06374fb60827e5e0e2ac413a96187e3f39a1e3", - "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x65dfab50959d4f7a0e4bec441a6e0422d4dfcd0e23921c0069e35cc59cad38aa", - "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0x511286c4c9ce19b57a4ec47efd46f4a336175d36659a5b2741e611205b184853", - "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x6ed3ddec8444bee9863077d70a0e8ca506242de914f1b3b581c88aecfa67bae3", - "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0x7e1303e5cfb944c6b0d95e5f9fab038b305c8d80054394e24d8bf64b34b8553a", - "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x57f5289b1bb4008c2090b3e7401e8abdfdfb1bc5b6a4d649752bd537ddc04722", - "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x2eb3509bf33b5e29124d61b4affc78b271c5b13aa60d4be9ec1d659ff41eaaff", - "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c", - "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0x97faf2540a0b1ddff6e7f25bbfc7067eecad0334524a70e1caffdc519e2098d3", - "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x9e743ce40f1f5cad26d7b9a83dd1b7750d9637f13edcfa95ec45ffaaac81cf4d", - "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0x794047e361d3837b84a3941bb8fee704e083433404e68e20e6d54dbb5673cad5", - "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0xec956a3c13b3db5c34acc7a19b2d655886c25483254065c7f770ebe64c71b3a2", - "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0x6928f835a904ad05c54fc1eb9d1269d5396e62eac58cf53f7967dfe54c2e8ced", - "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0xf680a00084f0e61980327af92d5bd5f5eead25d5ad392c18669fe9db72ab1de8", - "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0x7b86aa064d0d8c77685fe76955f83ecc2c63d06bbdf5ee21273e6866243653f9", - "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0x2746e22f8f134808ba8332294d5687b975c8dbabca51f5e773483a8b5c006de9", - "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0xd698c1ab8cecb252cd6c05371b19885d7f3937ababd26250745bb1d9fa6ee019", - "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x70e632d62a24202debf5e4099010c5c360b26f8ce9bcfbd49d52789a3c45a9c5", - "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0xb5469f185e5a69f8591b4cc9d326eae8fddb86df381408d8ea428ad1001231b3", - "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x6acb3837b8b069d5af140c6ec99358c862d9af443aa87ca8dbdecdc4963dc83e", - "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0x43c1205fc3af779d6b9719327d60bc4cf61a2509264defcd7cbc104e731cf461", - "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0x104ef1548854fd68403152a4661360a484e116c8926d5435325684339e7a4792", - "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0x81879f4a1e9a6115d6a8f1cb02a13cd6bf9e2713ccd4518c39290ab0aab855bf", - "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0x4e960abf91b2868b8f7003d4c788f2971f17fdd673c552d8c6c7abdbcf1264f3", - "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x3b2e581f72613f5ca5845ecd97fa54133c4ef2edb41d4cee048050ae61352891", - "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xf7aa8fb0db1de5d2e102c3bac7c4b664c7c4f190100681e826d93784c76126f5", - "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0x838e80e58c62e04a7420ff13e450b65df38095aa51471975742b89a6c23e2e0a", - "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0xe42b1d1c8ee5efd399068416bf77f3f194e29a94406acc88a90dd8029bb706aa", - "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0xf5a4f393712a9dc7164f0decbf90af2594a4a7199ea0d380c8e4f265ca7ddd59", - "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0xc15d506b720e9e47f1ab76510eb0d8d93f1a8331a0edb71d30fe2a862693e607", - "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0x858a716e3b2e9e71be3120de427ebf5ec1b461721645c245f948274f13f87c33", - "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0x3736ba57e9fa1f82ba9dcdb63142c2871ab6664ec6d2bae0e185feb698b16211", - "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0xe3e1904ab43bab2a002c7cbfe2a25087211a92f163eb4f8f5ea89905fc0232e2", - "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0x300a46a6b7c9574270a6a261b1fe09765b1d186991b5a7f054b2fb6b89980310", - "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0xa9f457c3e8f90ce4147a5368ac7d1bad29fc3e7a7b566e9da8caea80e70f9015", - "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xf23a24daea2a46388337064f8e466bdc9b848414b246769da8dc756cd19ed352", - "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xda049b4223747412a535f4b007166fbf1b6d7de42f9f49ddf8453d5312a3e66b", - "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0xc840d2761d833abbc469ae1140d1eb5827d2cd2d1bf70520fa1281debdf99926", - "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0x2d7aa5836ae880f2bd9b1b14d18abef42b5cc8116b332c368457555899fdf184", - "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0xcc7b6d3a8fc8b32878e333578ab57e96a7ef8ec4498bcc6e839c362924ea52d3", - "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0xd79ce52a240701df5add9d5f325ab0222271e8ff70e36150426546470bdfd3bc", - "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0x0950d9b3f34603308ac7583d791fff9e2b9627dbbf9490f5dd7dd67410a6093f", - "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0x7438e09365085c82eabdf045069e749fb95b4e7d39c1ac56fa74c1f5e62500c4", - "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0x21a473555224392259558994ae30f93250f305fa14569e452539df785576b629", - "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0x70c306983d152a50905f7561c77ee48938deeb794beaef341bb294c2bb5aa996", - "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0x09ecce08348f4ae9b6f3ac6fac862e441ed9876e33212694c0a4d6639a797c3f", - "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x5854ab7960bb36c34701a6509fd85eed4b505cf15fc68a2e6c297361c0847d50", - "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0x359325eddf76b5a758697c7be661653a0cec39c51214da8e5a7155b6877753fe", - "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0xfb993017bb92a8e2868d6d52b486aea8013dcd9bca8fd557306ee48bdfacbecb", - "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0x1d0afcbaf07da5e4eb570df8b551b24ecfc889c54036de1f31a27bd15a9268d1", - "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x51ca0aacdd00a18ce65eb4614b17c7a50b05861841dcb6b652936463527f38dd", - "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0x374088f90087c668259444d8b4118937cc5b296f2b9f3b9a2435c019fca6c4de", - "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x7a410b6e800f2e2a15b5027b90e855b8cd0954fbb22dd245c4a884a6603f3e55", - "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0x0d0f6fdadb7b2dcd0b4130e44d20195c4b13caeaa1f65c38249c330b4c1307d2", - "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0x00330abb569ac93d08b902bbd9e4c69041511417d3c88450b7291f99422c1587", - "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0xf2a08b0909acde30ef72a7291cda5314b76e544136d83ceb0339fa2c1221aed5", - "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0x1c15c9326be25b19496c25ee66545bfd8151c573a49c6a9075d0a5a98e4f7981", - "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0x540988b6594c264ac5fced6a9021e98b3a3c6764e6f9d1112536c6d2445dbc63", - "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0xa351d146407bd613cb443031d474c0639f3a328af429866b38d094caa21a44a0", - "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x2fc81e546084af17b8d99788f4d05254499de49fa2065d79950f19355e23c781", - "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0xc2d8c65d82ab5413d81ef44e28833be0dd286376ea47e02b26400a67f34c579e", - "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x0624b35d4b654877cf5331f3865b28a8e872efbe40cd877a5470a1e4509107cc", - "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0xc4209783660db421a861200b7164aacd682ca5bc2a53dcd40c9235b78245a0c0", - "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0xa8539d032e6aba8837568af71ddfe4494139ba37e2ccba5df3a6cb0b5d157c60", - "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xcd40ec7af217643b816992906439d9c638e4b97203bebc5a4ceb5eed92f5f82f", - "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0x8c1fd6c6d4e328f4ac2d47d67bde6223d9ba3b1ab9d2d2d819462bb8a39d9079", - "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x16f6f47720607a364c0df4718d78810d5ed8ec5ecac4c18380d6acef614a08e9" - } + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e": + "0x22d83073f60ede68f262043f367d457b161761884cd24bb17666e8c196b266eb", + c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad: + "0x813dab097dc9a913a37553dc21a51ec264c5b3018a9148530ee5d4131d9cd948", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1": + "0x12cd27871301e7b10488d294b21fdca0e02208d60d966cc363137c432bce49dd", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b": + "0x8f011dc003102d272bcfb9a1423ed9ab16bf8720102888dbdf3481dc2b81fe52", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0": + "0xbff692a9a42736393001e997f0895203c81a0b0d7d100177150d3ca2404c2264", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5": + "0x7b06c8e0204faba400a6b69c75b51fe84ef24c4251340f4b00eca37852ef9944", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63": + "0xc9c0f5b0c331f02792cf47a6136fdea01772aa6e8bcd0acd7927b2cbf0c9500b", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86": + "0x73198faa767ea791159fb8c64c71ff490793fbe1abec0af9d959653739b86242", + d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4: + "0x7786857b0713ec6b060c873ba9ebf70cdbe8770453214aa7129e0965d3a8725d", + b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf: + "0xd9b07adaceffb21296de31b46ef0f1db8825a83098d22af07f60205c6394bdd7", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717": + "0x2b9e4beab792ea64bf6dea7d1d4455a6ff70744602a73388b3d03fc58cc0eca4", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88": + "0xe6eb8bc3a9cdab5955a78ebf0dd3f5e4ed3458ab4491285345dd8a6d0aecd2af", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0": + "0x29405b9f25ad9deb23357298732edb4383d3745ffd9a0373cf3028992d85cf99", + d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7: + "0x94223482aa78b4dc59f670ca42c8c9a93b90b0c21721f6a9d679e3f5a50e4434", + b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0: + "0x6f5059e755771ad838278b6407a769717b40629f4655bfe9c2afe781cce5d966", + dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c: + "0x08eae5969d90a4f03e33582077407608f74df4ccc5273cae3236710f68dc348e", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32": + "0xe883778d404e7c9eb7ff6fa190e8ddaa26a1b175c02cb00b1b72a4390e38c5f7", + bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627: + "0x0ec8b3c28c4240c5acc6c7ff145310d6d2129e6b718189be9c36828d75cf136e", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e": + "0x72f36e3b229031b91718b533cde17bf48a3222f4821486f47801671f8d584308", + eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879: + "0x35f9fa1bc253e91cfb42396800a37886b7d5fda5e015a9a5d7eea24b4a516421", + f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e: + "0xc6e1c6307fa87aa0f3c8e33ce786c6a80ca4aa6de74b8e1a62d9e65ad1047aac", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812": + "0x75b7db1ba4946126fa9193d4d00216cd1a52a17087c35feda74905bd0386c076", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1": + "0x1666ee917cb925fd3d78da42bfb14c8aa2f51ba1fdfe7a424220fa709133426a", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e": + "0x7ceb15c8e72d0b917103e43a695e94e40dc653bccbc0806bb71d3ea6539884da", + b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5: + "0x663c14c977c46b85b5ea3f1a97ebc5b93d8cf6cf2c94d01dbcfaef0d0ef9efdf", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1": + "0x8e812924daaf7dc02188976e71d20d86baaf90129d1c1f4470b7e79084fed804", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a": + "0x54499295661a8cfb2c4da4184e330ab5948c4ec7522cad5f96e923b97bc91e61", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623": + "0x3c90b83f0acb025336debeb37d6014cdc788d9bece7828eb1412ebe44a01d31f", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d": + "0x0ffe43da21a5d957c833d778b0f527b82980f1b210cafa592054f0a026b658b4", + f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd: + "0xb9792f919aebd4ce7eb2a4c4b400dc40c2260f81b516e62cd3bb16a2f1cdaec3", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293": + "0x784f3db957f968930f9ac749c9b61ef614716964d93e689a482e15c665cf210e", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a": + "0x847b4e30707fbaedbe1ebf261a9c08299b53389def13b6268f0aaed06118b711", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58": + "0x243536ac6942683448eb0f0013540ee72a6d31dd4f6efebb44a0918de2234a67", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f": + "0x421f3e1cc42aa5cfd4dc87de41c16bde36a9dffb3392bf61c70d6b3f0ba73a99", + be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483: + "0xf6bcaef2cb75a98bf2c16af8e0b0a36127f865be99a456ebbbbcfc2d54632fc2", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6": + "0x2ef5a5df964ff7cecceb968fbe84e8e12e6048518ab3c24e9343b46f6d1dd011", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271": + "0xc38286eec0a9bdc4f7f8ebff7070bf4441ddb06af48cca506cd5477f72a1ec56", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5": + "0x8190db687f806ebb5a85e19789a969680e0fd8380724c4f51353ed0fd57d0a35", + f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a: + "0x3192a035740b7d8a9a2f34e87983f43052bda1a8df4f257dba38d0d021b5afe5", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688": + "0x7c9f660c492c80357be785fb2b2eeb37147343740244975bc9622311281c945c", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1": + "0x6535ece8ec0e0a6a6f1baf5b80f64bd8d5c18fa2f40b5023e495ad02a9564a49", + cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef: + "0xe6638d450412b1934890a43d48606d91ad5c945a25ace66f211ccc9f606cf405", + ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c: + "0x25325258fd0fb6965aedf380cde6636109d6e3b6c2faa47ec91d2f976bbae702", + a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8: + "0x537d0fd5f9576506fce8c81f976a5e7dd183ef875585e78cde420baa9c2dc0cf", + feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8: + "0x342f11fa43dbe19d0d5097f28526f4c40a7c9e84097a59d66bb619bff59d971b", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9": + "0x300a7f0a24b012be8b90b21761624f1da3109b33bf47d8b0e34816b824ce2472", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9": + "0x88f936c9b272a119b80045783f70f119b5d7214242c2ffa1dab67c1d2645043c", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b": + "0x3aa76ccda83a8025ad9d12ae64b8efff22fbefa2edee12ddb6a8ee62c15db628", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c": + "0x1e81c65a2bb74c8870cbf7620003dc978623b83da4f8ad0615d02a4c8ee9be71", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628": + "0x6728f81af4b438713f0a6bafac0a9c5b19559fcb8c9c3da9107a5c5715c77150", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e": + "0x4f8d4f109c805cf57b95add8534e96c2652cf80fc9d6b390797367361c6f9f87", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933": + "0x393e4f0af86f2b7c4f6cf87053a90fce28be9507462183c08112ab680f5b222b", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554": + "0x5e5f1fa6a90893daf6400a009781b4e146a9714c9e432719d3dd970d58782dbc", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca": + "0x25a108e8fabff628d547ade6e7fb5ffba5e3fc4a86d5563c7c9c3f7f89c2838d", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7": + "0x969a55ba2749858a67b5ac3740218859ff91958711a4726e4729b6358c592541", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415": + "0x3d4f0ed8ede749b0b7969a845a78a3e04052c5bd67632f9ca3e6b8c95e0471e0", + d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd: + "0xa2621adcdd0a0eb0856a4bbc95a7a29ac2576915025f1ffff42a0387c659bd0f", + baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485: + "0x7e427b11a67228418d02657537dbbe12e653fb6e25c0553e6cccfd93e09b62f9", + e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2: + "0x6bc83acae136c07fb371388c5701aab8c4093719964434c48fcbb24fcd242302", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445": + "0x6da106d1876e1ae75110398ba4b4170b8617fdfd7f765682fc2556cfd8fad477", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc": + "0xdc8c7a10228f753c4a806f00e624f6d5111bcb01fa1a25e49deb8eab5ef3b959", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a": + "0x41810c3ebd3ff83df1d52fce4ae30ae393defeada8c35334f658b552e702a808", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0": + "0xa59919df888ea0a69aeeb865145ee208e0b5e96e744276097dc5d370ce12c937", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c": + "0x094c553dcaefa8daccac6512a27b6bd518962acac070c4a90fd4cbcc7d93cd2d", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501": + "0x7cc9590c0632c06b336a729fb338855fa50a4c1f56f6bf19792607545ebfce75", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32": + "0x0beeaa7af57e04218e931c260a19f7cd5d73728ca9b992e7eaadda5a92352a6c", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2": + "0x5be5a532a4234472bd42f648c860cc6ce505f4abba1d1ff280c307edaa91c6e5", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9": + "0x970d1a400036ee4ed970edc5fc28c1e1a063fd70abaa5635609f84fda603477c", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386": + "0xb9b0291e4443cf2919528d4f190963f59f73b2fa60d042ab6d3525ea747e012e", + c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b: + "0x84acdb9701e59d7fe938dafaf9d84161838cb862e84f307124a1b1e81e6b77d1", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab": + "0x9be7c21f6f7d2b6271fe5dfa45f71c067b0a680aa1ca46ff436afba19336059f", + ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace: + "0x4e959b3d766a38dd63a3dccadda27ee46608b13a0a17d66ba50f6c6b43794492", + ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d: + "0xfdbf22be9ca4e8be48886404f4eda806287824318d22fbd8bbea6a06ff21a749", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411": + "0x82f7cc493ac5c0c0e32c5797cb61372a985439b996ae320926df3eaf982255f9", + af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449: + "0x06e3b2601f985409297e81f89b64df8a22e4bda271630322b723c799b3ca558f", + ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b: + "0x60cf8eb3bb66b9f1ee5ad5971ce24f85750ed6d65357278cdd24508018c0fb77", + b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819: + "0x2819077ee5dc736f75d74505f2686240d84618948ec7c94ac67139c8335c3dfa", + e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca: + "0x0948ff7e93869e56cfa994a8611af061dab31d429017b64cbdbdec687807a4bd", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4": + "0x59432d2fe5002ddeb6d4b245cfdc6ee8a0b441ff2fb5a9d154f12ef526f40d86", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5": + "0xc7dd91bb190bb6b918bcbc1671b8820088e5aab9502236f55ed204aae8d437c7", + d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4: + "0x97e8f6a69d1e3bd5a9aea5cbc12ebaf74a2268c21220306c5a4fcce978c3134e", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1": + "0xf8a94a60b67fc29212788ff0d125bd00a78873ce64a5f166989fa0a8a6051880", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549": + "0xfc6f0ecf57581be16f246383c1b0d39d27d47fd96097b77dd3d9a052f7efd9e5", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d": + "0x2121ae366fc6daf8a79c5420153e16a31b4c6a485666c11ef4ab20dcedfc1904", + f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e: + "0xb6dfe8dd1f13f5db49e93909e8151cda0b3eb873950522e2c6dd9409057eea03", + fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec: + "0x397baeff4f1ad933330bff0101898d7dd376d33467bfee1fe4c8a13b6930c669", + c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90: + "0x6a2caf39dec7db0ca51e6cf1462756efc7b3637490920c3d111cd3d7da46a6e9", + e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c: + "0x5e0b5d2f55fe8ea36709508a4741219a009e32273daa8c43278a89b4c67112e4", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a": + "0xe2f01b5ad1edec664d3d646a708b26f85adde915999d56b2f15c0076a140cbd1", + ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8: + "0x8274e4be99bf8117209b4cdcc963fc397b868f360d20ecf15233591a84da752c", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc": + "0x0e8d64923791a322a31ccc8a8c7e1da47622c776414cc2a57c73795dcdad7b88", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042": + "0x3f0a05354694d442310e2acba79deb48621a7ca32c170d5bc068fd85dbec760e", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74": + "0x3a552d9bcc7dbb8f9bb088f9fc81163a27aae54b79de7192a2ee88803a2c4598", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918": + "0x262feca09bba056ee9b05c8d0e438c11862533bdabd42f8e79e37a03e994031e", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad": + "0x35988ff2b50960965250ccfc4a1be70ffa1a327e0cacfb7618db155d5a93d95f", + d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305: + "0xf21863beeed8d8213ad163a37547ca404879875838cefd773f45966140e03536", + a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13: + "0x94538413241766c917b5837bc66a2f07201f9df610e985bc70f6f1a65bc8b824", + e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31: + "0xe477c82786dd5186a36ada1d0092522bc04422a133bee0882cbffebee74bdfaf", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04": + "0x83e3bcf94d15dd8246f343a0c3a25b531da1882a237e65d0e3afa8ccc29c2b53", + a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb: + "0xa6f4d72ebb3d8d3b847f560c0e1b9b53be59c61cb17905efcb78d9e59097eb61", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5": + "0x2a2acf181c73055bfbce46e0bd01ffbb73b4481fee51d1442dd0fcfca7011ee1", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd": + "0x415149af9fd9d712a5c543d203f5e7a4647232c93291b51cc77dda27591acdf3", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe": + "0x3d537759f6eb0f5d8a0894ab553553e70c7526f15c026641ab457d6e600dd488", + b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0: + "0xf8bb072d7779c1f9eab2b5de52a0c7db7603cfc9076151bb5a2ba1ca2ed385b0", + b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a: + "0xede216a9f98d06bf4ebab1a696ae992590605bf9bbaf05f742b96ab5d6ba0426", + a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f: + "0xdc7f9dbd88b507e36df3737e44106b8594b75eb4324412e960d113f5f61e2f55", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f": + "0xb148065aef7a6902b5a56404db8dc728253cc3562d6a0c274de4d4db91746cd7", + bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7: + "0xd3261ba9e558eda4056861879ede295549b416c75f3b756ca59145552b43ed03", + e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43: + "0xa6241689d50ea973e4e0efa11e64f05d85255e18610bd094c6ee95efc2f670b7", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9": + "0xc9552aff3ed695958e7279ac930e5f4062fb3d9e0831c5fdcf1564019d2581b2", + c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b: + "0x1df777cf70c4741367735002de6dbbed06346194749d9825b8578587a139f964", + d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1: + "0x57bd3abe704df070c95bd142463c919f7eb8aab851f56a437429d40a2bcc5c04", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc": + "0x44b2efb1ffc530ee28b53ad75aba15d03beeac3d3ac00ab456a95e72b6e46e28", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1": + "0xfaa34d98d5776b63a0aa707cac04e3906a769c7b9822181e5831c3fdbe3852bc", + b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc: + "0xec8b5dc385c72e1925585a8809df24b1797663b362d7ee698e94c244d95c4502", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a": + "0xdd9518d23f6500d095760fe27b6be884cb729141828840501c745fbbb4077ac1", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7": + "0x2ad5bca64988a60eb6c015984d86f896d7780f89ba4e17d239a8d18dd0ff3c62", + ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225: + "0xb1ce5c0bc015130411f74c52c69b17b34778beda878cf35582f4db10e1b37798", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7": + "0xf159bc6a781614afd84e7452a57afcea4b02c2a1d89e2af4b345d5704648274f", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7": + "0x17d6e86db99e31eec29b25faf06888bbb0cc5f5bad64d462c36c095384236eb8", + c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46: + "0x1f81a0a54c5acf8c6849d3555566ae3bcc078fac98ac44d95a248579e00254a6", + d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a: + "0x0c51789af2ef3a02c1a8dd4a5e90898ae4ab495909a0dec337d2adbf641f9e14", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676": + "0xc1ee9666521d2494288b3a4264e7428c4be31fbfd0412b7d3e480fa66cb7868e", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f": + "0x1e56055aa5510e42a522ac0d45baadeec54cb1ab4f80ed05fbcb01d6a63fe709", + eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a: + "0x6c9fce723d522ec708cd4ff6d363277b03fe48fafee79e2b53ce7dfd95838f72", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79": + "0x1d8e49343d812229fba1f2e7f04a6162224a566681d781c71b792fdc1b08947c", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983": + "0xce84576e03736d879f77af0652b62185234af2ccc4e2e21e276813fa0ca47dbd", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507": + "0x30a78a430a10cae0d78913036d460eef5c6085c46f8ecf1ad7ba8dee76a12527", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c": + "0xf261698164fef1649da47f846c6677648f524bc880b257fc771dd65ac540487d", + abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779: + "0xedbc661a883e5f47ea5fa4bf5a06374fb60827e5e0e2ac413a96187e3f39a1e3", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30": + "0x65dfab50959d4f7a0e4bec441a6e0422d4dfcd0e23921c0069e35cc59cad38aa", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5": + "0x511286c4c9ce19b57a4ec47efd46f4a336175d36659a5b2741e611205b184853", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc": + "0x6ed3ddec8444bee9863077d70a0e8ca506242de914f1b3b581c88aecfa67bae3", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d": + "0x7e1303e5cfb944c6b0d95e5f9fab038b305c8d80054394e24d8bf64b34b8553a", + ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578: + "0x57f5289b1bb4008c2090b3e7401e8abdfdfb1bc5b6a4d649752bd537ddc04722", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179": + "0x2eb3509bf33b5e29124d61b4affc78b271c5b13aa60d4be9ec1d659ff41eaaff", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d": + "0x9a6d328a6ebd906ed842e6e874e14bea69efa1c421fbfe7f689c33412a43c41c", + ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6: + "0x97faf2540a0b1ddff6e7f25bbfc7067eecad0334524a70e1caffdc519e2098d3", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c": + "0x9e743ce40f1f5cad26d7b9a83dd1b7750d9637f13edcfa95ec45ffaaac81cf4d", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814": + "0x794047e361d3837b84a3941bb8fee704e083433404e68e20e6d54dbb5673cad5", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419": + "0xec956a3c13b3db5c34acc7a19b2d655886c25483254065c7f770ebe64c71b3a2", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae": + "0x6928f835a904ad05c54fc1eb9d1269d5396e62eac58cf53f7967dfe54c2e8ced", + c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009: + "0xf680a00084f0e61980327af92d5bd5f5eead25d5ad392c18669fe9db72ab1de8", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1": + "0x7b86aa064d0d8c77685fe76955f83ecc2c63d06bbdf5ee21273e6866243653f9", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535": + "0x2746e22f8f134808ba8332294d5687b975c8dbabca51f5e773483a8b5c006de9", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe": + "0xd698c1ab8cecb252cd6c05371b19885d7f3937ababd26250745bb1d9fa6ee019", + fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81: + "0x70e632d62a24202debf5e4099010c5c360b26f8ce9bcfbd49d52789a3c45a9c5", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6": + "0xb5469f185e5a69f8591b4cc9d326eae8fddb86df381408d8ea428ad1001231b3", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240": + "0x6acb3837b8b069d5af140c6ec99358c862d9af443aa87ca8dbdecdc4963dc83e", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3": + "0x43c1205fc3af779d6b9719327d60bc4cf61a2509264defcd7cbc104e731cf461", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90": + "0x104ef1548854fd68403152a4661360a484e116c8926d5435325684339e7a4792", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652": + "0x81879f4a1e9a6115d6a8f1cb02a13cd6bf9e2713ccd4518c39290ab0aab855bf", + e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353: + "0x4e960abf91b2868b8f7003d4c788f2971f17fdd673c552d8c6c7abdbcf1264f3", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864": + "0x3b2e581f72613f5ca5845ecd97fa54133c4ef2edb41d4cee048050ae61352891", + d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6: + "0xf7aa8fb0db1de5d2e102c3bac7c4b664c7c4f190100681e826d93784c76126f5", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb": + "0x838e80e58c62e04a7420ff13e450b65df38095aa51471975742b89a6c23e2e0a", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad": + "0xe42b1d1c8ee5efd399068416bf77f3f194e29a94406acc88a90dd8029bb706aa", + c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17: + "0xf5a4f393712a9dc7164f0decbf90af2594a4a7199ea0d380c8e4f265ca7ddd59", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794": + "0xc15d506b720e9e47f1ab76510eb0d8d93f1a8331a0edb71d30fe2a862693e607", + f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5: + "0x858a716e3b2e9e71be3120de427ebf5ec1b461721645c245f948274f13f87c33", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3": + "0x3736ba57e9fa1f82ba9dcdb63142c2871ab6664ec6d2bae0e185feb698b16211", + c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f: + "0xe3e1904ab43bab2a002c7cbfe2a25087211a92f163eb4f8f5ea89905fc0232e2", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76": + "0x300a46a6b7c9574270a6a261b1fe09765b1d186991b5a7f054b2fb6b89980310", + a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b: + "0xa9f457c3e8f90ce4147a5368ac7d1bad29fc3e7a7b566e9da8caea80e70f9015", + a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b: + "0xf23a24daea2a46388337064f8e466bdc9b848414b246769da8dc756cd19ed352", + e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86: + "0xda049b4223747412a535f4b007166fbf1b6d7de42f9f49ddf8453d5312a3e66b", + c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400: + "0xc840d2761d833abbc469ae1140d1eb5827d2cd2d1bf70520fa1281debdf99926", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe": + "0x2d7aa5836ae880f2bd9b1b14d18abef42b5cc8116b332c368457555899fdf184", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b": + "0xcc7b6d3a8fc8b32878e333578ab57e96a7ef8ec4498bcc6e839c362924ea52d3", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6": + "0xd79ce52a240701df5add9d5f325ab0222271e8ff70e36150426546470bdfd3bc", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d": + "0x0950d9b3f34603308ac7583d791fff9e2b9627dbbf9490f5dd7dd67410a6093f", + c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44: + "0x7438e09365085c82eabdf045069e749fb95b4e7d39c1ac56fa74c1f5e62500c4", + eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66: + "0x21a473555224392259558994ae30f93250f305fa14569e452539df785576b629", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785": + "0x70c306983d152a50905f7561c77ee48938deeb794beaef341bb294c2bb5aa996", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e": + "0x09ecce08348f4ae9b6f3ac6fac862e441ed9876e33212694c0a4d6639a797c3f", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744": + "0x5854ab7960bb36c34701a6509fd85eed4b505cf15fc68a2e6c297361c0847d50", + c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff: + "0x359325eddf76b5a758697c7be661653a0cec39c51214da8e5a7155b6877753fe", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592": + "0xfb993017bb92a8e2868d6d52b486aea8013dcd9bca8fd557306ee48bdfacbecb", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3": + "0x1d0afcbaf07da5e4eb570df8b551b24ecfc889c54036de1f31a27bd15a9268d1", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80": + "0x51ca0aacdd00a18ce65eb4614b17c7a50b05861841dcb6b652936463527f38dd", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710": + "0x374088f90087c668259444d8b4118937cc5b296f2b9f3b9a2435c019fca6c4de", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2": + "0x7a410b6e800f2e2a15b5027b90e855b8cd0954fbb22dd245c4a884a6603f3e55", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae": + "0x0d0f6fdadb7b2dcd0b4130e44d20195c4b13caeaa1f65c38249c330b4c1307d2", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8": + "0x00330abb569ac93d08b902bbd9e4c69041511417d3c88450b7291f99422c1587", + ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52: + "0xf2a08b0909acde30ef72a7291cda5314b76e544136d83ceb0339fa2c1221aed5", + b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd: + "0x1c15c9326be25b19496c25ee66545bfd8151c573a49c6a9075d0a5a98e4f7981", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a": + "0x540988b6594c264ac5fced6a9021e98b3a3c6764e6f9d1112536c6d2445dbc63", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6": + "0xa351d146407bd613cb443031d474c0639f3a328af429866b38d094caa21a44a0", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481": + "0x2fc81e546084af17b8d99788f4d05254499de49fa2065d79950f19355e23c781", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d": + "0xc2d8c65d82ab5413d81ef44e28833be0dd286376ea47e02b26400a67f34c579e", + b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25: + "0x0624b35d4b654877cf5331f3865b28a8e872efbe40cd877a5470a1e4509107cc", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b": + "0xc4209783660db421a861200b7164aacd682ca5bc2a53dcd40c9235b78245a0c0", + fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0: + "0xa8539d032e6aba8837568af71ddfe4494139ba37e2ccba5df3a6cb0b5d157c60", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c": + "0xcd40ec7af217643b816992906439d9c638e4b97203bebc5a4ceb5eed92f5f82f", + fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245: + "0x8c1fd6c6d4e328f4ac2d47d67bde6223d9ba3b1ab9d2d2d819462bb8a39d9079", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283": + "0x16f6f47720607a364c0df4718d78810d5ed8ec5ecac4c18380d6acef614a08e9", +}; const price_feed_id_url = "https://xc-mainnet.pyth.network/api/price_feed_ids"; // <= NOTE: Update this when changing network -async function main(){ - // get keys from map (price feed ids) - // console.log("price ids published len: ", Object.keys(price_ids_to_price_objects).length) - // let all_keys = Object.keys(price_ids_to_price_objects).map(x=>x.toUpperCase()) - // console.log("all keys: ", all_keys) +async function main() { + // get keys from map (price feed ids) + // console.log("price ids published len: ", Object.keys(price_ids_to_price_objects).length) + // let all_keys = Object.keys(price_ids_to_price_objects).map(x=>x.toUpperCase()) + // console.log("all keys: ", all_keys) - // let { data } = await axios.get(price_feed_id_url); - // console.log("data len: ", data.length) - // let not_published = [] - // for (let item of data){ - // //console.log("item: ", item) - // if (!(all_keys.indexOf(item.toUpperCase())>-1)){ - // console.log("not found in keys") - // not_published = not_published.concat(item) - // } - // } - // console.log("not published: ", not_published) - // console.log("not_published length: ", not_published.length) + // let { data } = await axios.get(price_feed_id_url); + // console.log("data len: ", data.length) + // let not_published = [] + // for (let item of data){ + // //console.log("item: ", item) + // if (!(all_keys.indexOf(item.toUpperCase())>-1)){ + // console.log("not found in keys") + // not_published = not_published.concat(item) + // } + // } + // console.log("not published: ", not_published) + // console.log("not_published length: ", not_published.length) - - let buf = Buffer.from([ - 139, - 98, - 134, - 111, - 205, - 58, - 37, - 255, - 145, - 24, - 80, - 100, - 68, - 233, - 254, - 81, - 113, - 230, - 124, - 97, - 160, - 73, - 244, - 180, - 253, - 172, - 219, - 195, - 26, - 232, - 98, - 187 - ]).toString("hex") - console.log("buf is: ", buf) + let buf = Buffer.from([ + 139, 98, 134, 111, 205, 58, 37, 255, 145, 24, 80, 100, 68, 233, 254, 81, + 113, 230, 124, 97, 160, 73, 244, 180, 253, 172, 219, 195, 26, 232, 98, 187, + ]).toString("hex"); + console.log("buf is: ", buf); } -main() +main(); diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 10a2d8ceb6..566483cc4c 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -28,51 +28,46 @@ const provider = new JsonRpcProvider( new Connection({ fullnode: registry["RPC_URL"] }) ); -const connection = new PriceServiceConnection( - price_connection_url, - { - priceFeedRequestConfig: { - binary: true, - }, - } -); +const connection = new PriceServiceConnection(price_connection_url, { + priceFeedRequestConfig: { + binary: true, + }, +}); async function main() { if (walletPrivateKey === undefined) { throw new Error("Wallet key unset in environment"); } const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "hex") - ), + Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), provider ); console.log(wallet.getAddress()); // update a single price feed - const _deployer = "0xf0bd738bf137f4cb0601713e95bb9307a5efe8d27f34c9e34f419e17b4e74099";// testnet + const _deployer = + "0xf0bd738bf137f4cb0601713e95bb9307a5efe8d27f34c9e34f419e17b4e74099"; // testnet // Price feeds IDs of feeds we are interested in updating. const _price_feed_ids = [ - "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", - "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", - "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" - ]; + "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", + "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", + "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1", + ]; // Batch attestation VAA for price feed IDs above. const vaas = [ - 'AQAAAAABAEV7/X8bjY4dpfT1vfNn6yxAvQUGDw5+cmUcs0qKddnPOc76sAVA76QqcRJlGGNJFOyRSVxEtejb5ufqIx99BrkBZFWgEwAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmE0BUDJXSAADAAEAAQIABQCdbQGa55bF3PAaj/dFvylmM/7ksc5l+Znf6Dh2cLQS04AZeG8x6F01mM7Nq4ELJ4feD8IsLPmLTxb7Hlv1Z6CkMQAAAAACxD7OAAAAAAABS2L////4AAAAAALD2yUAAAAAAAC9PQEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAACxBwjAAAAAAABKLcAAAAAZFWgCqmeZwvnpS94J0Hz0p7r3Wf8PzJV4TpTWn+5piu04/t3i2KGb806Jf+RGFBkROn+UXHmfGGgSfS0/azbwxroYrsAAAAACRX/7wAAAAAAAVK3////+AAAAAAJE7maAAAAAAAB6zMBAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAACRX/7wAAAAAAAVK3AAAAAGRVoAl+Yw45hhOUDjYjAl2plplx0/MalDbZej7hWqfLWEavS/cxEtStJv03zxjKmz9+bxpWK1lly8JuRIilQFUvGAcuAAAAAAAFEN8AAAAAAAAB8/////gAAAAAAAUSKgAAAAAAAAMHAQAAAAEAAAACAAAAAGRVoBMAAAAAZFWgEwAAAABkVaASAAAAAAAFEN8AAAAAAAAB8wAAAABkVaAKD+5d3AdqlvGg7TGQdX5DE6SESe17memDpYdZE5ORzgVs1cmcbYbfkosFYvJmF93vQAgY+JBzkfMIeWXmt4awswAAAAAALezCAAAAAAAACqr////4AAAAAAAt7kYAAAAAAAAHkAEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAAALezCAAAAAAAACqoAAAAAZFWgCqlo4j3CfwMhZ7N8DkPz3CwQlXKtkOtI8gyvkMqhah5m6wDh+FhUnhIDT/iAt1kkVqcbQjeq9K6xbmPNm2i6TX4AAAAAAO38OAAAAAAAALYI////+AAAAAAA7b1wAAAAAAAA3X0BAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAAAO38OAAAAAAAALYIAAAAAGRVoAs=', - 'AQAAAAABAL2tDgf95A1ZZ6txlEL7q0i3Z4TU4roV1R9GXgclvIjYTAjjHRs/L/7gYHT3PZbZtijeDF4SA/NWRdOm7Ou3Jh0AZFWgEgAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmCcBUDJXSAADAAEAAQIABQCd3ssQGAihxJoCHqR91Gm6hxzC1qaZ9WHNw9ZBE8+3JSzgf5gw3WObdv08NB8yPQoEVi9ELuW6se/mmiZdWrm5SgAAAAASpRb2AAAAAAAHfSr////4AAAAABKnkVAAAAAAAAYUoAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAASpPNaAAAAAAAHoMYAAAAAZFWgCpgvJzHwmiUBF9/OljYDtO98hjoXAKGzTbL2eEfaGAB07Cv2owh9IizpYK/PdbQrlphdWAqA/NTEXHal1eVxPMcAAAAAEIt9KQAAAAAADryf////+AAAAAAQjvkSAAAAAAANJGMBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEIt9KQAAAAAADryfAAAAAGRVoArgvDRLEovOfekzHp3Oq8h2QavUrI/L2wFq/JJbqR6pdsMjubPm3Qmp2TCQMiaJ8PtEu9kp6HAgKP8d3YOLFNQhAAAAAAVc3xQAAAAAAAE9Hf////gAAAAABV5cXAAAAAAAAt83AQAAAAEAAAACAAAAAGRVoBIAAAAAZFWgEgAAAABkVaAOAAAAAAVc3xQAAAAAAAE9HQAAAABkVaAKN4h5fPE+mjHvS5A7tgO6f+dLq4kFpk+q6kT4CFhV98sOYKZNy9Zg6HoI6yzJXo2E0RJv1zVNN3s/xXMDUvS4sgAAAAAROYh0AAAAAAAGXEz////4AAAAABE6ZQQAAAAAAAT1XAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAAROYh0AAAAAAAGXEwAAAAAZFWgCZYEjXggMUU+2EGxbUKzbCBTU3iULMwlQU5r80iFSllYeFijwqbNRdm2cTuzYfZlrr0puVH+/pd7tNuvDkYGqm8AAAAAEcOf7AAAAAAABsZF////+AAAAAARxww0AAAAAAAF6zcBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEcOf7AAAAAAABsZFAAAAAGRVoAk=', - 'AQAAAAABAEEJ0wacl2Xe33BLe7OtE35aHtvaQGuwRB6j92QYHx21RqT5sw8eFP1/l/TAQN3f6zrJMZWu5kkS+pmGR4Vn4t4AZFWgGAAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmIoBUDJXSAADAAEAAQIABQCdQxzC/Q70r0vHyF//ri9j1Rsm0WIXloLRSa5hmxIhwAv8MJRn3vpLGYxrW9WcCNtLnfsn3bzDLzFWDyF7T/j8KwAAAC6Z97mTAAAAAAnuxGn////4AAAALlf1XtAAAAAACaYFYAEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC6bvuq2AAAAAArRGrYAAAAAZFWgFfQqr4hMexRUiUFwvgqvHbObS3jTpWon/Um9iznvLDPXZRBx+MerIyG2vdO8eblKUIQakqbgZfnjuLmSao+1pdEAAAAwGwan8gAAAAAhJEgs////+AAAAC/cuqOQAAAAABnu+soBAAAAAQAAAAIAAAAAZFWgGAAAAABkVaAXAAAAAGRVoBUAAAAwGHAYOQAAAABOb34ZAAAAAGRVoBcYAesDgDrwJEUj7iqGw/J7Emq+iQTbS0WoKttf4hcItMqAum3DLgjQbxqohgEe7R13x3vp63YcwQ1yt9Ci/VemAAAALruXSnAAAAAABQWNkP////gAAAAudzafIAAAAAAE4btdAQAAAAEAAAACAAAAAGRVoBgAAAAAZFWgFwAAAABkVaAVAAAALr2FMz0AAAAABdksvAAAAABkVaAXfd8Ngq9THwrxCdXpzp7Ce6nwDp7oq3HJEq//oW1xWDa3q9Jadt2v/fhHIk8DGYzLknI/kLJCnPM/Duy5bjUqhgAAAC64Ff23AAAAACK8F3b////4AAAALnHJXrAAAAAAIgFtzgEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC64Ff23AAAAACK8F3YAAAAAZFWgFdWlwvMOBr1vOOAcLEyM3XynwcEtR6czbkWfxttBcbrmYP1hstkOukfygVBaiIabZhM9ncWPIDsBn1qkfxs5ND4AAAAtI2bqGgAAAAAisDf5////+AAAAC0htMOYAAAAACKu/ZABAAAAAQAAAAIAAAAAZFWgGAAAAABkR/zyAAAAAGRH/PAAAAAtI2bqGgAAAAAisDf5AAAAAGRH/PI=' - ] + "AQAAAAABAEV7/X8bjY4dpfT1vfNn6yxAvQUGDw5+cmUcs0qKddnPOc76sAVA76QqcRJlGGNJFOyRSVxEtejb5ufqIx99BrkBZFWgEwAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmE0BUDJXSAADAAEAAQIABQCdbQGa55bF3PAaj/dFvylmM/7ksc5l+Znf6Dh2cLQS04AZeG8x6F01mM7Nq4ELJ4feD8IsLPmLTxb7Hlv1Z6CkMQAAAAACxD7OAAAAAAABS2L////4AAAAAALD2yUAAAAAAAC9PQEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAACxBwjAAAAAAABKLcAAAAAZFWgCqmeZwvnpS94J0Hz0p7r3Wf8PzJV4TpTWn+5piu04/t3i2KGb806Jf+RGFBkROn+UXHmfGGgSfS0/azbwxroYrsAAAAACRX/7wAAAAAAAVK3////+AAAAAAJE7maAAAAAAAB6zMBAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAACRX/7wAAAAAAAVK3AAAAAGRVoAl+Yw45hhOUDjYjAl2plplx0/MalDbZej7hWqfLWEavS/cxEtStJv03zxjKmz9+bxpWK1lly8JuRIilQFUvGAcuAAAAAAAFEN8AAAAAAAAB8/////gAAAAAAAUSKgAAAAAAAAMHAQAAAAEAAAACAAAAAGRVoBMAAAAAZFWgEwAAAABkVaASAAAAAAAFEN8AAAAAAAAB8wAAAABkVaAKD+5d3AdqlvGg7TGQdX5DE6SESe17memDpYdZE5ORzgVs1cmcbYbfkosFYvJmF93vQAgY+JBzkfMIeWXmt4awswAAAAAALezCAAAAAAAACqr////4AAAAAAAt7kYAAAAAAAAHkAEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAAALezCAAAAAAAACqoAAAAAZFWgCqlo4j3CfwMhZ7N8DkPz3CwQlXKtkOtI8gyvkMqhah5m6wDh+FhUnhIDT/iAt1kkVqcbQjeq9K6xbmPNm2i6TX4AAAAAAO38OAAAAAAAALYI////+AAAAAAA7b1wAAAAAAAA3X0BAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAAAO38OAAAAAAAALYIAAAAAGRVoAs=", + "AQAAAAABAL2tDgf95A1ZZ6txlEL7q0i3Z4TU4roV1R9GXgclvIjYTAjjHRs/L/7gYHT3PZbZtijeDF4SA/NWRdOm7Ou3Jh0AZFWgEgAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmCcBUDJXSAADAAEAAQIABQCd3ssQGAihxJoCHqR91Gm6hxzC1qaZ9WHNw9ZBE8+3JSzgf5gw3WObdv08NB8yPQoEVi9ELuW6se/mmiZdWrm5SgAAAAASpRb2AAAAAAAHfSr////4AAAAABKnkVAAAAAAAAYUoAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAASpPNaAAAAAAAHoMYAAAAAZFWgCpgvJzHwmiUBF9/OljYDtO98hjoXAKGzTbL2eEfaGAB07Cv2owh9IizpYK/PdbQrlphdWAqA/NTEXHal1eVxPMcAAAAAEIt9KQAAAAAADryf////+AAAAAAQjvkSAAAAAAANJGMBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEIt9KQAAAAAADryfAAAAAGRVoArgvDRLEovOfekzHp3Oq8h2QavUrI/L2wFq/JJbqR6pdsMjubPm3Qmp2TCQMiaJ8PtEu9kp6HAgKP8d3YOLFNQhAAAAAAVc3xQAAAAAAAE9Hf////gAAAAABV5cXAAAAAAAAt83AQAAAAEAAAACAAAAAGRVoBIAAAAAZFWgEgAAAABkVaAOAAAAAAVc3xQAAAAAAAE9HQAAAABkVaAKN4h5fPE+mjHvS5A7tgO6f+dLq4kFpk+q6kT4CFhV98sOYKZNy9Zg6HoI6yzJXo2E0RJv1zVNN3s/xXMDUvS4sgAAAAAROYh0AAAAAAAGXEz////4AAAAABE6ZQQAAAAAAAT1XAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAAROYh0AAAAAAAGXEwAAAAAZFWgCZYEjXggMUU+2EGxbUKzbCBTU3iULMwlQU5r80iFSllYeFijwqbNRdm2cTuzYfZlrr0puVH+/pd7tNuvDkYGqm8AAAAAEcOf7AAAAAAABsZF////+AAAAAARxww0AAAAAAAF6zcBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEcOf7AAAAAAABsZFAAAAAGRVoAk=", + "AQAAAAABAEEJ0wacl2Xe33BLe7OtE35aHtvaQGuwRB6j92QYHx21RqT5sw8eFP1/l/TAQN3f6zrJMZWu5kkS+pmGR4Vn4t4AZFWgGAAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmIoBUDJXSAADAAEAAQIABQCdQxzC/Q70r0vHyF//ri9j1Rsm0WIXloLRSa5hmxIhwAv8MJRn3vpLGYxrW9WcCNtLnfsn3bzDLzFWDyF7T/j8KwAAAC6Z97mTAAAAAAnuxGn////4AAAALlf1XtAAAAAACaYFYAEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC6bvuq2AAAAAArRGrYAAAAAZFWgFfQqr4hMexRUiUFwvgqvHbObS3jTpWon/Um9iznvLDPXZRBx+MerIyG2vdO8eblKUIQakqbgZfnjuLmSao+1pdEAAAAwGwan8gAAAAAhJEgs////+AAAAC/cuqOQAAAAABnu+soBAAAAAQAAAAIAAAAAZFWgGAAAAABkVaAXAAAAAGRVoBUAAAAwGHAYOQAAAABOb34ZAAAAAGRVoBcYAesDgDrwJEUj7iqGw/J7Emq+iQTbS0WoKttf4hcItMqAum3DLgjQbxqohgEe7R13x3vp63YcwQ1yt9Ci/VemAAAALruXSnAAAAAABQWNkP////gAAAAudzafIAAAAAAE4btdAQAAAAEAAAACAAAAAGRVoBgAAAAAZFWgFwAAAABkVaAVAAAALr2FMz0AAAAABdksvAAAAABkVaAXfd8Ngq9THwrxCdXpzp7Ce6nwDp7oq3HJEq//oW1xWDa3q9Jadt2v/fhHIk8DGYzLknI/kLJCnPM/Duy5bjUqhgAAAC64Ff23AAAAACK8F3b////4AAAALnHJXrAAAAAAIgFtzgEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC64Ff23AAAAACK8F3YAAAAAZFWgFdWlwvMOBr1vOOAcLEyM3XynwcEtR6czbkWfxttBcbrmYP1hstkOukfygVBaiIabZhM9ncWPIDsBn1qkfxs5ND4AAAAtI2bqGgAAAAAisDf5////+AAAAC0htMOYAAAAACKu/ZABAAAAAQAAAAIAAAAAZFWgGAAAAABkR/zyAAAAAGRH/PAAAAAtI2bqGgAAAAAisDf5AAAAAGRH/PI=", + ]; // Price info objects corresponding to the price feeds we want to update. - const price_info_object_ids = - [ - "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", - "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", - "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee" - ]; + const price_info_object_ids = [ + "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", + "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", + "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee", + ]; update_price_feeds(wallet, registry, vaas, price_info_object_ids); } @@ -83,7 +78,7 @@ async function update_price_feeds( signer: RawSigner, registry: any, vaas: Array, - price_info_object_ids: Array, + price_info_object_ids: Array ) { const tx = new TransactionBlock(); @@ -96,8 +91,8 @@ async function update_price_feeds( console.log("WORM_PACKAGE: ", WORM_PACKAGE); console.log("WORM_STATE: ", WORM_STATE); - let verified_vaas = [] - for (let vaa of vaas){ + let verified_vaas = []; + for (let vaa of vaas) { let [verified_vaa] = tx.moveCall({ target: `${WORM_PACKAGE}::vaa::parse_and_verify`, arguments: [ @@ -106,7 +101,7 @@ async function update_price_feeds( tx.object(SUI_CLOCK_OBJECT_ID), ], }); - verified_vaas = verified_vaas.concat(verified_vaa) + verified_vaas = verified_vaas.concat(verified_vaa); } let [price_updates_hot_potato] = tx.moveCall({ @@ -121,7 +116,7 @@ async function update_price_feeds( ], }); - for (let price_info_object of price_info_object_ids){ + for (let price_info_object of price_info_object_ids) { let coin = tx.splitCoins(tx.gas, [tx.pure(1)]); [price_updates_hot_potato] = tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::update_single_price_feed`, @@ -131,18 +126,14 @@ async function update_price_feeds( tx.object(price_info_object), coin, tx.object(SUI_CLOCK_OBJECT_ID), - ] + ], }); } tx.moveCall({ target: `${PYTH_PACKAGE}::hot_potato_vector::destroy`, - arguments: [ - price_updates_hot_potato - ], - typeArguments: [ - `${PYTH_PACKAGE}::price_info::PriceInfo` - ] + arguments: [price_updates_hot_potato], + typeArguments: [`${PYTH_PACKAGE}::price_info::PriceInfo`], }); tx.setGasBudget(2000000000); From b84ee99bcc8c454f35bc3041cbe73c4dad4154a7 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 6 May 2023 01:19:02 +0000 Subject: [PATCH 104/140] update Move.toml so can run "sui move test", delete some error codes that were unused --- target_chains/sui/contracts/Move.default.toml | 17 ----------------- target_chains/sui/contracts/Move.lock | 2 +- target_chains/sui/contracts/Move.testnet.toml | 19 +++++++++++++++++++ target_chains/sui/contracts/Move.toml | 12 +++++------- target_chains/sui/contracts/sources/pyth.move | 10 +++------- 5 files changed, 28 insertions(+), 32 deletions(-) delete mode 100644 target_chains/sui/contracts/Move.default.toml create mode 100644 target_chains/sui/contracts/Move.testnet.toml diff --git a/target_chains/sui/contracts/Move.default.toml b/target_chains/sui/contracts/Move.default.toml deleted file mode 100644 index 30ceea03a1..0000000000 --- a/target_chains/sui/contracts/Move.default.toml +++ /dev/null @@ -1,17 +0,0 @@ -[package] -name = "Pyth" -version = "0.0.1" - -[dependencies.Sui] -git = "https://github.com/MystenLabs/sui.git" -subdir = "crates/sui-framework/packages/sui-framework" -rev = "09b2081498366df936abae26eea4b2d5cafb2788" - -[dependencies.Wormhole] -git = "https://github.com/wormhole-foundation/wormhole.git" -subdir = "sui/wormhole" -rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" - -[addresses] -pyth = "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861" -wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index de1bf93efd..09f1ab0711 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { local = "../../../../wormhole/sui/wormhole" } +source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad", subdir = "sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.testnet.toml b/target_chains/sui/contracts/Move.testnet.toml new file mode 100644 index 0000000000..20dc89a0ab --- /dev/null +++ b/target_chains/sui/contracts/Move.testnet.toml @@ -0,0 +1,19 @@ +[package] +name = "Pyth" +version = "0.0.1" + +[dependencies.Sui] +git = "https://github.com/MystenLabs/sui.git" +subdir = "crates/sui-framework/packages/sui-framework" +rev = "09b2081498366df936abae26eea4b2d5cafb2788" + +[dependencies.Wormhole] +local = "../../../../wormhole/sui/wormhole" + +[addresses] +pyth = "0x0" +wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" + +[dev-addresses] +pyth = "0x100" +wormhole = "0x200" diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 20dc89a0ab..30ceea03a1 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,12 +8,10 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] -local = "../../../../wormhole/sui/wormhole" +git = "https://github.com/wormhole-foundation/wormhole.git" +subdir = "sui/wormhole" +rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" [addresses] -pyth = "0x0" -wormhole = "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7" - -[dev-addresses] -pyth = "0x100" -wormhole = "0x200" +pyth = "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861" +wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" diff --git a/target_chains/sui/contracts/sources/pyth.move b/target_chains/sui/contracts/sources/pyth.move index f259a6a4a7..64d1060075 100644 --- a/target_chains/sui/contracts/sources/pyth.move +++ b/target_chains/sui/contracts/sources/pyth.move @@ -26,17 +26,13 @@ module pyth::pyth { const E_INVALID_DATA_SOURCE: u64 = 1; const E_INSUFFICIENT_FEE: u64 = 2; const E_STALE_PRICE_UPDATE: u64 = 3; - const E_PRICE_INFO_OBJECT_NOT_FOUND: u64 = 4; - const E_INVALID_PUBLISH_TIMES_LENGTH: u64 = 5; - const E_NO_FRESH_DATA: u64 = 6; - const E_UPDATE_AND_PRICE_INFO_OBJECT_MISMATCH: u64 = 7; - const E_PRICE_UPDATE_NOT_FOUND_FOR_PRICE_INFO_OBJECT: u64 = 8; + const E_UPDATE_AND_PRICE_INFO_OBJECT_MISMATCH: u64 = 4; + const E_PRICE_UPDATE_NOT_FOUND_FOR_PRICE_INFO_OBJECT: u64 = 5; #[test_only] friend pyth::pyth_tests; - /// Call init_and_share_state with deployer cap to initialize - /// state and emit event corresponding to Pyth initialization. + /// Init state and emit event corresponding to Pyth initialization. public entry fun init_pyth( deployer: DeployerCap, upgrade_cap: UpgradeCap, From 32b3da885793e428519f5e17713f1d00f5de76c8 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 6 May 2023 01:38:23 +0000 Subject: [PATCH 105/140] update update_price_feeds demo to auto-retrieve price info object ids --- .../sui/scripts/pyth/update_price_feeds.ts | 41 ++++++++++--------- 1 file changed, 22 insertions(+), 19 deletions(-) diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 566483cc4c..cceb782859 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -5,6 +5,7 @@ /// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet import dotenv from "dotenv"; import { PriceServiceConnection } from "@pythnetwork/price-service-client"; +import fs from "fs"; import { RawSigner, @@ -19,10 +20,14 @@ dotenv.config({ path: "~/.env" }); import { REGISTRY, NETWORK } from "../registry"; -// Network dependent settings. -let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network -const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network -const price_connection_url = "https://xc-mainnet.pyth.network"; // <= NOTE: Update this when changing network +// ================== Network dependent settings ================== +let network = NETWORK.TESTNET; +const walletPrivateKey = process.env.SUI_TESTNET; +const price_connection_url = "https://xc-testnet.pyth.network"; +// ================================================================ + +const PATH_TO_PRICE_ID_TO_OBJECT_MAP = "./generated/price_id_to_object_id.testnet.json" + const registry = REGISTRY[network]; const provider = new JsonRpcProvider( new Connection({ fullnode: registry["RPC_URL"] }) @@ -44,31 +49,29 @@ async function main() { ); console.log(wallet.getAddress()); - // update a single price feed - const _deployer = - "0xf0bd738bf137f4cb0601713e95bb9307a5efe8d27f34c9e34f419e17b4e74099"; // testnet - // Price feeds IDs of feeds we are interested in updating. - const _price_feed_ids = [ + // For a full list of testnet price feed ids, see: + // https://pyth.network/developers/price-feed-ids#pyth-evm-testnet + const price_feed_ids = [ "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1", + // INSERT YOUR PRICE FEED ID HERE! ]; // Batch attestation VAA for price feed IDs above. - const vaas = [ - "AQAAAAABAEV7/X8bjY4dpfT1vfNn6yxAvQUGDw5+cmUcs0qKddnPOc76sAVA76QqcRJlGGNJFOyRSVxEtejb5ufqIx99BrkBZFWgEwAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmE0BUDJXSAADAAEAAQIABQCdbQGa55bF3PAaj/dFvylmM/7ksc5l+Znf6Dh2cLQS04AZeG8x6F01mM7Nq4ELJ4feD8IsLPmLTxb7Hlv1Z6CkMQAAAAACxD7OAAAAAAABS2L////4AAAAAALD2yUAAAAAAAC9PQEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAACxBwjAAAAAAABKLcAAAAAZFWgCqmeZwvnpS94J0Hz0p7r3Wf8PzJV4TpTWn+5piu04/t3i2KGb806Jf+RGFBkROn+UXHmfGGgSfS0/azbwxroYrsAAAAACRX/7wAAAAAAAVK3////+AAAAAAJE7maAAAAAAAB6zMBAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAACRX/7wAAAAAAAVK3AAAAAGRVoAl+Yw45hhOUDjYjAl2plplx0/MalDbZej7hWqfLWEavS/cxEtStJv03zxjKmz9+bxpWK1lly8JuRIilQFUvGAcuAAAAAAAFEN8AAAAAAAAB8/////gAAAAAAAUSKgAAAAAAAAMHAQAAAAEAAAACAAAAAGRVoBMAAAAAZFWgEwAAAABkVaASAAAAAAAFEN8AAAAAAAAB8wAAAABkVaAKD+5d3AdqlvGg7TGQdX5DE6SESe17memDpYdZE5ORzgVs1cmcbYbfkosFYvJmF93vQAgY+JBzkfMIeWXmt4awswAAAAAALezCAAAAAAAACqr////4AAAAAAAt7kYAAAAAAAAHkAEAAAABAAAAAgAAAABkVaATAAAAAGRVoBMAAAAAZFWgEgAAAAAALezCAAAAAAAACqoAAAAAZFWgCqlo4j3CfwMhZ7N8DkPz3CwQlXKtkOtI8gyvkMqhah5m6wDh+FhUnhIDT/iAt1kkVqcbQjeq9K6xbmPNm2i6TX4AAAAAAO38OAAAAAAAALYI////+AAAAAAA7b1wAAAAAAAA3X0BAAAAAQAAAAIAAAAAZFWgEwAAAABkVaATAAAAAGRVoBIAAAAAAO38OAAAAAAAALYIAAAAAGRVoAs=", - "AQAAAAABAL2tDgf95A1ZZ6txlEL7q0i3Z4TU4roV1R9GXgclvIjYTAjjHRs/L/7gYHT3PZbZtijeDF4SA/NWRdOm7Ou3Jh0AZFWgEgAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmCcBUDJXSAADAAEAAQIABQCd3ssQGAihxJoCHqR91Gm6hxzC1qaZ9WHNw9ZBE8+3JSzgf5gw3WObdv08NB8yPQoEVi9ELuW6se/mmiZdWrm5SgAAAAASpRb2AAAAAAAHfSr////4AAAAABKnkVAAAAAAAAYUoAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAASpPNaAAAAAAAHoMYAAAAAZFWgCpgvJzHwmiUBF9/OljYDtO98hjoXAKGzTbL2eEfaGAB07Cv2owh9IizpYK/PdbQrlphdWAqA/NTEXHal1eVxPMcAAAAAEIt9KQAAAAAADryf////+AAAAAAQjvkSAAAAAAANJGMBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEIt9KQAAAAAADryfAAAAAGRVoArgvDRLEovOfekzHp3Oq8h2QavUrI/L2wFq/JJbqR6pdsMjubPm3Qmp2TCQMiaJ8PtEu9kp6HAgKP8d3YOLFNQhAAAAAAVc3xQAAAAAAAE9Hf////gAAAAABV5cXAAAAAAAAt83AQAAAAEAAAACAAAAAGRVoBIAAAAAZFWgEgAAAABkVaAOAAAAAAVc3xQAAAAAAAE9HQAAAABkVaAKN4h5fPE+mjHvS5A7tgO6f+dLq4kFpk+q6kT4CFhV98sOYKZNy9Zg6HoI6yzJXo2E0RJv1zVNN3s/xXMDUvS4sgAAAAAROYh0AAAAAAAGXEz////4AAAAABE6ZQQAAAAAAAT1XAEAAAABAAAAAgAAAABkVaASAAAAAGRVoBIAAAAAZFWgDQAAAAAROYh0AAAAAAAGXEwAAAAAZFWgCZYEjXggMUU+2EGxbUKzbCBTU3iULMwlQU5r80iFSllYeFijwqbNRdm2cTuzYfZlrr0puVH+/pd7tNuvDkYGqm8AAAAAEcOf7AAAAAAABsZF////+AAAAAARxww0AAAAAAAF6zcBAAAAAQAAAAIAAAAAZFWgEgAAAABkVaASAAAAAGRVoA0AAAAAEcOf7AAAAAAABsZFAAAAAGRVoAk=", - "AQAAAAABAEEJ0wacl2Xe33BLe7OtE35aHtvaQGuwRB6j92QYHx21RqT5sw8eFP1/l/TAQN3f6zrJMZWu5kkS+pmGR4Vn4t4AZFWgGAAAAAAAGqJ4OdZBsHdDwMtfaMUfjNMdLAdivsANxvzSVDPvGrW2AAAAAAFZmIoBUDJXSAADAAEAAQIABQCdQxzC/Q70r0vHyF//ri9j1Rsm0WIXloLRSa5hmxIhwAv8MJRn3vpLGYxrW9WcCNtLnfsn3bzDLzFWDyF7T/j8KwAAAC6Z97mTAAAAAAnuxGn////4AAAALlf1XtAAAAAACaYFYAEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC6bvuq2AAAAAArRGrYAAAAAZFWgFfQqr4hMexRUiUFwvgqvHbObS3jTpWon/Um9iznvLDPXZRBx+MerIyG2vdO8eblKUIQakqbgZfnjuLmSao+1pdEAAAAwGwan8gAAAAAhJEgs////+AAAAC/cuqOQAAAAABnu+soBAAAAAQAAAAIAAAAAZFWgGAAAAABkVaAXAAAAAGRVoBUAAAAwGHAYOQAAAABOb34ZAAAAAGRVoBcYAesDgDrwJEUj7iqGw/J7Emq+iQTbS0WoKttf4hcItMqAum3DLgjQbxqohgEe7R13x3vp63YcwQ1yt9Ci/VemAAAALruXSnAAAAAABQWNkP////gAAAAudzafIAAAAAAE4btdAQAAAAEAAAACAAAAAGRVoBgAAAAAZFWgFwAAAABkVaAVAAAALr2FMz0AAAAABdksvAAAAABkVaAXfd8Ngq9THwrxCdXpzp7Ce6nwDp7oq3HJEq//oW1xWDa3q9Jadt2v/fhHIk8DGYzLknI/kLJCnPM/Duy5bjUqhgAAAC64Ff23AAAAACK8F3b////4AAAALnHJXrAAAAAAIgFtzgEAAAABAAAAAgAAAABkVaAYAAAAAGRVoBcAAAAAZFWgFQAAAC64Ff23AAAAACK8F3YAAAAAZFWgFdWlwvMOBr1vOOAcLEyM3XynwcEtR6czbkWfxttBcbrmYP1hstkOukfygVBaiIabZhM9ncWPIDsBn1qkfxs5ND4AAAAtI2bqGgAAAAAisDf5////+AAAAC0htMOYAAAAACKu/ZABAAAAAQAAAAIAAAAAZFWgGAAAAABkR/zyAAAAAGRH/PAAAAAtI2bqGgAAAAAisDf5AAAAAGRH/PI=", - ]; + const vaas = await connection.getLatestVaas(price_feed_ids); + const price_feed_id_to_price_info_map = JSON.parse(fs.readFileSync(PATH_TO_PRICE_ID_TO_OBJECT_MAP, 'utf8')); + console.log(price_feed_id_to_price_info_map) // Price info objects corresponding to the price feeds we want to update. - const price_info_object_ids = [ - "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", - "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", - "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee", - ]; + let price_info_object_ids = [] + for (let id of price_feed_ids){ + let sliced_id = id.slice(2) // removed 0x prefix + price_info_object_ids = price_info_object_ids.concat(price_feed_id_to_price_info_map[sliced_id]) + } + console.log("price info objects to be updated: ", price_info_object_ids) update_price_feeds(wallet, registry, vaas, price_info_object_ids); } From 22aadc28f22d2aa7dc484298ced7a76e9ad2908e Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 6 May 2023 01:48:09 +0000 Subject: [PATCH 106/140] update readme --- target_chains/sui/README.md | 53 ++++++++++++++++++++++++------------- 1 file changed, 34 insertions(+), 19 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 3c66c16ae8..52542bb80b 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -14,9 +14,9 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). -As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Assume the ID is `PRICE_INFO_OBJECT_ID`. Then, chain together the following sequence of function calls: +As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Assume the ID is `PRICE_INFO_OBJECT_ID`. Then, chain together the following sequence of function calls to update a price feed. -### 1. `wormhole::parse_and_verify` +### 1. `wormhole::wormhole::parse_and_verify` Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot potato object. @@ -27,25 +27,39 @@ public fun parse_and_verify( the_clock: &Clock ): VAA ``` - -### 2.`pyth:update_price_feeds` - -Vectorize the `VAA` from the previous step and pass it to `update_price_feeds`. - +### 2. `pyth::pyth::update_single_price_feed` +Use the verified VAA and create a hot potato containing price updates. ```Rust - public fun update_price_feeds( +public fun create_price_infos_hot_potato( pyth_state: &PythState, verified_vaas: vector, - price_info_objects: &mut vector, - fee: Coin, clock: &Clock - ) +): HotPotatoVector ``` -### 3. `pyth::get_price` +### 3.`pyth::pyth::update_single_price_feed` +Use the hot potato to update a price feed. -Finally, get the price of the updated price feed in `PriceInfoObject`. +```Rust +public fun update_single_price_feed( + pyth_state: &PythState, + price_updates: HotPotatoVector, + price_info_object: &mut PriceInfoObject, + fee: Coin, + clock: &Clock +): HotPotatoVector +``` +### 4.`pyth::hot_potato_vector::destroy` +Drop the hot potato. (You must call this function to drop the potato). +```Rust +public fun destroy( + hot_potato_vector: HotPotatoVector +) +``` + +### 5. `pyth::get_price` +Finally, get the price of the updated price feed in `PriceInfoObject` 🎉🎉🎉. ```Rust public fun get_price( state: &PythState, @@ -58,10 +72,11 @@ Fetch the price of the updated Price Info Object. ## 3. Examples -See the `./scripts` folder for examples of programmable transactions for creating price feeds, updating price feeds, and deploying contracts. +See the `./scripts` folder for examples of programmable transactions for creating price feeds and updating price feeds. +- [Demo for updating a price feed](./scripts/pyth/update_price_feeds.ts) +- [Demo for creating new price feeds](./scripts/pyth/create_all_price_feeds.ts) To build and test the contracts, run the following - ``` $ make test $ make build @@ -71,13 +86,13 @@ $ make build ## Pyth on Testnet -- PYTH_PACKAGE_ID: [0x7c017b047a3c9db5a8f4586d347c54869b761b6d6b0882a179823e8642faf7b9](https://explorer.sui.io/object/0x7c017b047a3c9db5a8f4586d347c54869b761b6d6b0882a179823e8642faf7b9) -- PYTH_STATE_ID: [0x3fc17e66d5ced3bf62f3fe8289cb2cb78c311a1e1c9700727ecd278d242e9e88](https://explorer.sui.io/object/0x3fc17e66d5ced3bf62f3fe8289cb2cb78c311a1e1c9700727ecd278d242e9e88) +- PYTH_PACKAGE_ID: [0x4eb4b9b5f3ca3293d3b92898ebb54f4a8705cc6c1fb2a0d2b7ec69388c7f14e4](https://explorer.sui.io/object/0x4eb4b9b5f3ca3293d3b92898ebb54f4a8705cc6c1fb2a0d2b7ec69388c7f14e4?network=testnet) +- PYTH_STATE_ID: [0xe96526143f8305830a103331151d46063339f7a9946b50aaa0d704c8c04173e5](https://explorer.sui.io/object/0xe96526143f8305830a103331151d46063339f7a9946b50aaa0d704c8c04173e5?network=testnet) ## Wormhole on Testnet -- WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7) -- WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a) +- WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7?network=testnet) +- WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a?network=testnet) ## Pyth on Mainnet From 3df9191cf48a36387bb48c2239ef68984344d94d Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:49:04 -0400 Subject: [PATCH 107/140] Update README.md --- target_chains/sui/README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 52542bb80b..5ca7eafb86 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -6,9 +6,8 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn `PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that act on price feeds, e.g. -- `update_price_feeds` -- `update_price_feed_from_single_vaa` -- `update_price_feeds_if_fresh` +- `update_single_price_feed` +- `update_single_pric_feeds_if_fresh` ## 2. How to Update and Consume Price Feeds From abdb5a31490a5b707edbd4acfcf7c1a688f1eeea Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:49:21 -0400 Subject: [PATCH 108/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 5ca7eafb86..14e680871b 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -13,7 +13,7 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). -As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Assume the ID is `PRICE_INFO_OBJECT_ID`. Then, chain together the following sequence of function calls to update a price feed. +As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Then, chain together the following sequence of function calls to update a price feed. ### 1. `wormhole::wormhole::parse_and_verify` From f65ac6709883fad873ed9be9aa7a3041b833dab8 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:49:59 -0400 Subject: [PATCH 109/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 14e680871b..7f0edaa871 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -27,7 +27,7 @@ public fun parse_and_verify( ): VAA ``` ### 2. `pyth::pyth::update_single_price_feed` -Use the verified VAA and create a hot potato containing price updates. +Use the verified VAA and create a hot potato vector containing the latest price updates. ```Rust public fun create_price_infos_hot_potato( pyth_state: &PythState, From 26fef72a82c29d1a4494befbfacfedeae775747d Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:50:16 -0400 Subject: [PATCH 110/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 7f0edaa871..5d3c0aa09f 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -37,7 +37,7 @@ public fun create_price_infos_hot_potato( ``` ### 3.`pyth::pyth::update_single_price_feed` -Use the hot potato to update a price feed. +Use the hot potato price updates vector to update a price feed. ```Rust public fun update_single_price_feed( From 2a10fc277bea29624f6607df95e56061c0805f39 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:51:17 -0400 Subject: [PATCH 111/140] Update README.md --- target_chains/sui/README.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 5d3c0aa09f..b30b7fde18 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -66,8 +66,7 @@ public fun get_price( clock: &Clock ): Price ``` - -Fetch the price of the updated Price Info Object. +This looks like a long sequence of calls to update a price, feed but programmable transactions make it easy. (See demos below). ## 3. Examples From 14aab1f9523d4a01c540fe3cad5648131e32bfe0 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:51:33 -0400 Subject: [PATCH 112/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index b30b7fde18..0e392fb30a 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -66,7 +66,7 @@ public fun get_price( clock: &Clock ): Price ``` -This looks like a long sequence of calls to update a price, feed but programmable transactions make it easy. (See demos below). +This looks like a long sequence of calls to update a price feed, but programmable transactions make it easy. (See demos below). ## 3. Examples From a8efe256e602bba355cf0e8903f67c27360af005 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:52:16 -0400 Subject: [PATCH 113/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 0e392fb30a..644995d83c 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -57,7 +57,7 @@ public fun destroy( ) ``` -### 5. `pyth::get_price` +### 5. `pyth::pyth::get_price` Finally, get the price of the updated price feed in `PriceInfoObject` 🎉🎉🎉. ```Rust public fun get_price( From ade5b9b49b1a5e631399390c135b13a2042c2ed1 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 21:55:42 -0400 Subject: [PATCH 114/140] Update README.md --- target_chains/sui/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 644995d83c..8c470b0fd4 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -72,7 +72,6 @@ This looks like a long sequence of calls to update a price feed, but programmabl See the `./scripts` folder for examples of programmable transactions for creating price feeds and updating price feeds. - [Demo for updating a price feed](./scripts/pyth/update_price_feeds.ts) -- [Demo for creating new price feeds](./scripts/pyth/create_all_price_feeds.ts) To build and test the contracts, run the following ``` From 0c980d6d78b120da734ac6c4b0dc01272a17f3d3 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 6 May 2023 02:09:55 +0000 Subject: [PATCH 115/140] don't print map, get prices after update --- .../sui/scripts/pyth/update_price_feeds.ts | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index cceb782859..42d5de1038 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -63,7 +63,6 @@ async function main() { const vaas = await connection.getLatestVaas(price_feed_ids); const price_feed_id_to_price_info_map = JSON.parse(fs.readFileSync(PATH_TO_PRICE_ID_TO_OBJECT_MAP, 'utf8')); - console.log(price_feed_id_to_price_info_map) // Price info objects corresponding to the price feeds we want to update. let price_info_object_ids = [] for (let id of price_feed_ids){ @@ -139,6 +138,20 @@ async function update_price_feeds( typeArguments: [`${PYTH_PACKAGE}::price_info::PriceInfo`], }); + // Get newly updated prices. + for (let price_info_object of price_info_object_ids) { + // The returned price is dropped in this example, but can be consumed by + // another downstream smart contract. + let [price] = tx.moveCall({ + target: `${PYTH_PACKAGE}::pyth::get_price`, + arguments: [ + tx.object(PYTH_STATE), + tx.object(price_info_object), + tx.object(SUI_CLOCK_OBJECT_ID), + ], + }); + } + tx.setGasBudget(2000000000); let result = await signer.signAndExecuteTransactionBlock({ From 80caeb0b5d510b2478c2b4660327c4bb8e1d6c15 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sat, 6 May 2023 02:13:50 +0000 Subject: [PATCH 116/140] script comments --- target_chains/sui/scripts/pyth/update_price_feeds.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 42d5de1038..3e60687fb7 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -76,6 +76,8 @@ async function main() { main(); +// Example on updating a price feed and then getting +// the updated price. async function update_price_feeds( signer: RawSigner, registry: any, @@ -93,6 +95,8 @@ async function update_price_feeds( console.log("WORM_PACKAGE: ", WORM_PACKAGE); console.log("WORM_STATE: ", WORM_STATE); + // Parse our batch price attestation VAA bytes using Wormhole. + // Check out the Wormhole cross-chain bridge here: https://github.com/wormhole-foundation/wormhole let verified_vaas = []; for (let vaa of vaas) { let [verified_vaa] = tx.moveCall({ @@ -106,6 +110,8 @@ async function update_price_feeds( verified_vaas = verified_vaas.concat(verified_vaa); } + // Create a hot potato vector of price feed updates that will + // be used to update price feeds. let [price_updates_hot_potato] = tx.moveCall({ target: `${PYTH_PACKAGE}::pyth::create_price_infos_hot_potato`, arguments: [ @@ -118,6 +124,8 @@ async function update_price_feeds( ], }); + // Update each price info object (containing our price feeds of interest) + // using the hot potato vector. for (let price_info_object of price_info_object_ids) { let coin = tx.splitCoins(tx.gas, [tx.pure(1)]); [price_updates_hot_potato] = tx.moveCall({ @@ -132,6 +140,8 @@ async function update_price_feeds( }); } + // Explicitly destroy the hot potato vector, since it can't be dropped + // automatically. tx.moveCall({ target: `${PYTH_PACKAGE}::hot_potato_vector::destroy`, arguments: [price_updates_hot_potato], From 55eb840cb48716753eaf876f3f153e885d53da5f Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 22:16:37 -0400 Subject: [PATCH 117/140] Update update_price_feeds.ts --- target_chains/sui/scripts/pyth/update_price_feeds.ts | 6 +----- 1 file changed, 1 insertion(+), 5 deletions(-) diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 3e60687fb7..74ce2e38ca 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -1,8 +1,4 @@ -/// We build a programmable transaction to look up a PriceInfoObject ID -/// from a price feed ID, update the price feed, and finally fetch -/// the updated price. -/// -/// https://pyth.network/developers/price-feed-ids#pyth-evm-testnet +/// Build a programmable txn for updating multiple price feeds. import dotenv from "dotenv"; import { PriceServiceConnection } from "@pythnetwork/price-service-client"; import fs from "fs"; From 903f4851f6395368545b0f731167ee4d42ad510c Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Fri, 5 May 2023 22:19:29 -0400 Subject: [PATCH 118/140] Update update_price_feeds.ts --- target_chains/sui/scripts/pyth/update_price_feeds.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 74ce2e38ca..3ef25e1f67 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -92,7 +92,8 @@ async function update_price_feeds( console.log("WORM_STATE: ", WORM_STATE); // Parse our batch price attestation VAA bytes using Wormhole. - // Check out the Wormhole cross-chain bridge here: https://github.com/wormhole-foundation/wormhole + // Check out the Wormhole cross-chain bridge and generic messaging protocol here: + // https://github.com/wormhole-foundation/wormhole let verified_vaas = []; for (let vaa of vaas) { let [verified_vaa] = tx.moveCall({ From 8195f2c54558cb3a56318967ce73a6df7f5546c1 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sat, 6 May 2023 11:26:05 -0400 Subject: [PATCH 119/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 8c470b0fd4..e89b025382 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -15,7 +15,7 @@ To update and then consume a price feed, one needs to build a Sui [programmable As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Then, chain together the following sequence of function calls to update a price feed. -### 1. `wormhole::wormhole::parse_and_verify` +### 1. `wormhole::vaa::parse_and_verify` Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot potato object. From 028960bcd36976511868bb71c75e9937768a4b9d Mon Sep 17 00:00:00 2001 From: optke3 Date: Fri, 12 May 2023 22:01:19 +0000 Subject: [PATCH 120/140] script for token transfers --- .../sui/scripts/utils/transfer_tokens.ts | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 target_chains/sui/scripts/utils/transfer_tokens.ts diff --git a/target_chains/sui/scripts/utils/transfer_tokens.ts b/target_chains/sui/scripts/utils/transfer_tokens.ts new file mode 100644 index 0000000000..66166695ef --- /dev/null +++ b/target_chains/sui/scripts/utils/transfer_tokens.ts @@ -0,0 +1,67 @@ +/// We build a programmable txn to create a price feed. +import dotenv from "dotenv"; + +import { + RawSigner, + SUI_CLOCK_OBJECT_ID, + TransactionBlock, + JsonRpcProvider, + Ed25519Keypair, + Connection, +} from "@optke3/sui.js"; + +dotenv.config({ path: "~/.env" }); + +import { REGISTRY, NETWORK } from "../registry"; + +// Network dependent settings. +let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network +const registry = REGISTRY[network]; +const provider = new JsonRpcProvider( + new Connection({ fullnode: registry["RPC_URL"] }) +); + +async function main() { + if (walletPrivateKey === undefined) { + throw new Error("SUI_TESTNET unset in environment"); + } + const wallet = new RawSigner( + Ed25519Keypair.fromSecretKey( + Buffer.from(walletPrivateKey, "hex") + ), + provider + ); + let sender = await wallet.getAddress() + let recipient = "0x4ed01b6abcc271a5c7a1e05ee9344d6eb72d0c1f2483a1c600b46d73a22ba764" + console.log("Sender: ", sender); + transfer_tokens(wallet, recipient); +} + +main(); + +async function transfer_tokens( + signer: RawSigner, + recipient: string +) { + const tx = new TransactionBlock(); + + let coin = tx.splitCoins(tx.gas, [tx.pure(100000000000)]); + + tx.transferObjects([coin], tx.pure(recipient)) + + tx.setGasBudget(1000000000); + + let result = await signer.signAndExecuteTransactionBlock({ + transactionBlock: tx, + options: { + showInput: true, + showEffects: true, + showEvents: true, + showObjectChanges: true, + showBalanceChanges: true, + }, + }); + console.log(result); + return result; +} From d3622cf9741b09da822067f64fccde688e29a6ac Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 05:16:23 +0000 Subject: [PATCH 121/140] testnet "mainnet simulation" deployment (with 19 mainnet guardians), and testnet deployment (with single testnet guardian) --- target_chains/sui/README.md | 8 +- target_chains/sui/contracts/Move.lock | 2 +- .../price_id_to_object_id.testnet.json | 507 +++++++++--------- ..._object_id.testnet.mainnet_simulation.json | 243 +++++++++ .../scripts/pyth/create_all_price_feeds.ts | 1 + .../scripts/pyth/get_price_info_object_ids.ts | 2 +- target_chains/sui/scripts/pyth/get_vaas.ts | 9 +- target_chains/sui/scripts/pyth/init_state.ts | 6 +- .../sui/scripts/pyth/update_price_feeds.ts | 8 +- target_chains/sui/scripts/registry.ts | 16 +- .../scripts/utils/process_guardian_sets.ts | 59 ++ .../{wormhole_deploy.ts => deploy.ts} | 0 .../wormhole/{wormhole_init.ts => init.ts} | 34 +- 13 files changed, 613 insertions(+), 282 deletions(-) create mode 100644 target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json create mode 100644 target_chains/sui/scripts/utils/process_guardian_sets.ts rename target_chains/sui/scripts/wormhole/{wormhole_deploy.ts => deploy.ts} (100%) rename target_chains/sui/scripts/wormhole/{wormhole_init.ts => init.ts} (61%) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index e89b025382..b03b2e853e 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -83,13 +83,13 @@ $ make build ## Pyth on Testnet -- PYTH_PACKAGE_ID: [0x4eb4b9b5f3ca3293d3b92898ebb54f4a8705cc6c1fb2a0d2b7ec69388c7f14e4](https://explorer.sui.io/object/0x4eb4b9b5f3ca3293d3b92898ebb54f4a8705cc6c1fb2a0d2b7ec69388c7f14e4?network=testnet) -- PYTH_STATE_ID: [0xe96526143f8305830a103331151d46063339f7a9946b50aaa0d704c8c04173e5](https://explorer.sui.io/object/0xe96526143f8305830a103331151d46063339f7a9946b50aaa0d704c8c04173e5?network=testnet) +- PYTH_PACKAGE_ID: [0x975e063f398f720af4f33ec06a927f14ea76ca24f7f8dd544aa62ab9d5d15f44](https://explorer.sui.io/object/0x975e063f398f720af4f33ec06a927f14ea76ca24f7f8dd544aa62ab9d5d15f44?network=testnet) +- PYTH_STATE_ID: [0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a](https://explorer.sui.io/object/0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a?network=testnet) ## Wormhole on Testnet -- WORMHOLE_PACKAGE_ID: [0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7](https://explorer.sui.io/object/0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7?network=testnet) -- WORMHOLE_STATE_ID: [0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a](https://explorer.sui.io/object/0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a?network=testnet) +- WORMHOLE_PACKAGE_ID: [0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e](https://explorer.sui.io/object/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e?network=testnet) +- WORMHOLE_STATE_ID: [0xebba4cc4d614f7a7cdbe883acc76d1cc767922bc96778e7b68be0d15fce27c02](https://explorer.sui.io/object/0xebba4cc4d614f7a7cdbe883acc76d1cc767922bc96778e7b68be0d15fce27c02?network=testnet) ## Pyth on Mainnet diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index 09f1ab0711..de1bf93efd 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad", subdir = "sui/wormhole" } +source = { local = "../../../../wormhole/sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json index 7ca0eec725..b4f0277579 100644 --- a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json @@ -1,252 +1,257 @@ { - "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e": "0x40dc0e47c7532b510fb64643b3c159fa915d3fedc995091f8f4988851e64882b", - "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc": "0xc7c04a8b26728e4799bbf4e1b1bc62fa3bc3d97f07930043124caba14ce6a67e", - "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73": "0x89f9f365b778269000498306614d321ccbf5202f2c27c42b56ccf7694afb9aa6", - "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9": "0xd3162c03a4d2e7ca41344534a71e00d452f1cb55714b76d8b4d4629558ff90ca", - "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3": "0x73cf73bf1fca269741cfb3c1bffd57df6d8ec2302e6322b89275ac25a51186d5", - "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea": "0xa0914ee7a28ccaf731e4f7d7cb7992524b850d4eaee644b9e5dd521fbb091ce5", - "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d": "0x6dbe582bc7481c1256f6d4911363f60c8c0eb5a3db12cc4017832d88c09593de", - "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad": "0x4efb93f9ef37311b041f572f5d3b9344bfa350347a00b174eb4564771588e253", - "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f": "0x660181518c0f271779f686cf764fa4ecdfa42dd1ec739b1b49b33f5d232167d0", - "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593": "0x2c2ba9ca6cc3cc89ac168e6c0b203b808de3d0a057e2841edc741df5eed48972", - "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e": "0x813045ce58d6de022ce2bdb6ca47614f09dcd94d5bc81e8c97f726cd99322280", - "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679": "0x235677967ccca2f61567c4c1cabfb2dfbb5df65351acb3eb2298bc1978516317", - "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf": "0xe872dddd09ec833125df31db1e0ab9e78851611276c36da31d8e56d557383b62", - "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f": "0x139058bd7a6205857a9157a751a68737a1a36a53a8a2bfe762ec89854a4286d8", - "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4": "0x08ca5945ed936383ad2daaea44741f89e3ccac86e01b4bfcee4938c16591847e", - "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40": "0xc6d699e04604f45d16c646adbc71f3390e925c1dd8405be870a46afec46a6cb1", - "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0": "0x1be0b8b785162bf6a0c925aa9571febc6bc45fc52e305d038b5522880609ad5e", - "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6": "0xa839103ba00441feec4196db2ac6e25d0c424449434233febc6bca8804a3228c", - "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a": "0x8087f8fb619c044922261bf2725c82ddd131ea0cdd5bb45d6c641bd9b0ae2281", - "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a": "0x6d84fa0d21d5222c628c63ef1097b87a6a2a7662f20d5dce57700252952e812b", - "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3": "0x9c226b30ae83e97b125b1fba0375cccf4f4193c1b92f3f891b478677203e8e6d", - "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883": "0x7f3276e0419a754827bc201047c5aab7101c2a30c5c07c942abcb63c2a28b663", - "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb": "0xb98c122a0bef9a21b6c66a51066d104f0b7e0d17b3f0d3262ba1a09596df6887", - "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e": "0x97fdb2150e801036036b2a65755e5505298fb8fe269cf05188a6389d52d1d3f9", - "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832": "0x06b05813fdd6e8e31cf12ff83e4fdfd66ecb618f3b7bff757749373b75b8de1a", - "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a": "0x70f5d481f3375ca82f7618012acd45b1542e5f03644bcaa6dabc682f678ebd18", - "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606": "0x80da9558684486cdd0742b4921af9f497fab0627017613755dd03f06191ea844", - "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941": "0x561e86691a214c2dd9ea6ce052ab1379d3b3c69dcfbb1accfc9b6ad5b8795773", - "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192": "0x18810043a934f082f417585ebed52638ed6bf9a25fa25265b9b6e346dbc89722", - "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f": "0x870677ef2703b8910b5f1524dcb33d8f4f116e6553d07d15abaefec2c251f3f7", - "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421": "0x2020a356fca7d7a2c23a8d453a656234c3f7a135cf0f69de76bddf3c37eb224e", - "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4": "0x253b2bbbfd0e864e9019f1aff6def52a0a8572ce168f1ec0f85f76d9c1f0770e", - "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137": "0xcf9066ea651b64609e0a42754130367c1a02e2e388266d43c1a1f59e5ee4b23c", - "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98": "0x18edd6764583e90b5a8a4d11b2a8902a225818e234bc71ba73e13d569fccfc69", - "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3": "0xde9f8dcb0d99577e01f13c936b40e62c6e5b8b1950147fdca0f85eeab1bbad64", - "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca": "0x9f96ee590406f0d978ee11c0bf742446162a304f50cac08bd39d686ca230140d", - "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97": "0xe6c05b9769d102f88ef6ebb2b7fd20b647c7d34a7f1a401668f6dfc40bd1840d", - "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f": "0xfcf5833a7d3c2f49e2eb8b4fdb1c84ab784c0bdcf260ddd952a159ac167075a2", - "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c": "0x902246786a371b96d2541711dec59ff76a5e2d60c17da53ef9af26c7cd1cba6a", - "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f": "0x8763a5cf6d2f2e874426e2461e8ffe9e37075e6bf50383649d8e5e6ac2591a12", - "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2": "0xb3806700fafcca1c74b04f642761a59bc575c99aa103079f712a9d5e83c1ab45", - "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d": "0x627bdff59fa6f797540809c4a95fb8bba638b08a772ef6addc9e6148a5ae6fa2", - "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9": "0x10d2154546d3c5b312fac578cc7e6979a29c8da3be893fa5d76f6695c22a819d", - "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7": "0xbc6519d63b0e16eb4ab51162c8c4980ef1eea5d7c428bb7232cb8b86db17b57c", - "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378": "0xf457b3a34866a1a2962b05c297f64567bd39fdcd67dab69cf93357427af49a95", - "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc": "0x9f87bd62394aef7b73c9c69800a802763dce97b9d5d6dfa2c885f8a374ab9fc0", - "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8": "0xda07ab28353d27ccdc834db6bc20c109d10e03a4d4fc0e6298a71a70d8c942f7", - "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937": "0xd1f61a7fb2476f8aaae36565f358ad8e8db43e57dc155f3121c942696b8f40b8", - "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb": "0x68bc94bfd55998bcdfe91174a8e51e1fe3702261a1b36124f7424e8dd530008b", - "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7": "0xc2461a0dbe0bf377d27c6b7edea393052f9f229e1aaa9452c6b4bfa73da7f06d", - "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967": "0x20dbaffcfdacc1fbd706fc465e00ab32de7cef3a53dc55ea7ff253b9e5552dd1", - "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93": "0x82a4bf6f19b5b507fb8c5da7f1753240ba20683744d893a6a7b0e02065c31c17", - "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced": "0xda90ad0930dabcc75eca7160a54fcd8e11a120ac9a5ea2343b9b0a8d41213263", - "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8": "0xe4e9c46acb68199cca90b72570f98201acaac095d68bdf8d0efb99dc19381583", - "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8": "0x79b7fbef05b1517da88a593acbaadb335eb5e7a71e0d8af6cf7915ac7ba4d8b1", - "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7": "0x5dfb2f1ccb3ac9625d0e192142d970cb11cd577c3abdd8ef60177ec5dadd9919", - "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e": "0xa8bde60edf6cb161b72d6330cf105c5e2cc04fef56bb1524add907626baaaa8b", - "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b": "0x0d4113ced47ca07dc7824d0cfe5a940fcd7dfadc984d9572fba398567e8da0b5", - "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f": "0x1a6affdf8e2bb09111de3bbb3a5f278d22e7e39cd780930cb77ecbbbc3e065f7", - "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e": "0x574c2b00546e1bf55555eefeaf3f7f384108519ea49500e092517d9455d16edd", - "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f": "0x4be83384eef315a158a5543005ec58fc261cbb2e7e154b90190afaed2b80bde4", - "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb": "0x0d29e3a3b66b02a1df4b54aa2dfb94a21c90ff460b7f0ebc2011b33a466dfe5a", - "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758": "0xfdeaab644af9ad9b0ecf442069766cf462c7552ebb9f2f1087f4926798300b34", - "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033": "0x31ae40b88e9250f9c963557c393403551fab9d7be47e6b03c827a4979b12d766", - "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4": "0x6b720ee332c35dc18ed0914b1bca6759af364079d8f8a43e5383319966c56f31", - "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183": "0xca1950714e2bfaa2c7b2ba0430247baaceea8e420d9e1815f6a97af28509b467", - "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96": "0xc8706e01c12a79a4722d905a9cdc200a0b9265a220b3e774c259be162799807c", - "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193": "0x8020fb77c33a43a12e794a61400345f56fa6a5034ee160bbb98581ef4ab86963", - "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc": "0xfb28dd693e10796e16dc227cff4b6f068f2fd3c62e6fb624072c080b7b856246", - "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d": "0x017613a64f40325bdf37007d23a07efb9069f83d408a4e032d7dd1bdec4a5e5e", - "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24": "0x65c3821c00042d518fbe5618c90eeeb8be5ff83d6c9b99cb54f85b12b1dc6f00", - "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1": "0xaa0cd084c0fa8aa7aaa6fda9d6078b5ca14880265766f7ec9a607dd694e79d36", - "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204": "0xa3419c1a3d385ee9ad25728a6571210e51f4df57991861a170fcd097eeed4912", - "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857": "0xc045d5ec0e280170313613afa2200895419d1d65b5bbd33e8dee0c600bb76e3a", - "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b": "0xdbf643f32acd25c4f3132c9feba62d7f113d84a385e859ff869efc0085ff0e7b", - "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9": "0x687d8656adef36228796a311164e99a3c9843cf571541451eaee08e47bad1bfc", - "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de": "0x16b87881c102d0de55b5fbfa3e5559877a2f8f66c23a326a7bf19d3c49631354", - "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538": "0x88fc2033efad9b5bcb3db06753eb2474638d271b1be3623d13b6d9e3eeb89954", - "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b": "0x5711b3794e45df99e87db3e04de5f40310376f659b75e567f42b2b76ce87959d", - "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd": "0x6802b4b5ded44ad628633057be43b9d7b2b8e082c0210f3d16ffe762788d614d", - "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb": "0x08949235714561e4927b5669f6ddaabb5531cac8e8163947b9989353342dc623", - "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba": "0xc726563077eeedfac8560df99f9281d7352e7f89a290e725b4fcdc7ff7e0553f", - "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206": "0x33d6acc01a0ed77a1f0a726f41da5638c34cb663fb249ff2b0863594f50a4760", - "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02": "0x87bff43e1fac9b6be2b7800968e96c02de8ea12741e5a5c63c695502796f5593", - "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359": "0x5aaee83989806c89786461755e41e64f97d8fb6452e5a033bd5ca50a7f11fed1", - "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29": "0xd2f80da3e46d74c86219f9901242aa6223f3d19cc432c89b2bc868c4ad4754ba", - "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb": "0x0d2fbbf69315c2bf139ef2db39fa9290944b714aaf651924be1206fa66a076e7", - "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed": "0x44d621c9245e9ab1493d108424f71503bb81cb638988ec62cbe2245cdd8c6edf", - "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14": "0xae0e979110319039d652dcf126233ec02c8160b2bc04f44f620c00efb81ef413", - "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e": "0xabc4eca741386b8c062684439f015301b44807e1a24716f8919499055463af9f", - "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e": "0x12d2131451d987a977250ce3b3efb7d75ddc3580df0a3ecba6a924c61998fd1c", - "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d": "0x216316cbbb30b6cdaf016175b66d4b8f2b61de9c6800bef18c6ce51d727526a8", - "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376": "0xad84d1830cd1912eddb6349d7d23b31e518a1a68d5ec499e792ac716938a6b14", - "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808": "0xbf68ba9d294219d26cce360800f5c4c76235d85a370d1a83e408a6013d60b655", - "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae": "0x3a1577fa55499f98478348448a3f0a8f3aaede101de82ee9aad434ef4db86e07", - "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b": "0xfb647ec378c9741fd864c301808bbf4701abe2b454860df360a4c621e2b7d355", - "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32": "0x995c13519980e8157a270fa3090eed2972bc4f9d018892a24158ea1e2375a008", - "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b": "0x8a05868f897561e26aace362ecfc525e1a50a809ed2599926a76eb14431e8a13", - "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd": "0x86c739bc36a97c40fb1c7fa689dd5f1f34866998748c8126096c36b0b0596966", - "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d": "0xc42bbe07e081ff22647983cdb1817a1df34ec6a73e95dfd223ceab0a81a170a3", - "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded": "0xf7069102183ae080ea053bc11cf5f53852f64cfa622cbab5dab6694d0488d87d", - "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87": "0x6243f4d2ba7b91daf74f193a22cedd0ab58e10e008df65362151b82af1a37d5a", - "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c": "0xbd366d16350179afe78210b20dec5b9b4f3fd407408eaace62e77ff45d0cb1c5", - "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8": "0x0818978faca0246b90e5117945b01b308a13dd8abb635e91b44ba79a8614e7e5", - "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f": "0xff60f7d627d852611728005bf6f8e626d2884b3719e2e8481e50bd2dbda559b7", - "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f": "0xdcbd29996cb740650e9a4769fad54bc1eb4391ec7b731afea8b37c686a9c9b63", - "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280": "0x6a665095260910e6331d7a08c151739ab068bf01e5b3196b05deb72d9a534473", - "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b": "0x212821dcbfdeceffc28b740fbede9850044ef58e526a223376406fb55a4ab8d5", - "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161": "0xe544d2f578939aed76745f69962725a6fc5cabd3999b23b6d05490a120772b95", - "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073": "0xb26e53863fe6cb8a8141152e1eed7f72e8ba4e40c0c69736f9531c70952e9f2e", - "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c": "0x31e8c88eed0ca91a9d23f9a66a3eb1c2f9f73624903548c0010fefaebc1e044a", - "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d": "0x89d12b55a39967c6656603977285775fc8e90058dafccf66fe6694d58ccec312", - "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2": "0xacfd46e1f0fccfe3b5b2c7959ab628f9543b590555286e6ed7b351bc66a18688", - "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c": "0xa9cf9c0bf6a4a3f4f1cdf9fdb047b927cd930137e60839c7aef1ecb2d6b7fe41", - "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c": "0x4f1307589c6cfe42798097125162d36003393f5b293fff6a8571a15f894918e8", - "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a": "0x5b155d95c7bfb97bb58a27aa1559479edb4b2b1829b91822ddc75e299a74a341", - "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd": "0xa71f0638d73b0d574cb1da446cf31438b06f3fb1596f21853cf26db208a6984f", - "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b": "0x7901a095fccdcbf046d17189f00c234fd67a5d053143bb9544c15abde452cb82", - "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5": "0x957b0fb1d5a2609abfaccbf53a29b610e60122917f9c62cfca4e5ae0f784e365", - "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266": "0x391aafe578a4cf669bf7669288ced3077539eca239dca6fd145144bd8c8e67b6", - "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c": "0xe969d6a05d2c3f1923310ccc968755956c5325ef0a560d1128d4058aaef9fab8", - "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7": "0x2d568c6a763da478ad1f5be4876edfb2a21db1052ff1710ce29a5c69977e727c", - "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321": "0x0f4efb76e8c4adeb363baf0e08c58fe6206c221ed8a7bd19d814518621f528f7", - "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106": "0x6e88d415f6f69b8b6ddb138417dd657066a7c5626695e64bd1231397db822891", - "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634": "0x66b739fbbf4e599809104a284bb6fcabeb1ded01b40eec6bdd103d54a0262aa8", - "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d": "0xd9e0b9527248da6d7ab734183480c7c0f4a68d763efc3e9ec14225315e77ceef", - "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154": "0xcfcadebffccb36f209cd882606b5266705aa3236201c4a78acaada2961c5c820", - "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa": "0x90cfcd7e8f730eff4f7e5ce866c4c382b74638ed756673ee73849b0f091e428c", - "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93": "0xa26749829361ba584fad065a85088df40da3052d94524543af68745d072113ce", - "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722": "0x915e825251a3a2bc2dfb7544986493f11c49db28c470da6bcda295412dcc485e", - "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41": "0x572f9648daebce7f49c74a4a6f10675d26e1022e4254c7e561153fd830436d6f", - "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62": "0x4c44d38c0595cbec5879d1a391c0ff09c98508e2248738898e2265ce6db50de7", - "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6": "0x6b2f9691db98716d60c608c04710e1126073ae960f4ab612b4517970730df813", - "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7": "0x6b908407d2a9c19cbadbd82fc46f7c014ef4d4f2417ce87a9bdf7961027d12ce", - "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999": "0xfa3ea46867381a5a0c77d7fe02c6e1019e5b21ec9bb01648fc0556b5ca82e324", - "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e": "0xb6ec2a86dbc4260cdb09d0d03ef64735b17e8df52bd4a99855f3cd4459b55cbc", - "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f": "0xec284a341e94877de26c1fb3c8c4cc4496dde67c21f98c4edb2fc22ee57d32fa", - "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a": "0xe32b657e501e960cb22441cc0fb16241d1438957a7a5cc29f2f3a4534f606de0", - "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27": "0x662c008d0cccbc8107a3d04a4ea6f24c0f8163034c511a65714880558d05b5cb", - "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08": "0x3ff14e99a0dc75a6eed6235377f36b3aa898ff24c770fe9964abeb85b4df110d", - "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02": "0x4a86bcc123a4acaf1ec17202ca55c28604b9870557b5678677c379ee6d91b56d", - "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd": "0x899f4c28403478aca380b850046207904abdc72fffd40a2dbc4c7877d66b3b35", - "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb": "0xbc7876c742ce955abc903c2cda4228f2df67011177c39de9e6e58865e50851c2", - "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97": "0x570cc2a509139e91c836b80b84bdeb43fa9490122942b841437749d365c9ed78", - "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964": "0x8cd103420eaf372dedc1485f20bf1a089c14740fa9166ae58dd588171afecc52", - "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21": "0xfd826b5aa4e68aa98ad2f8ae82a252976dbabd0695045cd01f8c7eea4a59646a", - "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec": "0x60b19ef0942c206064d5c79e10f61f3ebe5574ca212eb0b03b7e9c976d5222ed", - "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f": "0x99a14a6d2f452f9321a3813edd69563afc4a80613ad66a3b1be509f4782a6638", - "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318": "0x91b9aaaca37fdd549d4a698b75ad9f8e45029cf34b7ce65185147b7ce7c460ce", - "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880": "0x985119764fe557980b1e2e4af0c17a9d3e78805242298480e73ce1e87a1c7951", - "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776": "0x9dd39656933fde0e214987f75b6eceede8ea1d8dec6e9e57a4fcb576f987432e", - "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3": "0xc6c8db69035622ed4b0ccee051a7fac449d006316202ef80fadfd021483fc0ac", - "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef": "0x6d2a9db48b7d7a73dc2c6351bf94d84416a2e2bbe1478d36553ea3cab3b4c6e1", - "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5": "0x0226ce2235a29e57bbcf9de83410da44ae93af36a6cb47b373429dd89cb21ad6", - "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a": "0x9f0c7efc58e868d7382c9e61e204766fdcc93528a172c47f701affafd6577f05", - "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590": "0x1f2f243b26337f649a95d5f20c84980e00f33295771322779f6a6856c7de6e72", - "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad": "0x48ba7c9a39b50754c8bdbe64f606c2c840ea05c234741012330db56a37bbaff5", - "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d": "0xf5a9c79847a09df6b55950a5ed5cb07078d4c34c6386ebfd48ad625832d951ac", - "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5": "0x32804a1b37c53582018eaeab02991abe455132d480be9af7d35626f6f841c151", - "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3": "0x213c2fcc946dfbc2a27c1728a27bad028af6e0156f98d07843e7a09acbf2f985", - "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530": "0xb3ad4ef14d38e165d1866fc07fc818c898441ff18c547642a5f21127b93399fb", - "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d": "0xbb789504ec8c1d05f7ccfd03c96f743a7a488e6dc1e025f15fa9793e40333561", - "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd": "0x4570ca77c553df40101445a1a2c29661d314b5b823ee882d3c1f0735abc2aa35", - "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b": "0x82775f3a7544fcc0376ff89240d253d2a360c1ef8067a78bb56ef7a5f31f3d73", - "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f": "0xf5e5350a8cab2d1eeb903ca826150beb15c04824eb78cd75f4ab1207e5b5a0ec", - "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b": "0x329c1a63ee5b75c6659c37463776428a810fd05fa4759662f379b3959ad59a5b", - "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822": "0x02c2ddec95e6f6200c1e605c3f4f8522cff8bb0ae7def8c4783c954fbf638682", - "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c": "0xdcbcfd6fe23074210bfd9d3fff4af65f9308a5acb71a20b08977d1d46dc7eabd", - "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc": "0xdee0247ddf71ada4d8e22a7b412e9dfe038a62770d9e9026c1648787219e7281", - "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b": "0x7510aec1a8a7b73642c4d637bc4e9a5b8267d17453fb91c3b7f11a9c51ec7d76", - "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4": "0xfc61f7d213551954f388fd5053d28bd6e38930f761454e2e8bca494b6243741f", - "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2": "0x5e1b139cf1d519718f48ebebcb4f69d0a0d33cd133cc544a8aaf40460a28d9a5", - "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff": "0x747bf8671e8a46f9ed192e495b9473fa6f4bfd3ab951ff5791857481dfed0206", - "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7": "0x59918c1a3ff2cfbbc9b23bae44c283841900d9f1f1d72e95f3e6f6e257f8fab0", - "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2": "0xf24ac7808e734c74f464584e7a8e8b0fc2bbd18ff3ec0af4b89f4315e669161b", - "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749": "0x00e20c455eb5f3644ad29893a827ecf4f0e2279ac94d3c7342eaa8f0e64f0b2e", - "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5": "0x88a716a60e3580862cff9c72a0b01bc51887ff770208dae8c5d8b5344be9be4b", - "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431": "0x2376fee0c2de18dfc2ad36a2ea739252c15728720b96d548d3ac40a94d305a88", - "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a": "0xa1472f80e3c42338ed73a659ea45f785bcb98e12ede94b35cf86db32c9672012", - "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0": "0xb4128041762af56bf5ebb5cf23eda0055aeb9b2c416b5508e0161e97f15a3498", - "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256": "0x12c5c355abc7fea0d8500a67ccd4a338839dfc862522dd92b2e31c40f740bae8", - "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6": "0x28ebb25d7d1324344461461454bd3a0740210d2a7a174b2c6f67c466b5cea1e6", - "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519": "0x6fea5bed3c94e8c368cd269398755d0293a204688fc038fe1f09b24d2879bbb0", - "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021": "0x0ee3a94e7e8f0f7a764c3c712057ea1df48d57ea1f2b1a92e68aaa844a99beab", - "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd": "0x276f27e9dbce84ab4a1a70b1271d24c7d3ccb2917e7aaa3b052e07bcc06fd68a", - "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064": "0xf58e253eae96810e1bf2bf70065ffa790080bdbd1f0130a0dbb0a81073cfcccb", - "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2": "0xcab0caef369ee790373127dad1c9f8fb6243853a4fb4678b2e062ecf2450789e", - "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860": "0x9c7c49bc8a0002ba1d3acadc2e3797eea191af846527b179159b91ef4d638207", - "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21": "0x360343818334fd0f4420dd0b989418dc5bbbc6554193b1ef9f41cd5b24ae6803", - "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15": "0x671cc6ecbc12dcd26e6242f39fcf222e4d1291677dd627155b888983df0fc683", - "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66": "0x9c697dae8d53325258fd20200f5d239261b0b7c5b05aaacb4c7646896c045677", - "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd": "0x31d3ca0a9372dc45eeea6838d1d6e824775a00e4527414028abc7a8571fcf8b0", - "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919": "0xcbde31643c45d3d972b69f46c0388109fcf2699288b92be2741ee8e24a09bc02", - "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984": "0x0cf0445e1de7149ecf509d9e81df11f5cd3696f2289f061c91fea2cca84b19d8", - "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28": "0x66cb2538d6c0ecb7e6eca68cd3eca5fa50042cb328eec3d7c71963a51e2b99b1", - "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d": "0x8be10a0269a7534d1800ae330a5b7fb79d22d3e4f57a30d7b687c39fb138d185", - "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea": "0xa69a67e9a1f671dcfdf4e1d09f8deba61799f32c77b5f209192a861fbc3d2083", - "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b": "0x8899a5649db0099f3a685cf246ed2bd4224bc2078fcaf2c897268764df684d94", - "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1": "0x69c3776a1d09ddf6f4c69247a1cb6a7074ae8061ea517b8287a38bb07a3a964d", - "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412": "0xbcc572307d5aa33ff3c3ae9c121332a8a2f53fa227163839d4b2114abc21a440", - "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73": "0xb2008d67e8d03d4275af3f7c24c6008a81f917b32cd66193dd1f35cf88b20abc", - "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7": "0x5c21d65d714feef232ca493f0e3c40362489ee6f35eb9a224d250a0485f906ee", - "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2": "0x85fd57c6f2befbe0c354ce22d6131628ca5b0d7d3c9c413f494a7f1afc1fa376", - "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c": "0x18ca0f2912e8eb3ea6f9efaf69797f0376a001a658bc0b5e4f89e9c63b5cce41", - "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d": "0x3ce91f020d6044ef2b7558b6412db7611f5b78a8a1d9ff855100c16be44d3fd1", - "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621": "0x1d0f15325ab3b33ec6d713bf5aeab500622f8a99b25fd7ddeaa97040de311a06", - "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994": "0x1dc6c49cfb12c5960bd6bb726e67682125df7ddd0cc596cc53eaa0d3c80e4abd", - "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66": "0x8f73d176d4961a02877b04fff44baf9fe864c488e00fe2b0add60b2036f2acee", - "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f": "0x3b3d353e33465a732ab16820a1d040043d8c9a4084fe910ee3958e547adf673f", - "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048": "0xa536e7345d2ec59b54bb2fcb36778dd4e05dddd969bdb8fc8404223c5512ef36", - "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165": "0xd09185f027213ea12a551fa49fefd5bb3eba8df3622cbe2e3a073a7489eb6f9a", - "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075": "0xa6c777046e09f028aa7611ebba6ae3d6f9c2fa39321936e13041e22542a588a6", - "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6": "0x89b76133e1787183b12c753a6cb03484a274a8b3a3438e7d0a467d02271f5dda", - "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748": "0x18f6136595c863a09cced4b37ffab98f95eb6bdd1987249e98529debf72b4102", - "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86": "0x0a55ea16cb0728a58e0cf5b5fe711c1e6b12fdfa33f38b579508474d6987804c", - "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588": "0x5185bbe53391af7d87bdd954023f9dbb4f1b50714aab021e35eb99115ffc390d", - "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993": "0x3e34ae137afd1c5d432325ccdcff0342d7a18d32b99911f16db9117176c95846", - "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417": "0xced35c680fadca7bebb6ad82b16a57b9b9a558698853003cb31c3c13dabbc5d1", - "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b": "0xa1e2ec6a42138ac047c208bc10e6c614bb27efc5ce4c9c7fe900fbcad9a34151", - "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e": "0x478e6985fa6faebc6d3fede65a104433c1ba363e3a9c447fa3fa13621dd206ec", - "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6": "0xde0c17b2eb029491050a4579ad659858f86b497ae112fada8adc842eb4d991ed", - "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8": "0xd87098a5dc2ce4c760707b72bd257cfe45ef63552834b23343770be399adf601", - "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b": "0x11a76f49fe5fb7f31addf2e036c813ddb245c59fbfb7c935cb4e0fe9003e0b52", - "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b": "0xfb12bfdf9a8f91e20d38240686c6181755c5540ca6d45f632cc0b4f7e79b1d96", - "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb": "0x313c3bd1b1d331e65dfd53ef881306a2d9603a38745993ed4bea216f906a6ebc", - "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b": "0x2334548c84eb206f2068c1c94ab7affd1f7865472643ca66e60978be1dd4353d", - "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e": "0x8238c4be5ef44106b78c46451fc005623f94973764d3d8acdadbbebcc644a634", - "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12": "0x95cb9030d1cadbbfe43ec5ab9a74c0c514b42efb89c0fdccf08c90310cce5672", - "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3": "0x6b3b3dc9ecd2c4074c7276b11a8785cbaebde39154604f9019648912fe2e9507", - "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063": "0x334fd150faab7b49551bad92b9eef6d0a39df31e852ae20c9495409a087e3382", - "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a": "0x89d110550810e8029c344cfa53e0edbdead734f676f980af60b7cab989372539", - "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477": "0xb6c077401eb8f8d46b03686253fe0143a54686ffce48f1c3b8a30441c814d092", - "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1": "0x8e0d74c3364b0be0b805fab72974edb9872451737848cf6a28a948e5ade1c8ee", - "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281": "0x1bd25e8b945ebe80773524e168ba2c22850036f5d5717a663da0a26ce5bc1a4f", - "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2": "0x7896f3676fb73e4ca3381d888214541475dd8d05794dcd58af589e5eee7ee2d8", - "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a": "0xffb818ae0b18d6b1b586571fc17ac4904ffa90207b781f2405e82e3495dd2a78", - "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc": "0x1ff6104c9bb0825a0e9775117570f8557c594f983714baaf0e01a46483e7c1f4", - "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee": "0xf767e81a16481014b4893bfe78b9939b62d98cb47ce2070f4c393115bcb96ea5", - "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d": "0xd1a4e6b7f5a2d8d33fa8650ffb890fa85d0a813fd6e01868015b2bf0857deb14", - "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8": "0xb66db08b306e6cf55f2ded29e4cc2abcfd58536f4a119aea2e7d8e8478d88e4d", - "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c": "0x69555e01ff36f34c60a130f072f5e8a99a68bdd8955c697a0707b9a35aebe4da", - "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e": "0xe80724f68a22ae781c5d58ef82083bac7cc18de84c3b484941f381fc217034b2", - "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51": "0x737798b005a43368788248e888ea23bd660616fd0b0a0658fbec7d2f702b0827", - "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a": "0x1af8d7cd4e1c570b060dbdfd237a9fcc8165cf9a327ea6c06f227589cb32676b", - "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130": "0x37294785df603e73a956c1c5ae7aa0043d74040a0e2edc74df63df9c8e8705fd", - "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f": "0x86d1f2036ebf557f94798ccdeeb6b7ac9ec7cb6a2625a45c847d510c82709b39", - "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7": "0xf8b78c0b2dc5df968a31797c9fcee401462c715d400d513dcb16e19a7646d7f0", - "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62": "0xbbcb57bcc3dc40b43027564b023ade7a335bb7486a0975f388b7bc209ebca378", - "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494": "0xc52b28732dca60be94fdc83d6b5a61fe5d04d2b8fc68176b3bbeb81f52a83d16", - "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93": "0xb9eb777dd43c1619f2633455bcd4804fc528be51f8372fbb38fd42ef99f9b31a" -} + "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc" : "0xf5996b8974235697a4377ee72f0d72b33af0a3d0d7f8bf01371de8f04aefb019", + "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de" : "0x468a31a8fcf6a6ce76f4ef5d77ad4722f224bb3614bb995bc5448b4ed4dd08cb", + "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec" : "0x09f9c241a955772f7c501c19e2bea11f494af923fb03f670a02b58fd9d1e3fa7", + "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3" : "0xbe758ea28f778b535afdd1ec7cc0151fdc762299369d067e57d2926fd6a0c411", + "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c" : "0xf262babe3d6634319a17a039699cffd376d471825f130473c27b8a2ed01b7b70", + "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb" : "0xe17e0790d13bdd6bbb8d4c6fe1aa925f575de1467137ff67cc8bb21be4f82450", + "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7" : "0x89da2ac3a968c67196b4c99436af867de11d547a4c44a4d44c1cfd2eb4572942", + "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d" : "0xcd50853933585de05a7ca09096291157b82fdad672150c507ee79e16ee40fc95", + "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3" : "0xe5c6c7706d30ed438f17f1c9fdd220132748f42fe0737c2415b6182e852c71f5", + "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93" : "0xb1de255d4f99b67a2287774ebf711f5dccf2be8b72e19aab3db58e9988c6a1d5", + "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3" : "0x404826a97e4f1508f3bc8ad72e21857b7be29ee8e3343aafc4cfa6108b5a9701", + "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2" : "0x9330dcc0a7e8a8b7797acc73f241a0879c3009bb546b5772acd357605a287ac8", + "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21" : "0xf401c783b5f1a2d90f7f9ce633faceb566d02ae24cd63a819b29cdca88bc04a5", + "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822" : "0x982ee8aa786fbdba580cb1939c228f1e48ac7f0ea3b85f06e13cb1dd2286d559", + "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f" : "0x78c4ac68dab994dbf7b50d53adb3abb3e9bb9fbfbcd3059fe173a44d9ac7807d", + "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba" : "0x883b2a2cd126101388a5cf02a9eae3151d950a49139234849b97615cbce0d006", + "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b" : "0xf01d98d9649b2705467a7856469285adf089ce25e7a917de06cea252ceb64b6e", + "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634" : "0x1e3fd8883572b7f36ebd2fbc36042e08beddd2dee12b15bbdb9b2c6cf9dfbec4", + "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4" : "0x01ecdb7c1c20928bd297b7896ac1786f09e61580f6096bc152c054b1a18cbaa7", + "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93" : "0x7e0c110e89ceeda0f5882cfd36a97cca7571b2730656828eb6e6e56bd34a83e2", + "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d" : "0x7dee903b1e3c3f0d5d8be2adf5ca8fbff56f1b21868277382483d4ea26b42d16", + "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161" : "0x636a825cf41bcd062ef887839e426bf5cd318a89274267f3a3187c5eaa82c440", + "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded" : "0x3c08014bac62cfa1a2ff1ea9e33733c76dfdf88dd6b521a2df74dafb4e40e42b", + "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621" : "0xf2c342e56c78118da880c82a3e6a52d652caa6022c6d43f900aa14514b542fd4", + "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993" : "0x4650ba8537ab185ecd13a7fac197512c0f3fc2a36cdfeda2fe1280f25559d994", + "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b" : "0x8562a8f8a15e2a91df46df19e797c8cf9effa3ffcfa2c3c351c18af07292610e", + "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40" : "0xd9d18665bdbbe7c02d4e082eb91113892e5a31bea3d2a69253008100f2763f71", + "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b" : "0x8983c5e9d7dc270307d0367221da6c6939b3caab8194c007ff6e5a9accf83096", + "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d" : "0xb1c7e1d88e18aa389217ae2c061f7ba1273df0d7c937517da9c6d6ee381761c1", + "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14" : "0x918ea1552f34c6e9fae85973246537931e9df31a805d66d04023878525ad55d1", + "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93" : "0xda5bec22bd593cccf402d59c0525e2117acd27bc800bf518c2cc18d8745cd415", + "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d" : "0x31b864a95f52d745e8a53b290083ba71a36a5e81991467ddb2f9120f8ae4db97", + "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62" : "0x4d65ba697e97200eaeedff8961154fac4556a87296ba002ea24bc779b0e18aff", + "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758" : "0xafc10258fcbdccca028e7461b7ac87cebd2326954282e052b6a7dee979e6d896", + "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2" : "0x237c8962ea74c9224a1832fbcea89d96f8f1672b3944a8d587d24131321f16b5", + "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048" : "0xa0ed1529d29585e65a1132fb169da986d8a71445031e9897921847300be57a71", + "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b" : "0x908a46b442bd62de6628380e69ba92de2825d7170350ecb2a9b7b5715a5bd86d", + "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7" : "0x0fc24748439a19519187376c4abd2fe5fb563b6e1b612570a6758318cf18ccc2", + "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941" : "0x423cc45cbf8048d1a30f6824b25140e7bda204b07c74dc93836dea3bbfc086c8", + "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b" : "0xca56e357358a2891854c29bce826d95f817967cdec1a97b0cb548b0dcb56bea2", + "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b" : "0x8acec888b550532f059cde0dae150f09ebbc02b8916b4160ba9c53893d2139e4", + "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c" : "0xbc452891579e57e61709a49696502645c611b4b6a6a7718bd9c3f10c91b5bbcb", + "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd" : "0x7867d6cb2c6b54dd957c3589a49b406b31174aaf85456a0fe43f2aa8be2e172f", + "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41" : "0x0cba817db8b2b98cbe4cee64a85f5978ffc948a4b57c90fb159775c59ea07082", + "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2" : "0xc264405a86f3708dd0f350cf7fa3da3186ead0970859d439ff54dd535e1aa88a", + "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2" : "0x1b4c1e31a7909a612d744830cae90de767e98e8578797a6241b25426b2e5f813", + "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7" : "0x6b26ca8f3d79978ac366b3e4f683a1dc41f8e94ca3455fe900eeaf89547e757b", + "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073" : "0x2a10d56a922e2f9ce033de90f220e91838c6785108d6746bc486cc15e656bcef", + "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a" : "0xfb5506c107ff4fef5cb92a6155287d3a471033a917faeedd0e587d9aa7ef84bc", + "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f" : "0x399775dc115c12493a87f00639f75b81fe5d805d7c2755a414f987e22c82685b", + "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc" : "0xe9cfa1bd48561aa92989e0a9f4ac77a79b13e52cd069a6357e7cec402e6e55b9", + "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417" : "0xb8ac8a03187d6389e5e7f6ceea521907a39c36244288399a1b56a8a858069d06", + "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f" : "0x96f12b9a2fd0f3b7e2f2e2b83e94dd418578faff9faa55769f8be8a29f5d0c03", + "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281" : "0xfd131276f29f0c06cb6a10b722c51205f5e747d0fbcdeaf076e83884b5c6bfc1", + "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984" : "0xd35141db9b2abcd6d70ca85971cb6f521e3ea11201ab235d890fb4e76145e9eb", + "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21" : "0x6f9c50a90ac8cd4cd8c8d85f6087bdd1d9672f2f1391f41becef57a0ed7d08a0", + "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced" : "0x23d6bb815ba6fd8a253f4b6e131edbcb4806fccfd7a56504838df15fc7d787b6", + "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66" : "0xef5ab3697891cc165c6cd20b196cac869a94b77160094682e9733db86e70bcc4", + "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808" : "0x79b965734280ae5b01f2d6cdfbf2767edab6e252b4e1a18e168dd12e95f57031", + "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c" : "0xd34b9b1b585331425215fd4171c624d924cc39fbb36eae1bc9603ce9fc3ca179", + "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87" : "0x62ac8e19e857385acbefa20f03754701ee3e6637faf6fb2bcc89d65fb30d1751", + "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154" : "0xbdba3b8dec7df05b2bac446c2e2ee17418380b378cdff6855aa2b954234a3338", + "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb" : "0x7a01f49e21a818e6ed88003f1556a631154df4cedcc0d20b5f658d159c45d811", + "c8dc7dbfae6aa1a1f0feccefb1fb82fc38ba18d1d0d62380272d53a879c1df87" : "0x6b239316abeef5bea30ae7ebb29eaaf369d579320d38df4600f2983d8099cf75", + "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f" : "0xf7e3e52a9776b1f493733bea865c198ba132f72397c533f8e73961aa4081d7c8", + "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776" : "0x5d62dec8e12acd5b4f9d5f9efb078e6938a6f589d71e3d9f97e11166c6e6ffe5", + "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6" : "0x8deeebad0a8fb86d97e6ad396cc84639da5a52ae4bbc91c78eb7abbf3e641ed6", + "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b" : "0x842cae287035c8ad3f52d8c60026258d20c8b0745b0ff281e1c39b41d54bdff7", + "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748" : "0x2729ec0aae7725841ebacb17d9e15fdaa9a2e9bf4dfc9d7f72505ca9eb75a25b", + "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d" : "0x60700d5c1d06b7c9883e89e814d00bc84a9c01c1d3c58ef280aa1790032c73fe", + "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359" : "0xa58f8cb2568ed9551a5366a6fb58521de293467573ba87481b17cfea4517a2a8", + "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02" : "0x0ab2e2284368154154da1fa9547beb807c685764cc321296ee62e65bbe3401b4", + "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c" : "0x65571662502efaad1053c5af7afad896c887d3e1567587160ce70cccf90712f6", + "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593" : "0x1797e2e4b67be85c6a36140b47226489f6ceafa1ba33b523955693b0215860b8", + "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc" : "0xd978870fedf1bdd6556a132367e561fd4ac27ac099c094bce5c69ae1c55eac12", + "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8" : "0xf6cf3acedaa81dfecd8a17e75131ffa9a0f1dda667027a0ad99b7bf5eb7c90ec", + "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6" : "0xd868be5e92e8973c19be2ebb108dedb766426b408b5cc3a90c8632c8e531f42e", + "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588" : "0x83f74b8a33b540cbf1edd24e219eac1215d1668a711ca2be3aa5d703763f91db", + "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e" : "0xcbb204d5b4fe29a49b4f811ca44a776332d04d53211b33e5fa88cdc91348b03f", + "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed" : "0xec8dd420650be78822aa7a2a0d07f742e6b2b390c0c12618d242330ecc5bd020", + "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef" : "0x8c80d4741f04dc10575200db6a8d5251ee86ea3fe3c5e6f596585980dd3bdb0a", + "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7" : "0xaaa937715e069809d842f57c79fb581ac1c35318ab997f7d0a38e1512845cba2", + "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" : "0x0c61dffeb1155b9f9251da0f2435b492035661f572c8efaad6ef248ceffe7f47", + "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2" : "0x0033075915c2e7727a3a37fac9cec79b79fca2c7ea6bcb5814c1e693e01504a5", + "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4" : "0x26bd64bcdd1f00c71fd72dbd242e9ef8fd177efa6943a3287f5bbb2f83a5adca", + "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96" : "0x82b64c9e05b319fdc306edfa8c1d8ae9b13b5afe36068fb690cda5339d3587c0", + "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477" : "0xcffbfb439213a88f3d81c328b0df66386065d1529cd16401c61686626b9f4e67", + "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e" : "0xc14ee4db2d69756ea52e3269c73c0ca37e0a2e96d00d462ba0c5484e500c0b46", + "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e" : "0x81435205c81062bdd9b85f36b21d205e9c5daa1eca402319a318194cbec16579", + "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f" : "0x2d91ae83f1f2e6e8af0f6385576c0b9c398d51da5b3967f6023a60384edd95da", + "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860" : "0x4f6e1ab1a4229371eae4c5414340a0a02ebd9086e6c9298b9b7fb31ffa8dc109", + "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c" : "0x50c10911fb187e3f98fc78a4ed4db4b711d0072a79eb8f667f4a23086f7c665d", + "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae" : "0xa40c73e07a7ec37d4875608d8e45f1f0e8442d43870e5e56bbc46cff780646f7", + "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f" : "0x3cceeb37ee659740416b631411ecaac0e0d6667c9df22ce4a8d31f876448b780", + "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9" : "0x43e3458bd0b9898748ae5edb70a2509062e833eb8e385cc322550b594753299d", + "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62" : "0x53444a99bcec74c6c440618d74a6cd7d2277abc10a416c01e6d4f27a295f45b7", + "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7" : "0x7e81ed4d6d912698af2e545d9fe57e9aa0a5d748aa44b0dbad40323fa5a9d7b7", + "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa" : "0x205941d6872a044c515eaa15e0397fde2575f8f2692bb170b870995933d4d566", + "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73" : "0x94fd34377d7289e39db87a037da1faf759993e68b2725e3f7e0763f398b8823b", + "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075" : "0x2d917a01ec367746036120e0755abba9d58134ebf51459d986b8c38e100b3e95", + "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97" : "0x2bc73cebf9fedd912da4c7549711e6f1f5c33911b826e324d504633df5cfc11e", + "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a" : "0x148ae102b370ab2829a5ba631a41b2f35c3b577943cadeef4f7cc3c0ef66931b", + "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b" : "0xe08d8bf5deb618e98767e3ab0725658b211f6a431f7bf90a99454d1990b74c8b", + "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8" : "0x26c282717cd2bd14382334b5e0c1e9673f07d20ed4f235709799b98db2fe7eb2", + "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a" : "0x2252f4b562ff74b5b91e4cebc847f665926f18a50e88309049bf0fe3a426684a", + "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964" : "0x48c7bfa8f5df2ba3e4803042ab29e12108c2f968feb1fc3cd151efc271441800", + "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3" : "0x17a5c349b2128161bedb03cf18ade9478c848c8273746672de2faf693a359462", + "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12" : "0x8c146e162befeb3a16a8dc7013cd1a7e6c660ad66dd3a2be0321ccdc43be401b", + "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994" : "0xf7b474ed1f88e1a19c4a456741efbbd14dc1a6f714ca255b896d849ca63f8d85", + "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5" : "0xd00ed0263d990dc3951d3e69417f766215390ab8c31c6afb5a6b4e7b352e0359", + "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f" : "0xec2f948cdd785afe254da2ea2cff9ba4fc3618feb98f1e8984fcef3a38973f5d", + "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e" : "0x6b8bb2345c93edd12e24c0ee872ee1887520dc70d2860b4814cdc4a312da3539", + "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" : "0xba54141a7d008ca3b0209086b2a74a924e4515c4d9cc402ef0710369d58b1d77", + "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a" : "0x42ea1d6faf9dbd0ad333fdc4edd8d7f869760550e46712276e92e594249f6022", + "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f" : "0xf57f9d70002978eaa8faa34961853e9c3c2599bc0ddfdf6556de6b63e19967ec", + "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b" : "0xcc31caf6d68d16f4b67fdc29759ad5faf0e9c9e1b7740ac526995120caf408f7", + "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7" : "0x14f2533e42047dab1d78606a6022a592badda57ef90de248d042e1d671b7bd1d", + "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165" : "0xf967fe96dfaf3a432c9a2c28ce58cb1ba6705f8f513f37a1f4c30e6c58392fad", + "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3" : "0xe14beebb2fa067e6d968b0260f3a2682974d2e95cca59ab22c2d87aeb7c1a684", + "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a" : "0x75fc46cacfff24618425e33e676eca82a53c8621d49a1e571152848e88165001", + "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378" : "0x5f24fa9fbb024530efa1863e4ca8512aef979ad3b6c55d0f83e796fb7b5c2c57", + "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063" : "0xe5533e0240746637bf7378762b73386c066be2685e69482f7ee0be9720af3707", + "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606" : "0xc118cd104e49d5a078de7bea4df563c9690361fc386a6355fa16493f9b3d2428", + "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e" : "0xa4ddf29c1ca9ce6c91deb7f6670a099cb805bee36e5c81a083a338a1fc2309ec", + "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106" : "0xf72df1e04ae66e867905ea85926b1fc2f6d5c27f693556c73ce6ab5aee41cb18", + "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b" : "0x9649396a34a3512a5857cefa88438cf0d20f285129cc294dc7e34df19dc144cf", + "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27" : "0x1778f5984a6b7fb0a5bc9c4cd1a4c49d80c435ac9d8b8803a7a9a73f3e04cb47", + "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f" : "0x77be008245b2aa79727e58d8ae6f5ccd4343e733d957dacf0d367d33005d5069", + "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d" : "0x7ba922ad95ee90d420967270c1cd73a08c7aa37084fba8bec09a5f12c14128d4", + "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" : "0x878b118488aeb5763b5f191675c3739a844ce132cb98150a465d9407d7971e7c", + "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b" : "0x458aca93edac2be9d1436fb79752c0f70e8135e6d06785877cc908577f7fc9aa", + "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321" : "0xe34ccbcc04337e3ce8254d5e86bc81877340eaf23f65bd31a082e07878227370", + "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857" : "0x3cc0806cc504a226f72b3948bd6b98148a711a449275f6834db8010d980e6018", + "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6" : "0x653f8898d016404a7d0d3571e08e4c4ce4afcc9901000902511c4751b0974276", + "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4" : "0xe6f360ddd91846882306f7384cd4c5f189242e305d1d3c0288dfc0caad8aab24", + "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b" : "0xfb898b057da6dafdec62996b467d6099f56aa83064421a95d726da551a944a63", + "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb" : "0xdb651773fa581d634eb1da3428e9c6134ae49ec4b21bd121e1a19c3b8d8965b8", + "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51" : "0x05534285c3de57bc7325a78f8d5b86a46bf92b359eccb3bdda705b21679592ef", + "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a" : "0x1ac1cf671ee24c9c5f41e1b5104c7b1b5867045188f3f9ef4e681acad8928423", + "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb" : "0x7616c58d12093a270b23b5c025964e2f901df2c5d68e42c4a8d7b0122b6e750f", + "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28" : "0xd0efce1fce188727cefeffb86b92c188db5ea76be40119d83acb4db7ce089e60", + "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d" : "0x3a655de45af792c6639a20df1316b5c06f78ba75ed1396782a8eab6d0d7cf8bd", + "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad" : "0x4a0694781fffce08c62b8224b234892051fc36b0f2045dea9665d8eb1a751c3f", + "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d" : "0x1867a4c85ae311ca4e58ed90620126f3e482bad005ffba5f6c64d17375724c37", + "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8" : "0xc6f2080be22bd6882fa2b70652dab7851e4687bd2aae1945f1cc4847827f1b36", + "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519" : "0x2772683de992975462c42828b84e393714b6a78a40ce8e61b7e32a4c300bb219", + "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033" : "0x43a6ae10a64d72f1f7a317c6c03e81833044dec465eb30906bd469504d2b34ed", + "9ff9aca7ac05dd6725aa169e643c82a34d9061eaead7bb759192cf784bcb20af" : "0xc6e482cf2bcbfe58db19cf69c2eec1d5d1b022323a122b1f3c0e75f38174dac5", + "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d" : "0xa21f066c758a3b9b851ae5e3f9bc129016861ca9cff0d480f4614d8753da517e", + "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2" : "0xa3bc043410a28bd10d215fa26178e7a4ba244d0e0ccc44e8de733941c948edb5", + "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32" : "0xeab5cd103be92c4910e9c0292a9ca261f85d9dd94117aadeacefdef89288bf7f", + "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5" : "0x31644447ebda1a4675b65069f388323605cfbcfd69e1d3b4d65aed494614af7f", + "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883" : "0xd319e620fec988e65b9d90c07f70929a41853ab3c6968d20c148bcb132fc6125", + "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967" : "0x9fe95add3cb2c5938fadee0edf68c149db32eeba0d3c5e199dc83b79f2e26368", + "e76e307abc63a0fe6a6cd8bec83a23997aae27b5a91459c3d73b2cf20abf7430" : "0x7e1a3b0cec8f1dee42677df80f874794c7b82f6fd1ca5fc76933bf255192138f", + "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a" : "0x86f8246cd3ba5cc1800b411b7c4cf9460cfc001c97cfbc85c9d00e811165d8f8", + "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376" : "0x179b42c9f4437584c2a737bc8f712cdcfa086a9ac86c6cd96db7f71acc89ae5e", + "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd" : "0xc3503d22451ba076dd16a95f00f04262b393b67ee6257166e88a44cfff36add1", + "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd" : "0xc7df744604631d00eea094315f373d395ff6257e02810e79133d2e57f666f777", + "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66" : "0xaa538d809c4b353e728f7103e71fae1cdba21b45deaae03a7f732727d4dbe333", + "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08" : "0xb2fc3c3a0ac814a6afcf30632b707c8768a158d8e542e5e6373a27cdf49a9152", + "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc" : "0x89d6292d07700792d4832e8fdb99341cdbfc26c16fee6b2f7fb2129a68c50157", + "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8" : "0x044d2f5f48feb658fc35079218e1bd6c9095bf9a18d2b7b314bb42ab0b280959", + "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e" : "0x2daf6162f57e537acf768a62ae309c76927418310828cb36b9ec9fbedf32b694", + "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c" : "0xb9bc8172917eb965cd237c5475338987bee85f84cd430ff0391a3fadb095ece9", + "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530" : "0xe391e53759c2fc88f6afd2bb8c2228d7dd5e876039b815d36783957b8d152f59", + "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206" : "0xf0d722faa995161446003813d80e42bee58d280bfe605c67be73204178cb29c3", + "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256" : "0xb6a2ee12503ed480af6e3e35e5a1386f8a4f984a5573171181035998b1d49ea7", + "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e" : "0x7daaf3ef2a6a7cb41c7ba2d6e21f4067c1ff8c350a5a16618797c8375a36aec0", + "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d" : "0x971cdd72055ba77d2502e92a94065cad8132cad85094b062b26f933c6e3e0918", + "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98" : "0x89d0130e5a54a3d989e4db8a33df0683272ed58d694a3118c9d406ba8033a157", + "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7" : "0xe26ac038f1b4b826a43a3c20968864f2161a7c9bf66374a2b19429caa07800b2", + "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0" : "0x2c629bbfdf1b123708632bc580669e83961347fe1ed4ff3e4e6ab7b861168b2a", + "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b" : "0x421e2527cbd209cc95a003d81a2c349f924ccb3486ed5a7d8a7c6c38579613b6", + "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e" : "0x42c3cc1cba7885dc839c184470529fdb771a7d901cacb19b465fef1ccb0b38eb", + "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29" : "0x53f8fd11d804d3fe0b9833970b5e58fa10fc5481c0bddf1ba5be9a238b62ae50", + "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86" : "0x4876754400e8fdeb3afd96149a835bb399a7bb0141a5184d24cf2c2697899012", + "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb" : "0xeeb6cd07cc041f3e4db3ba60f4be3da007e7b85a05ae5ed62d95d5a6d8b4cb26", + "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318" : "0xbc36856768ba251c016afb693ae53892a5c9e8a81f11102d5436d7522ed7cd59", + "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679" : "0xba3daaf7242d8728886fcf3285cb34edaa6a459f34db2bf8c67a656642a98987", + "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8" : "0xccc30a5a8e61a34a69d17cf02cc5ced1acddc1233f5a799475e292f445d4cfeb", + "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412" : "0x5ab23f2d2adf4d361fc70ec11d5de7c033e8874c67b70fdd244b5e531006efa6", + "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f" : "0xe496f16e06b01b38d0c301a89791a8afe91dc7ebad3d491494ac712714cf7f69", + "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca" : "0x81441dae866ff6312b15e2ea7666340452b47bd8f7d649f88d9f79d589a91625", + "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73" : "0xf1def1e87af46f7c0b08bdc36bb79cd3efd985ef6dc5c00e83a423cb71914915", + "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880" : "0xf2e64772c74f0cd9914c72163b876cdc7a6ec4bf88ab4563a6dfa486d9f05a9b", + "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064" : "0xcbf811cefbb833787439efd97f216d449d46fac105e097da1480f893139fff01", + "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd" : "0x10e40dfeb665f93b94888eecdf8d433c8b60d70cc23aaadc49f83cc7f77f9682", + "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e" : "0xe23570acfd7fba7ca5b1de1dfa98f27b393d3dafb77aefa12302440fa42705ef", + "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff" : "0xc0500c66f940b8ffb98ac9853a75ae7cb31f8056e46b204a4d898d765c2e2636", + "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204" : "0x6e3b3ef27cfdf0e0e164e5b7942e13f1566b62dcbc2dc66fd75f6640209f5b09", + "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266" : "0xe38dbe2ff3322f1500fff45d0046101f371eebce47c067c5e9233248c4878c28", + "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad" : "0x54944f2a1ceb659e05b666afcf5f39cdd7ffce6aeac6ea5f791c32d6c509eaca", + "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130" : "0xa8fdfdaba5e406455941bee7758b3507e953d84c3e39cf910f73e94fab9a72e0", + "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e" : "0xdd187aa48166150844ea07d1c1a5d488dc8bf51c90789ccede850bcd8a89b4a7", + "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97" : "0xe6b00a9c2678bbf2c007da6efa62e9244df645b17ecb34fa647dacc18fa9368e", + "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15" : "0x682730eb45da1f7d800bf88e6e787f4632510ad31b20b2e54b2ff7dd19c0dc68", + "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431" : "0x14414075fbdf322bac60e4a3adce400188e8fb75c423e62aca185ad5caf724d8", + "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c" : "0xc8f0da49081b7757d029bef22a72a415ec8283125f7ed3343c965dcdb452e3ad", + "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183" : "0x7555bad22d085eb34a463e39abf9a9bc8a1b229a8d66c5d26738c44140488d7a", + "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722" : "0xa3d3e81bd7e890ac189b3f581b511f89333b94f445c914c983057e1ac09ff296", + "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c" : "0x522040b312a2e896b3f8508824aa7dd905afbc0a77d5185c094ec1943bc4aa03", + "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9" : "0x4229b0629ac127ce244e441d068516e851390af2209ef17a9f9db9d27a951661", + "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4" : "0xbafe17e1ee4cc3b4a5f388147e8c8b0e3c09b1eaf88f5ad3e7a3999745db51d5", + "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a" : "0x8cf01ad0e42c1dee0195791abf2c583f906d2fe61613b79faad1dc203fd9a47e", + "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0" : "0xc807978d4cafb73b36ff068dc928ea73c27daeda55feb4ea863128a78016eabe", + "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea" : "0x93e1e216f6cf99f4b22268f90add290728365828f31b2f7e9af70fb519abcf2c", + "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5" : "0xdd40524fe7a7018d435189aefc42e59e0ef7de18ed6726eb5419b00c2fc5d7f5", + "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24" : "0xb609906923a78563d5349efc5908b5b38af66e1c22749f29e5061cb3aa786fc5", + "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f" : "0x84b440b3e00dad051cb4c1100f59967346bff85df4e04a80b78b62fd523bd711", + "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9" : "0xe6eeda2c10e9d01df3ac0ad2a6f61347207a1bb9357d945b3121180ff6c1b882", + "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494" : "0x747d6bdc8c4555791b60cbfd3b281a008c80fdf9a72514c8ed00e9df98fba824", + "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137" : "0x6e0016d3d81f17335d783a9200a7f756a40be519e21f39305670bb5fa8ddae1f", + "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc" : "0x1e6970d2855cad166fef9ceae16b18fe9dfeb0b5f7454d9cbc34f94307eadf65", + "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a" : "0xec0e80df69fcaaa4fda31d3affd2a45e1347bfd8501155e5344e1cc4453e1a89", + "e4973bd7bb2b8b78dd63af491582952e28f642a5b26cb2455826e201ae762bf7" : "0x9d8dc23f2d902c5d75a57798c88fbd155efde61628ccc158e38ec423f4d37cbe", + "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832" : "0x36a954c1e0b1f3337ff3dc7abc503cddd6a89f2882a8c7e6778bde1014222410", + "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6" : "0x63bb94f378e9da05a978ad86dbd2c2b0a90b5ff984c490f314263590a4ed1a8f", + "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf" : "0xcb2398bba51417baf9205dcf80089004df5e99760dfba339471a989968efea1f", + "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d" : "0x45ce4df5e11184148840dd4172e81c4dd9cf7659bd1bd90adb08bf14ff6bcaf7", + "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749" : "0x3e33844f2c04264a5107757c6755d8f983bb379c8a9b02d8cc83bdeafdba24f2", + "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8" : "0x90e6ed8e56dae1c82de811cc27f0b13ea9efb3db144571a6ad4df1111315017e", + "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2" : "0xadde49269a920699d9a8a836d3fcee4f73924412439bc59fd4591386524a13c4", + "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd" : "0xee69ba2bf6015544a19103d7a9af681145af1447e12257072b6dab4533b64ace", + "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6" : "0xc14f8c30ec8183a8fa7f943855b3ff5f99d9a56f05d885be4f037d9c9c00190e", + "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999" : "0xd71b552c791317a6dfbb7425e62d918ce085b22ad85436e39a2b30b5dcc59216", + "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f" : "0x9b0adbf1bdbfbbd49518257d77191b14183b123d88b25f9bcfdb109680cfa581", + "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421" : "0xb8f730f1671d22f0acec5091fabecc9243a61caae31811aff826d53775216607", + "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937" : "0xd7748cc976c1bc26517a96459510b9ddca510ac7fdeb7826b3dfa252d99f7dee", + "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c" : "0x530b16f0a67896df55e3b1d9e3be8c0d63b3a62a4060cc11564e18ada11f404a", + "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a" : "0x479edf6d61f313fc14cf30bca09903858c0aa4001da40a2efbf8a330a3d877d2", + "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02" : "0xfebee46b92fc7f3ff1d24810d21838c04c2101235ace578662f0abbc60095b96", + "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb" : "0x6eafcea4d987f66b5351e52969671be4125ae4b47ac4f4f9f4921755929378da", + "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1" : "0x6d4d4894a3700826470f6874b3dc03d4ad102413103a3eb538d633df0ae1bd40", + "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f" : "0x6fc10ab93a8b01ffae22c23df5e5e36fe43202b097896e0d5a5eec416015e3b2", + "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7" : "0xecb5dcc7d4f2ab012b7806ceeeb8d73d431d38c49138344e858859a8d22145b6", + "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee" : "0x0e5a839e30211af31d2f14a248cf13315a91780d94854852e7abdaa92e3524d5", + "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea" : "0xd349b7f5709c32fb26c66d871c8c3d090ef38da5c04b06cf66a3e7098c62c2b5", + "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" : "0x5f1f0434a5b12e1b6db4a66d4c0025b0c78cb75c84ffbebab9bb1a8fc539662c", + "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919" : "0x38c6156c6fa6e10af65a6e2914a26c45c354e7a9e454f32b520a590645582049", + "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd" : "0x5786d9f296510374e8ed7caacdf744ec1762bffd0c965d328174b5766b282e89", + "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192" : "0x4f2ddabd1c080f648eea58ea2d366c5b3534ef04fa682138b5e4c381fafce554", + "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021" : "0x6bd387f9d95de741951b14040d12de71ed2e1fed271c1bb9e74fd60c970f4dc1", + "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193" : "0x0e5142ee8aa6ecbfdd1aff1cd2dd4ed2924e8f6bc47f9e10f43670a2e731078e", + "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5" : "0xf9716b158a3a75539db8fccbecece70e65180bfb5c6683a08b85c2c7f02fc9d2", + "013317758a5b499650d72edcd7ba12bb5cc54ce9434196b607fa5e01e0f7797b" : "0x282c6815b611f597a91c7c62e6c5525c0862093ed9a4b9593dd090b66ed66b66", + "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e" : "0xa2eb0374ae620d124a4a775e9581f83cf24872ea484e8cb4434285e2a7e282d7", + "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1" : "0xa98d791ab2667e8d7d4be4237fd07d34e42a1fba3da615a010bdc94dc2c86237", + "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb" : "0x9c733771ddc9bdb9ba8ab434ae246281d1072b8dede53a3920884de3422ccb01", + "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d" : "0x3407ac8bfc0505c91170a8782c558a31c3a29b0cf7d0faabf3554cd9150fe46c", + "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590" : "0xf558b0dc5a32eff95c23f860ebe3d89cc2121707491af1943d010d32aa4bbf61", + "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f" : "0xdef745e8e47fb7f2c0b5077442bddd432e4af561206b873c37e90ea60cf1dafe", + "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b" : "0x6cb16f3675cb95170510500e710b129f30488f64e257f734690d314977d9b832", + "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd" : "0xd2e91fee3891b0753adf51c58678ba7a10c95dc6de7b04108adc7370ea767831", + "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538" : "0xb547518ab51ea2a729ece0fed40712dfaf0ed8fbdedcc92370833cbfec3c292d" +} \ No newline at end of file diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json new file mode 100644 index 0000000000..9d2f6d81dd --- /dev/null +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json @@ -0,0 +1,243 @@ +{ + "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0xb6f968f116973dfe1166f73955f59131282a308d47658bc074e400142a6df99b", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0x690fb7e5ed85f981b98b881db07458a8a467ac3d817761ee4d79cf9f801480ce", + "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x0575742f5fde8beaa28022c9cb8376dde6adc5fbb09c0eb7e34f3c884081bd97", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x3802cab0d68b659c81b66f849c1cfe240112f12183e378ed50c92d2c01a63443", + "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x9b3111a3b27b0315f601f560fd1d340a040645f5e99455013b48275efd8040dd", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0x081f8f00aec130104ddbd71142733b262e1ba6b4d3ba87b97409080ac3b63412", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0xc3f535974580ee827aaffedcb46627cc99eca188f3098b9c8894b39a3742dbf8", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0xd0d5bd619b295970d5aeed38e2a41cba55bc4cc54b9e62978e51e054679c449f", + "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0xcaeab2a94f62d3c903d67526bf3bfa55d275f9025ab1f04a79425795ea78482d", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0x4733c0aed86e5e9a1a6e71dbebef26d1bb7ed5f6348a7cc8ba21536c2f11b0db", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x9974f56dcf7fbc5c4ea83d8c0d78a48f95455271da020b38966ab70ea83032c1", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xfc562c8e5534f9376bb23db344ad7f3c8a8309c0a0da8fa76096cd583858d318", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0xfb444178d7ad7da262bcb933d04f5539c6af1d48c44811cfc32fa3aa749069de", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0xf10573d71f68d054ad838d506ab3fee145d5729c3e2abd5a0d80d8b770498d24", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0xa4f7538fdc2d3ed5c95bb6eeb675828a05448ca9fac1508122f6859cd585aba4", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x4f6bf454e6fbca35df7161479e0b97080babdbe6dcc20a7bb08c8ece5fb3b33f", + "27d108eb764c912f49d3453a21dd95516619b1c45d0b607ee58a137ac8a6f32d" : "0x94f04897ac3357c9b992db1b2c196009f9565e3bca313baf2c0bbf9056c40a32", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0xc8e50cbe1f871d49d3413cb6ab1b3acc465c9f8f49fdf24eff977eee1a4680dc", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0xfc33bf75fb16cd19f86e2b1664320b90f5d945b3b52e1a6e78081e9b99078f0f", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x2b55f70415ea2b92ba89ed2ea788638af79baccaa79e2c6c7d058e4db56f61e2", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x627fb77633bc7329368baf13bcc5d7a2e0a0e016d95b9685d9711b33eec14051", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0xbafd2c96e0e755436cedc9ddd0a02ff8d8130e4eb6e6522765a7156190feebb8", + "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xabc5fab93560a47cc8af9e44b3ff4bd7e4b5daec88b627f3e12b4810e33841d6", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0xe28188b839c07bc527498e154f6004fa557cc1ce27ba0788f51f52feef69c975", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0x533e4686be17668b2757b0abdf63040904101979ef677dec0926dd60d548c03a", + "fa2d39b681f3cef5fa87432a8dbd05113917fffb1b6829a37395c88396522a4e" : "0xeb620c241aa984a843097175eff92dfd9666bc944fca381fbe3424e138bdb8d0", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0x22c4e1bde114bfedd06eea8246cf21dab1a5851d0e156925ddee3d54fdf20c63", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0x8a72cd8ca670ef27e6e8b0debd89be9f9e22280cc7b8057c0b767a12d92dfa33", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x75fb48e3c98eabf4484e90c51fa9634dc81c9ef0fffc6d7901cf7bddf4a06f49", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0xa3a9133b8b0c01a36ae931e3cf940524c40981bce0ebf944e5139390820b0723", + "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0xe3e08586ed16a9937a2a3a98967f85ddbba7e331d783483b80fce323cd4dc1ee", + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0x0d2140b047c1764e52ce2fb6c628ceb1c6cdb03c07be0b01d2fa4644ab84e680", + "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0xbc3f7cfc5114ea27c769cdf320641e489371478ab86452fa7b600871d924a274", + "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0x557b37d18b817b5b60924cb4b57d3e5ac125ce296a323fae9d1f6da2e4b86576", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x043e349d0efc9abbc8d7a7a76ea2d548fae6359dff8db809016537cc9999384b", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0xc2909b2472fe0343542d712f0228373e6364569e53a406ee9e35d9a22bb0bf0a", + "432a52bde005a010dc32c47733e4595fea0ea04df3b5aaa1c45153a527d646f0" : "0xb4581880763d4fd9999ad774d61f06169a0094407575888529db59710b4a0abb", + "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x60994253a3ef9fd4bbc21e22570ac0a659daf036fd4e135324da0b5fa05eb417", + "d64da7f265f00c456c2ebadf4593848129b9c86b45523e441d2f5ceb838a89cf" : "0xe53c1b5038407e9f0b523c6eea46a84723bb1463364fe83a5210265ae7453a00", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x1b89490bfba1f7eeb2132197bceb6cc5b7465dc8bce09cda937a54af637a3a5f", + "ee42016c303126bd9263724e00f83a8114e84518c6e8ffc9738c001cc301daff" : "0x7e659a4f98f2915d50c2151bd989ad611e8233b3ba4569da2be20aacdfbe47e9", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0xb3544b1d945757138f7f7ebf5ba702ec0360ba13c42c9d25dd96382ea9592d74", + "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0x29510890c9ff859f6af73e16f0fa13e9692aa207fec1c5d58a16e6b71d7adf70", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0x25fe32d4ba399a020ecdb713c172083556e209e80bbbb3f77fc76e66c300a1e5", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0xf1cd59638bac3757b54d897c500da2886de56601236101bda28637706ed66d1c", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0xca91cd6b0f008ddabb7dc6faf563a11bdd99844c38230bba0896df0c44f0e202", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0xe224b22c03c6ca1cc638d345bc5e419a2301b81eff6c08fecd8545ff0dc8cae6", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0xd5d65a98b2cc2ef42709050a22c0a4041c8583cf8abdb58a9cc44bce8d566868", + "67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb" : "0x418abfd6a1251bd40c9b50bc5af51d80d37a4e18591b2a30854962dcac787285", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x0d6c6d11a0d7f5dc0cadd1d3f9584dd929193298c74254154f9a2bba9410033c", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0xfd12d2324500be3676bca3c261d242bb5692c52cfe2afa4a6cce1fb3bc6a4816", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0xe787e33e05981bd03351a46f2cb18fc362c645920f9a036b216b209b76c5225b", + "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0x4428544fbba3d112587cf510b842eedeb5f91ff7bb7cf7cc36fb5b5a72319236", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0x068cea3219eda440819e401a0d88bbb225f888abb06cd60ab66fc9a5c465e9a1", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x4e3b0af02ade7cce8f5611c8fb786a09eb28e84fc1a0e3f046d6a244bdc42997", + "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0x0b14d08c93635d0e747dd2372307d286895fc9bb4494e9c0bd378ad51f02d455", + "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0x56e08e9a8329decbe913f5b0b1eea35ac8ac827a8dbaf5a9379006ac613126db", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0xe46238df7aafb9ea11ed890099cc33e6445e9fbdc8537cf0d76400172bb000aa", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0xc340ce58ad605dabe36ffdf42c8c365f4a2be54c8da1ba6bfb439200b3734ba3", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0xffefaebe0f0f2508b3605f1140d725476bf549b6f54cb14d9c0179e1381bbe04", + "d45392f678a1287b8412ed2aaa326def204a5c234df7cb5552d756c332283d81" : "0x7f733d3fcba1c5003c5f163925d410c7212d3370bcf86b2a10ea98116243e9c9", + "765f416f2d676848b5016428bc9295fda3e71d5e97b16df75179a378cef040ec" : "0xaaa16e55d9dd89e41635b37165cc1d901f825b7dfbcd9c40ef0cf7e070ef41d0", + "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0x6b33970eedc16ac12e07e9e5488b72edd5010167c6d7ce4783bd54a17a546782", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x2bb53e525573d21d1187d5c2ba9a7906b01f69b9ddb8c24748656ddccd68e487", + "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0x6a1f63bab3b8bb5b90c52333e5ebb2774737c1ba85fde5097e4c484579535d4b", + "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0xf67a2c84883114b27e9a804347a46234ae32d587fbd56d9b4b3e4dd5233cc8ce", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0x06e88e2276916acd3bf6bbdbaeedfde1fe80b2425c77c4e08ea20b1143094bd7", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0xcf68e33a3bc3841a17bf4928bd9ee9d3204d9ee179a06a690494c36db3fdc390", + "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0x2b9a5d4da91b3059edc6d6bd872e41610cbdd945b894c8d467054f0f5b2b6f9e", + "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0xaa0b4298e868346cddadac8ad5cdc722dc4b80c1a91057b36a2a7f8f0f8df87b", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x6a8f9eac547430c7569af634c3f66d863e714317983d2198800bd602d6a35ae4", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0xa7d75b7e766e20b0dcf52318bb9262d1fbc0bf5845d93873d795788e44155dc0", + "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0xf72d07087221b7aeca3576250241be5e9301cd2c9e7098cafed12df90ec1e5bc", + "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0x414dd1065f58fd2265d1e4bba4e2628a22d16c05004834e7db0f4f96d56b331e", + "5a5d5f7fb72cc84b579d74d1c06d258d751962e9a010c0b1cce7e6023aacb71b" : "0xbb5529fe529f8bfe2e2d78bd69b13e3e20e8d674df3d4ba7d3c2e5396543cb33", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0xd0e566b054f8171e9ed3337902074c8114bf0b869417b903f530cc1c9d7a3a8e", + "433faaa801ecdb6618e3897177a118b273a8e18cc3ff545aadfc207d58d028f7" : "0x00163a8b12a3f1bf9de16664aabcdd63832e262b6f2025d130022d5d1ea2eba5", + "c415de8d2eba7db216527dff4b60e8f3a5311c740dadb233e13e12547e226750" : "0x56baceff0dca5a4e903203d7299db74691639ac4c6954e408056675029eb19f8", + "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0x281303954cd2731c4302e730998998c009d6a2594d47c25e530cd56c7a677ca3", + "ad2fda41998f4e7be99a2a7b27273bd16f183d9adfc014a4f5e5d3d6cd519bf4" : "0x5a1809bce6641551979a9b57c7c1ba2c33e2e8b51601432b576d5e1613e1f3d6", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0xeb732c4568619bbd79a5dda4c4dc4832905ffe0ff6978ce58efd64250d5bae61", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0xe5253c1e4f90ceadbcbb69d6324044f36da477c2361292ddc5ab1f6e73f22b40", + "67649450b4ca4bfff97cbaf96d2fd9e40f6db148cb65999140154415e4378e14" : "0x868853ce6cde9050158ada5690870fe0b33868400c8d937ef661ada095389fcd", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0xd43d6d18ce07b481f0871337b0a3f1d74972852dac3866b8b59b6d367e2d87f8", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0x846ba321e90a18bdd36bb17e24a931bd67aa9ebab1c61f69dfe798932fb5a691", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0x6a57cd5f71e75a80dc4b2a629ba1062be7c017ca42fd4a938e54fe1906834069", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xbedd56a5e0b550598a7491e214e06266ebeab015cd74a1d8df8ced0b18b60334", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0xf8583c05f389c74674aa7663026f38f14b844a53bfc3a403c4fbf776ebaadc07", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x8a246a343c04b730525a476e77fba9464fc2db37b1a41adab1f1f1891717d6f7", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0x2da2c95e03f37d2d2e8c37244440f24d19c7d62dad134d5b4dd8c855e287790c", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0x49e76e78ed402461e7382ce401ca01cf58498f676521dd288af86644a12c3a8f", + "95609d32c98a467a72ac419f2e64bb2b8dbd5b00b74f3a0fd72f42343af1743d" : "0xb47aee5df8fc414469091ae1b4e4c0c8caaac8455fb979cf87c05eb53e1379a4", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0xd91961e22ab01e0b4e543985d0b9eb5407d75a9729fc64353a0ad8f58e4aa17e", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0x493ad7286ac642b6ec2acce4b90f9a501df53ed9b8508f5e5dbef0b4a4121362", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0x2ebd84d2f7e7a27f6adf6daecc7a8c0a613fc6e4b955bed3712bc6b14b6e4852", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x45168d43a3af945d9f036eff15d264c79700bbfee4ff1def589d07259d8af7c6", + "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x3a074bdc92b4897f66a14d802d64d1ef1f86fbc8f4cfa10a72b3e8365ef34003", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x8c14a293c023cd7b95de90ab95aac7a4afe79d0fad06b67be24016c6462a2804", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0xd562076e43428ff5172e9e11cf925676514440bf6768e86cda740b7096decc1b", + "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0xe186cf9b253b558790d7022ef5d3cd5ddb88c6e87652e3562821acc06012b81b", + "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0xf01d528249d69a7ee2a8cf185a5c923201525903622d4655767695ed8599ba36", + "649fdd7ec08e8e2a20f425729854e90293dcbe2376abc47197a14da6ff339756" : "0x7347eb0d644a2da6e509a8b2f7696843472c0dd3226065e957f45ec6f2f15869", + "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0xbb3a28603301b0624541f05dda7389d4cf7224f5d12c20140a8cea9b5bd1026b", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xf1d362ff6d39c7dad6ebc0c16a81904d1a7f3614959c6d02b3d6e08cca9ad769", + "159b09ed169a3cdbd13fd96ef4b3cda54972058906d38a58f5cd327e5df1478b" : "0x8226099dfc20f884f3339c01db0913752d7eae1a3e350c6bab77622711a1fb10", + "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0xd4870e09a36e2ee62e7dbe16e9d1c244410aeb60979614c4df76121a6862b3bb", + "b216f7ca372b318985903866e0b6dc44a14564828c49f36d0d363805aa76335c" : "0xd26f14421e93a4d5e7fba45abe59ed9a5a2b22c174e2215fccb0e021891b9638", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0xdc0c01c3b1eb880e2500fc04fa6769ad1bf832563af3c2fe501ea2e7c8a44786", + "4176cd17d4a1fb517b6535e70084ce85e1bcbe707c66b960c8bd5256accc1b2d" : "0xa211acda02cc19ae5fef8614085299188111f6f1d928a6861341c76a8fd7499d", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0x00223c8d55871de1144004d47843675d8cf3088b32bf605b2c155dc196f00677", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0xa09657d175deca19a6ca4eba787d8be37d5bc6762623598007dd25a92cbc764e", + "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0xd84087a1eacc338655aac7906b638a92e8ac9e77526c3c5d6ecdef36dc7bde59", + "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xf173f9743d53f9a67428c86cdcc40c2735f55b6bf66b02532d78c7ab3ff4d603", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0x325d448fbee4659a8480be51c4d207b58831bf09087cfda460ed0106ea849349", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0x8815331366174347f07e36179e460867f5e460f7150a3295b8b5aeece3d2b483", + "3607bf4d7b78666bd3736c7aacaf2fd2bc56caa8667d3224971ebe3c0623292a" : "0x65d45de4eaaedf2b2d0988428913f6eea3b23581bf080f005d2d605989fd4bb3", + "81a21b01c15b8d01f6cdfed65e00987cc4c901858c821b2089344987de3102e9" : "0x88b600db1ec4674c10f91df06c3ebc7021545328b857995aa3945aa4289f8b44", + "ff4c53361e36a9b837433c87d290c229e1f01aec5ef98d9f3f70953a20a629ce" : "0x5cd26d092f4a1d3a5f6d78fc4ad529493b3fdabd1853bb886737a4d275b00073", + "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x4b00b756ab54ca659a7fcc307b16b338dfd49c8b6a4cf7d07998d246f1f0f72b", + "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xb1f0bf15509d865d1b611de52eb33ede3767f4601c28d62c2499ef4e5a18aec6", + "26852e2d0696e25e6adaad2d7ca3a1f2f15aab68d317ace14d41b4128a7e780f" : "0x99cdb56755105d1de3565c8789e3dee656a23e561d1277440c1f35ead22fc948", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x6f3e9051d9d4cf95d2164ebad25203ba413c741bc133525b169747756f5cce8e", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0x6f78342af8e9575f6096fece95465e2af4599427a2e232b6fe1867954adc6f84", + "0781209c28fda797616212b7f94d77af3a01f3e94a5d421760aef020cf2bcb51" : "0x593a2113695d9d60605b2ef4f7b7a3a9e8832f264e58c249b97a79cf00a0a141", + "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x7ebc795f79ba493870a54bf2eeb4b8e12fe3884d7c626bce8515296e84503652", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0x89dfcba3122a3470d794333141d93d53551aaaba5a1717a433e37f6deb6c7ff5", + "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0xeb9e2b6a86cafdd3410f254eabe64f1048d1382d9a324f3fbbe61fb9da9bb8e8", + "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0x8ef90489d78228351f2d898d621471b171efd14aa628bf99dc89e33e540202d9", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0xfa758eb1ddb64a74853f768a7fa7bd8b243c13f8e9b8202162711146334c265e", + "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0xa42470d105b61a27c019b5bd30416ebfa629ba0646163bb11eef774b46b1000f", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0x74026eb168b50173148a2cf5cf983285cc2701809c3ac25d580da3dafb342a1b", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0xcef5b2c20b6a38250ba8e2bb8542091ba2e82209d2c63c35b0a6f8ae7bfcfd79", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0x57e58ddc5c907208d5866c1fc184d1dcb0a5eb60b1862875e8458faa5635a0fd", + "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0xe90cac728a1989eff73c4712a6f119836a984e09cc955610e62efb9dcab1c389", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0xe170de9672b42ede20a23b739b18aa1404277cf42e403b3494c38d4a7b72b3a4", + "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0xd6055e4ad616fd08f983010505e449e67004be63e764d57c3736ddad5d140e90", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0xbf4c132fb75caf3244bcb82f56e1b04db21c82868c878d4c509d193be10677ca", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0x3a44393121d08b3dca64c3e030ec47f6211eae6ed7d7383622a0680ef310ac10", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0xfe8ccc5dd7e957c386a16594392ee9e4d53ccd3a1c9c66f3d333df1ebd6bb126", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0x1070dedaa1774089600233afee88908a3986201be330876d148f9adf131b1e62", + "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0x6c883438c24569de4bef718304080e65b1ebd6fa532191b9c69f3a36f148911f", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0xe097d4952448a08d78ee1c738db14b796c3f4a602c14db0ecc45af3acf660edc", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0x725f0b8a57dd6bcdf1f0b801a1ec0009a58f2f8cec6688bebb9757d365dd4011", + "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0xe8c556f8e3441f353f93b6c3697635abfcb69942ac1535db8f4c20c78e625394", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0xfab0331c077707ba2d63eff0af9df830dbe8875af971fd5417af06f9a3af29f3", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0xd18a2ee6d59cecab223cefd9f567b388fd2a1ad15086a42ee9086e5c8ecd2e5f", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0xd9a51d29b7097feb0b56e3573a5aef7426e4bafea2ae4d2ca2d21ae05a48bb0d", + "8ac0c70fff57e9aefdf5edf44b51d62c2d433653cbb2cf5cc06bb115af04d221" : "0x765146e6c6e30e4a7495f0f77c1817e50abcb4f3877edbc4bd3f199d7c22f6b4", + "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0xa293eac6352f51b426fe26c0ebd1a2691d4379f25f537688490a0e99f4fad32c", + "944f2f908c5166e0732ea5b610599116cd8e1c41f47452697c1e84138b7184d6" : "0xc9a6b6937a8d9b076cd6d8ccf43b94bc571d774fae8980e2b4f0ab45a71d6a3f", + "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf" : "0xbfb6957c8ec782ad47274c0274097cdfcb209683f79690897b95543c18a950fb", + "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x020257bd7128134cd6a98db78855a1758811c6ccdfa08d1c6ea7b2b5e154d806", + "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0x9bfd9fc818f9e84b99e42040e5f4a3cb17c56df4c3814b89bf8f37a34d76ae31", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x8fae08b5241bc5b3d76fc135b366db9053ff27e83b95c02b39d7df995bc1c928", + "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0x647a40613ecbeeed6b3044c25cb97566b5f1586493036c88f039e5a7cbf9398a", + "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x149ba54f5d83a4242c1647387de54025e84775ae31b3e401e0505ba9d84814ce", + "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0xce1b26252c552fbc27c694b34b0279534d66c1b6ac8a8a15a7e0802756381539", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x6c08bfd4b367ced7af611e88f0120114ef8ecf3f6c02dda69a3de40b30f078a0", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xaeb0380e0d875da5d2acf558dc2c47c9308104a4b270aa8fd1d039ad9fe1cc47", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0x929166ca35d9ef586f4861eeb16812a6193d5a0a3d8d6aa25ad0308f16bf2e2b", + "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0x11e6e80d75b9e02f0e7a73c5fd6a037678abbda7c14b6ac53561c5c732b05bbe", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0xda7e0bd37e3478d59755e44a8b910794379f8983e5dee2fb7ffbf3ba5ad68f8c", + "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0x2ac120d486ffb07d41d48bf43ca092ec87ebfab30680faf4ef03314d1026e57d", + "70dddcb074263ce201ea9a1be5b3537e59ed5b9060d309e12d61762cfe59fb7e" : "0xb1286a78b20a268dee0faadeeac8a366cf50946fc244c1a1121f3cca54b71702", + "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0x79e1884e5f17f8af3be116a29eced5ed328a802afbad8260e89baf0fc99e7475", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x107ff0e1f03c691ed9b0011bd1f2ae109b0fc405d3fd80136e7382c25caf3a2e", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x9024f1b288cb1c7d734ba5978dd18c34d3e0f51f9b4f2a8334fe8d40bf6d01f9", + "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0x1f1cfc5943e1d662e50e67b99fb770bb05fb1fb30eb3b8360cc91053c980c664", + "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0x756f2ccf9047a226a763b687e044d4bccfb03e5f1b3d941de7bec90f7748266d", + "6d20210495d6518787b72e4ad06bc4df21e68d89a802cf6bced2fca6c29652a6" : "0x68cb9005e58ea827135342afc31ba1391832f17321366213a39c3d0087bc4906", + "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0x871596766a4a6876cbcfbdba61d5e098d95db6251659f25bcd25f74d79df24ac", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0xe670146c6741b725ab5e2fd550460d035b8aa9dcb66cb666545c4bbef27814d3", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0x18086cb9c40bc2a8a3233310def4387724fef0bb13857e136ea2ab48a2d65326", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0xa3c0b9d970667d87fffa56a0da7f28e6b3bc30a6cabfd3e8f6685ba17526e30c", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x303928f43b984fca0546ae35b70d8479a353df9e0f6ffdd5158a51dfb75694c0", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0x140257ad88a951c3d37101fceb3768775714bb0c6426b38d6e7a30be29decfbf", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0xb3c92f18a4a0cece945d6d36d232e6abc1f19b3609a5ec75c0cffbac29f9d43f", + "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xbf1a106608f6f71fb1ce8331219cbe6cd52093dc9c0d3ebeca90ca7c623b0bd9", + "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0x6ec30b18b3e7cd66322218e6e6904f8f27ca45627b20be58efc7479d28853a1c", + "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0x78930c93cf2927994325d75d161c77c84c4885b7bebd3f57da954eb719b8d0d6", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0xae174a636ecdeb169c4a42f8c20ce654279d9f54be976814a7eab9caa553ec89", + "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0x401a6b36ca1be03b62afb72fc3729bd58e773de5c889188d691f2552566217c0", + "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0x0d1302511ced1c04f538a410aec75c3fdd98a09356cbe6e1c4bcf0268aeed21b", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0xe2b124eb856f15621aad931bd3dfe59c7bcc74555ef6c114f32700b5a6157368", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0xf5bb207f08bc335db2fcfbe0c6b991124739ca6aef4490aecfb0021633d3c23a", + "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0x58eba59d0c838f172f2996b9700b6884ede500c805724849e5b444b665824ac2", + "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0x1d5139a3e56f312c5e5c10be74e6da317bbb84edbb37c6caf7ab347253f76ec1", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x633ae4b37ce1550bb4a0e5c55cb7c70bb59cfa54aa56261295fdeecf1eac23f3", + "a1a6465f4c2ebf244c31d80bc95c27345a3424e428c2def33eced9e90d3f701b" : "0x4049a33c588398f5c94d3b6b2d451b148c43ab8eeaa2e7d83c3ef849282bd6ff", + "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0x5480f43cc0b086935e4220fc77c7572d59a6fe9e7c2cef57a6507430def5cae2", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x95de11d62fb62cfc939af4f6b311bef4c96a13af7360e81658f3d4d54974b788", + "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0x3911534919fe7be175f74cf4db6d5d9c18554319feace46485c87421111abe10", + "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0xddb8b30fcbde7846b99904be0cdcbf2a6b77873f8e7246bed369d6707ce232c8", + "06d9fa501fd2bef47265361ca0eaf6e0a97c3b226cea5ab760240f70818581ad" : "0xa904b97f02938e3286db15c740d7b8cc7e7ea87c7fef24584463adc630c7482e", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0x9e91359f2f244341306653d3da420a54cba72e699205cfa83290fbfb47971b61", + "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0xedf5c28a19358b291815f5e623e49ed07596474c200e287cf4f23b5ccf6bd6cd", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0xa61677c7fda3c869db3aa6ffc3df6296cdff1134719422354dfaf5bb83e1545f", + "67aed5a24fdad045475e7195c98a98aea119c763f272d4523f5bac93a4f33c2b" : "0x508027546cc92b430f9601a01f301391e39d1bd687fe2b399567ec7faa390e41", + "5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52" : "0x9754210c1804a6b65a3ba2612b0a0c109b60354cc802a2d5eafe84ef76e0f5d0", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0x71ad87ab2bbba663f77aac0a4945a93a7bfb21f3664d91b29c15ed99040f8bbe", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0x0297d202195fd41c4152cd474610074f2563e6f44807ecf42f5c63c796a53d63", + "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0x385ae1ad494712516b4316a7f3c16030250020a9b15efeba9b4d001f2599c051", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x5a30cddba6a21106320366eaa5053b48a45c9b0d9c38b36f10c55de20e74144a", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0xce72042c196a3bdc47658b525f95407251a9428a83a3377fd51637471cf0e86c", + "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0x62f2403f3470ebdef88c3dd22a402b02f14dd5801307409b639239bd22e27f39", + "6b701e292e0836d18a5904a08fe94534f9ab5c3d4ff37dc02c74dd0f4901944d" : "0x5116298c002c1e37c9801e6853eece63a962115213db0fa4a49303955ee00dc8", + "c2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4" : "0xbe4ea6a4d49736d4a3d6d96ae0a5055ed5372ab7e6d3d72abaa32d69058469cf", + "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x30f3c5f93666236348fdc7207427741e27342602f236ffa761114d17108f955e", + "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x82b57fac17738db916e60e25c7da72bc744b981565e08f78abb9616caa0b3b22", + "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xddc9e159f69768ab723666dc15f1bd906b0bb2cfd2752b62bd92691459d5cf6d", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x6d6c7f0b6508af7faa61044ff392fc8f7034b9ba237a1e64ea0fcbb83914c3c5", + "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x41c91ba219d7af23a1eb4f89df0599a229a60719d8cc181dba3db774496e80a5", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xb3ec595dfe31a7a5bbc34a9120230dd2243d84988d79d3944ebfc9051b913d89", + "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xd2a6d3112f39345a30692c389f071b293e6175737706a691bcb3bf69f877f3aa", + "1021a42d623ab4fe0bf8c47fd21cc10636e39e07f91e9b2478551e137d512aaa" : "0xa1dad8dd9cea416bfd789732606668c3ee8b5118dc54f2f19627834d7a092819", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0xd7df130dcda9b2f2c3e437940d55d225cf594354a0b02de2b19a2b2b15d9b993", + "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0xa7fd5e025b891d334e4a3923aad7dc69454ada52bb9791669ec881bc8251a87f", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0x3b19ade0936c6b7fe8f8880e20975f10a980b960edb1b2e745c2001fc03ad6e8", + "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0xdc754ecf151ce912b20854fff885227a7aee5174c43dd8a82ae31f86b11152c1", + "1dcf38b0206d27849b0fcb8d2df21aff4f95873cce223f49d7c1ea3c5145ec63" : "0xaa4121fdc7231b8e69a1013bfbb77f33809e742057583cdf98ce052c214942ba", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x010414e5bd8c0207a0f854274075408ce2923606da87accaab8486851b10a634", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x0426ae24d6351a48242f0eba794a6b22f4c79839d50694a2b7a9b0de0cbf7bee", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0x1da3431d92ee78272aaff4f207171138b16844d91e7134ac392d2ebee4815e22", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0x22f3da8a4ebdeaf6a29ed5422960a62040daab2cd0d1e673d68a8d4d44da1835", + "07a8f31e8910c3b52f338d2aca6f4dc2404753ebafcdf53290ef4993911a71f8" : "0x41e2a7778d36d25ed0508f8cdfda395574ec853faf2d11e69e7ea451cdfaa3c4", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x2b35fc431e0c7533fef132e3a6a569d09dd92285305e9c876cb4dadb1a039b68", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x000ee451a8b800512bcb2f9d03e8f3649cfb8c803c632b56d3bc165074fc20f4", + "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x0a18f3930026fb51e1e3964a65fea3425fe13ff2a09a71e3d4c9dd28ab4879d9", + "6e3f3fa8253588df9326580180233eb791e03b443a3ba7a1d892e73874e19a54" : "0xf3c0d2d98958ef9e677084cc0068bc48c6f07606708c64b06a09a0483a7b7531", + "ee70804471fe22d029ac2d2b00ea18bbf4fb062958d425e5830fd25bed430345" : "0xa7a6fb1ea440bb5c0ada4a0a9459e904c7ae2443d92e72cb53eb3b9d192f843f", + "c3d5d8d6d17081b3d0bbca6e2fa3a6704bb9a9561d9f9e1dc52db47629f862ad" : "0xcb826a89a5331cf23436ac1fd0ea2adb46698c880fc7152a20f9300d0e05776a", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0x77fc923adc5c78bb969bcaadcb840f32acc2ebbcd327987c056a7d7ca0d96d6c", + "4457960559b812558bb0f8cb7912f8bcb843eb801a3133ef45be998630ff8c05" : "0x108e02825bf4d1b4a371bd839915feabb34675d5442dae9f41080d7eccc2b450", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0x737bbb7c8fa169933b93ed6de89074a8933c7d05113726e3f4f31e5eea7059a2", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0xfd08b4637699978fee0a4a5d4257582e6841c253794ca5fd4dc0fb54d31fcc89", + "8cdc9b2118d2ce55a299f8f1d700d0127cf4036d1aa666a8cd51dcab4254284f" : "0x723470143332c8f375823c5c6a85bc8d0b26e974eb4a55ea05c8374d75f7c991", + "39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3" : "0x0af856c1799c48dc8ac882ed015afc093d32210d831b270e3b6a43b9f8077b6c", + "097d687437374051c75160d648800f021086bc8edf469f11284491fda8192315" : "0xbe069cc5122df358b63d8a4686fa079ec52c5a6d58c5ee6fc9c78976e05f353c", + "9f383d612ac09c7e6ffda24deca1502fce72e0ba58ff473fea411d9727401cc1" : "0x4a8944797dc1845f5a3617b7057c01d1714bee6d41e808cf038632f6ae811212", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0x8183a78bc77dda0a9df8441ca8a2bc2b18e9e883e04b36ac08996ed4691081c7", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x66d181f1031dcc934fc7b787ff7181560c1fed490466247a4966aba26fcf31b8" +} \ No newline at end of file diff --git a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts index b54dd16134..16ad5fa6e8 100644 --- a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts @@ -53,6 +53,7 @@ async function main() { //@ts-ignore const priceFeedVAAs = await connection.getLatestVaas(chunk); console.log("price feed VAAs len: ", priceFeedVAAs.length); + console.log("sample vaa: ", priceFeedVAAs[0]) await create_price_feeds(wallet, registry, priceFeedVAAs); } } diff --git a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts index 889f270dc5..80b3812fdb 100644 --- a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts @@ -4,7 +4,7 @@ const provider = new JsonRpcProvider( new Connection({ fullnode: "https://fullnode.testnet.sui.io:443" }) // <= NOTE: Update this when changing network ); const objectId = - "0xf1cadf5316e1da9af0126c4851a3769b7d77d1cbf053037d20d46484cfc84846"; // <= NOTE: Update this when changing network AND with new deployment + "0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5"; // <= NOTE: Update this when changing network AND with new deployment async function main() { // Table of Sui Pyth PriceIdentifier => Price Info Object IDs diff --git a/target_chains/sui/scripts/pyth/get_vaas.ts b/target_chains/sui/scripts/pyth/get_vaas.ts index 566a41e651..222a320b38 100644 --- a/target_chains/sui/scripts/pyth/get_vaas.ts +++ b/target_chains/sui/scripts/pyth/get_vaas.ts @@ -5,7 +5,7 @@ import axios from "axios"; async function main() { const connection = new PriceServiceConnection( - "https://xc-testnet.pyth.network", + "https://xc-mainnet.pyth.network", { priceFeedRequestConfig: { binary: true, @@ -18,9 +18,10 @@ async function main() { //console.log("number of all price feed ids: ", data.length) let data = [ - "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", - "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", - "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1", + "0x63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" + //"0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", // testnet + //"0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", // testnet + //"0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1", // testnet ]; const priceFeedVAAs = await connection.getLatestVaas(data); //console.log("number of VAAs: ", priceFeedVAAs.length) diff --git a/target_chains/sui/scripts/pyth/init_state.ts b/target_chains/sui/scripts/pyth/init_state.ts index cd2b72515e..a8e568d3b8 100644 --- a/target_chains/sui/scripts/pyth/init_state.ts +++ b/target_chains/sui/scripts/pyth/init_state.ts @@ -16,7 +16,7 @@ let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network let walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network const registry = REGISTRY[network]; -const initial_data_sources = INITIAL_DATA_SOURCES[network]; //TODO - SET THIS CORRECTLY +const initial_data_sources = INITIAL_DATA_SOURCES[network]; const provider = new JsonRpcProvider( new Connection({ fullnode: registry["RPC_URL"] }) ); @@ -35,9 +35,9 @@ async function main() { // NOTE: Set these before calling init_pyth const upgradeCap = - "0xc9d62cb6af2937ec1dafe99a7e1f85ecfaaa05800c1a4fdbec1a9fdadcee7cab"; + "0x0ca3774120057575d31f771a9779d449f8a7f4350948d9ab3e8b899481a229cf"; const deployerCap = - "0xea1aeeb71a4607f1ec61cd3573be44eade6150af407da95d15ca283dc6bd8921"; + "0x2f79ab183ec0c602c95384638e5a13892ac93ea839b9d953a2a4be1a11d8a449"; init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap); } diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 3ef25e1f67..3fbb8bbcea 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -19,10 +19,10 @@ import { REGISTRY, NETWORK } from "../registry"; // ================== Network dependent settings ================== let network = NETWORK.TESTNET; const walletPrivateKey = process.env.SUI_TESTNET; -const price_connection_url = "https://xc-testnet.pyth.network"; +const price_connection_url = "https://xc-mainnet.pyth.network"; // ================================================================ -const PATH_TO_PRICE_ID_TO_OBJECT_MAP = "./generated/price_id_to_object_id.testnet.json" +const PATH_TO_PRICE_ID_TO_OBJECT_MAP = "./generated/price_id_to_object_id.testnet.mainnet_simulation.json" const registry = REGISTRY[network]; const provider = new JsonRpcProvider( @@ -49,9 +49,7 @@ async function main() { // For a full list of testnet price feed ids, see: // https://pyth.network/developers/price-feed-ids#pyth-evm-testnet const price_feed_ids = [ - "0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", - "0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", - "0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1", + "0xccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" // INSERT YOUR PRICE FEED ID HERE! ]; diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index b346f53899..fb3ec70205 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -18,24 +18,24 @@ export const REGISTRY = { }, TESTNET: { PYTH_PACKAGE_ID: - "0x4eb4b9b5f3ca3293d3b92898ebb54f4a8705cc6c1fb2a0d2b7ec69388c7f14e4", + "0x975e063f398f720af4f33ec06a927f14ea76ca24f7f8dd544aa62ab9d5d15f44", PYTH_STATE_ID: - "0xe96526143f8305830a103331151d46063339f7a9946b50aaa0d704c8c04173e5", + "0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a", WORMHOLE_PACKAGE_ID: - "0x80c60bff35fe5026e319cf3d66ae671f2b4e12923c92c45df75eaf4de79e3ce7", + "0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e", WORMHOLE_STATE_ID: - "0x79ab4d569f7eb1efdcc1f25b532f8593cda84776206772e33b490694cb8fc07a", + "0xebba4cc4d614f7a7cdbe883acc76d1cc767922bc96778e7b68be0d15fce27c02", RPC_URL: "https://fullnode.testnet.sui.io:443", }, MAINNET: { PYTH_PACKAGE_ID: - "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861", + "", PYTH_STATE_ID: - "0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca", + "", WORMHOLE_PACKAGE_ID: - "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a", + "", WORMHOLE_STATE_ID: - "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c", + "", RPC_URL: "https://fullnode.mainnet.sui.io:443", }, }; diff --git a/target_chains/sui/scripts/utils/process_guardian_sets.ts b/target_chains/sui/scripts/utils/process_guardian_sets.ts new file mode 100644 index 0000000000..af7ca02111 --- /dev/null +++ b/target_chains/sui/scripts/utils/process_guardian_sets.ts @@ -0,0 +1,59 @@ + +let initial_guardians = +[ + "D2CC37A4dc036a8D232b48f62cDD4731412f4890", + "54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", + "107A0086b32d7A0977926A205131d8731D39cbEB", + "8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", + "71AA1BE1D36CaFE3867910F99C09e347899C19C3", + "114De8460193bdf3A2fCf81f86a09765F4762fD1", + "74a3bf913953D695260D88BC1aA25A4eeE363ef0", + "11b39756C042441BE6D8650b69b54EbE715E2343", + "8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", + "58CC3AE5C097b213cE3c81979e1B9f9570746AA5", + "DA798F6896A3331F64b48c12D1D57Fd9cbe70811", + "AF45Ced136b9D9e24903464AE889F5C8a723FC14", + "f93124b7c738843CBB89E864c862c38cddCccF95", + "fF6CB952589BDE862c25Ef4392132fb9D4A42157", + "6FbEBc898F403E4773E95feB15E80C9A99c8348d", + "000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", + "178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", + "5E1487F35515d02A92753504a8D75471b9f49EdB", + "15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20" +] + +let ordered_guardians = [ // 5 is missing + "58CC3AE5C097b213cE3c81979e1B9f9570746AA5", + "fF6CB952589BDE862c25Ef4392132fb9D4A42157", + "114De8460193bdf3A2fCf81f86a09765F4762fD1", + "107A0086b32d7A0977926A205131d8731D39cbEB", + "8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", + "11b39756c042441be6d8650b69b54ebe715e2343", + "54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", + "15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", + "74a3bf913953D695260D88BC1aA25A4eeE363ef0", + "000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", + "AF45Ced136b9D9e24903464AE889F5C8a723FC14", + "f93124b7c738843CBB89E864c862c38cddCccF95", + "D2CC37A4dc036a8D232b48f62cDD4731412f4890", + "DA798F6896A3331F64b48c12D1D57Fd9cbe70811", + "71AA1BE1D36CaFE3867910F99C09e347899C19C3", + "8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", + "178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", + "5E1487F35515d02A92753504a8D75471b9f49EdB", + "6FbEBc898F403E4773E95feB15E80C9A99c8348d" +] + +function main(){ + initial_guardians = initial_guardians.map(x=>x.toLowerCase()) + ordered_guardians = ordered_guardians.map(x=>x.toLowerCase()) + + for (let g of initial_guardians){ + console.log("ordered_guardians.indexOf(g): ", ordered_guardians.indexOf(g)) + if (ordered_guardians.indexOf(g)<0){ + console.log("guardian is not in ordered_guardians: ", g) + } + } +} + +main() diff --git a/target_chains/sui/scripts/wormhole/wormhole_deploy.ts b/target_chains/sui/scripts/wormhole/deploy.ts similarity index 100% rename from target_chains/sui/scripts/wormhole/wormhole_deploy.ts rename to target_chains/sui/scripts/wormhole/deploy.ts diff --git a/target_chains/sui/scripts/wormhole/wormhole_init.ts b/target_chains/sui/scripts/wormhole/init.ts similarity index 61% rename from target_chains/sui/scripts/wormhole/wormhole_init.ts rename to target_chains/sui/scripts/wormhole/init.ts index 4705b88995..14f5f5a732 100644 --- a/target_chains/sui/scripts/wormhole/wormhole_init.ts +++ b/target_chains/sui/scripts/wormhole/init.ts @@ -51,14 +51,38 @@ async function init_wormhole(signer: RawSigner, WORMHOLE_PACKAGE_ID: string) { tx.setGasBudget(2500000000); let DEPLOYER_CAP = - "0x19f253b07e88634bfd5a3a749f60bfdb83c9748910646803f06b60b76319e7ba"; + "0x922ff3519eb0e71afaa7c6a7a8a1d074a2269d8ace73e8147bee286dd2d122a1"; let UPGRADE_CAP = - "0x746cbe8c14f9ef163fc4e18c1edc6fc61041e118f7d6e751bcc4162b722636d4"; + "0x21a346dae01e5f57829f8a2a0bf744b6be4e6d1131faf218b82f0f96708be99f"; let GOVERNANCE_CHAIN = 1; let GOVERNANCE_CONTRACT = "04"; - let GUARDIAN_SET_INDEX = 0; - let INITIAL_GUARDIANS = ["13947bd48b18e53fdaeee77f3473391ac727c638"]; - let GUARDIAN_SECONDS_TO_LIVE = "100000000"; + let GUARDIAN_SET_INDEX = 0; // this should be 3 or higher for mainnet (can check by parsing VAA) + let INITIAL_GUARDIANS = ["13947bd48b18e53fdaeee77f3473391ac727c638"]; // testnet guardian + // Ordered mainnet guardians + // let INITIAL_MAINNET_GUARDIANS = + // [ + // "58CC3AE5C097b213cE3c81979e1B9f9570746AA5", + // "fF6CB952589BDE862c25Ef4392132fb9D4A42157", + // "114De8460193bdf3A2fCf81f86a09765F4762fD1", + // "107A0086b32d7A0977926A205131d8731D39cbEB", + // "8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", + // "11b39756c042441be6d8650b69b54ebe715e2343", + // "54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", + // "15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", + // "74a3bf913953D695260D88BC1aA25A4eeE363ef0", + // "000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", + // "AF45Ced136b9D9e24903464AE889F5C8a723FC14", + // "f93124b7c738843CBB89E864c862c38cddCccF95", + // "D2CC37A4dc036a8D232b48f62cDD4731412f4890", + // "DA798F6896A3331F64b48c12D1D57Fd9cbe70811", + // "71AA1BE1D36CaFE3867910F99C09e347899C19C3", + // "8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", + // "178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", + // "5E1487F35515d02A92753504a8D75471b9f49EdB", + // "6FbEBc898F403E4773E95feB15E80C9A99c8348d" + // ] + + let GUARDIAN_SECONDS_TO_LIVE = "1000000000"; let MESSAGE_FEE = 0; tx.moveCall({ From 48d25fb5a3c9458976801162d887af3908e37915 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 05:48:10 +0000 Subject: [PATCH 122/140] mainnet deploy --- target_chains/sui/README.md | 4 +- target_chains/sui/contracts/Move.toml | 10 +- .../price_id_to_object_id.mainnet.json | 243 ++++++++++++++++++ .../scripts/pyth/create_all_price_feeds.ts | 12 +- .../sui/scripts/pyth/create_price_feed.ts | 3 +- target_chains/sui/scripts/pyth/deploy.ts | 7 +- .../scripts/pyth/get_price_info_object_ids.ts | 6 +- target_chains/sui/scripts/pyth/init_state.ts | 11 +- .../sui/scripts/pyth/update_price_feeds.ts | 9 +- target_chains/sui/scripts/registry.ts | 8 +- 10 files changed, 282 insertions(+), 31 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index b03b2e853e..b74514719a 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -93,8 +93,8 @@ $ make build ## Pyth on Mainnet -- PYTH_PACKAGE_ID: [0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861](https://explorer.sui.io/object/0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) -- PYTH_STATE_ID: [0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca](https://explorer.sui.io/object/0x428b5795904d5256d1eea5991df672934315fb8dcf8f6111134c1a52afd005ca?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) +- PYTH_PACKAGE_ID: [0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302](https://explorer.sui.io/object/0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) +- PYTH_STATE_ID: [0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f](https://explorer.sui.io/object/0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) ## Wormhole on Mainnet diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index 30ceea03a1..ae48eb90bf 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,10 +8,12 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] -git = "https://github.com/wormhole-foundation/wormhole.git" -subdir = "sui/wormhole" -rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" +local = "../../../../wormhole/sui/wormhole" [addresses] -pyth = "0xa446c4a37c0bb69d03357c1a52d60da0b434048226d5f3feffdb693586bea861" +pyth = "0x0" wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" + +[dev-addresses] +pyth = "0x100" +wormhole = "0x200" diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json index e69de29bb2..7a84910873 100644 --- a/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json @@ -0,0 +1,243 @@ +{ + "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0x48f5e34e3bf1536cbb100ce9bda1eeb63b414ca4bfc2b3da64b7899c1b68bce1", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0x73c2acb6e4ef06b3ac2290c2dbbdf2c4e18f128c3c35d2e3cd7bc72064c53a11", + "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0x2509cb1db4940adb0455408d60ba2e8d90ba5ce9e1917fc663333a5ab561d526", + "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xe77ee43c45c2e8a3fc1b2c436f53752380ae9a37b9cac474cb3c49be08f55fc4", + "27d108eb764c912f49d3453a21dd95516619b1c45d0b607ee58a137ac8a6f32d" : "0xe36fb48cdcd0b53538df43ce800cd1e00005b8bcfd0814dfc4463cf834d90b45", + "1dcf38b0206d27849b0fcb8d2df21aff4f95873cce223f49d7c1ea3c5145ec63" : "0x3de2560b78bc990225b894304cd178d2eafe08ea9afaa6413d271223527f5951", + "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xfa16594fccd3a1ebe33472ef3992de100ab054ec2a217240680482a538b4c336", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x8367e3bb78392d6a4a491355a8d1e9c21aa1cd8273c7e0df81d122814e9dd7c8", + "67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb" : "0x931d4ed5776656216c4df13bcd98d39c4cf4ee07d1549cbb21768b2c2a661ae0", + "ad2fda41998f4e7be99a2a7b27273bd16f183d9adfc014a4f5e5d3d6cd519bf4" : "0xa8ede0347676f90f35b32f02006f1b377cfcc5a97c378c3c55d19785d4862424", + "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0xf43077d4591363033422295f7d057c91f274428e84df0052087d52a8ddf75853", + "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0xf72465b8208bdbe15901d3861be0d7a3f897b871a88f7dd9374bcba1fa9a70aa", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0xb7327d2ae15cc451cef7e9d639ab762f23f888b2e6357ace28dd40370a04f0be", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x7adc4863905768dd4d2fddab7161a8c8cc4232763f7eb5f7af60d7b0dac7e1b1", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0x64f8db86bef3603472cf446c7ab40278af7f4bcda97c7599ad4cb33d228e31eb", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0x977dc5e935767f31254d1f30c1190f82c1b30748650507382d4b99233b61356b", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0x4ce39ace836e4ab1a534fc80a1da1ea7b1a543cb53c0a524bc6b412ffac9e3aa", + "159b09ed169a3cdbd13fd96ef4b3cda54972058906d38a58f5cd327e5df1478b" : "0x45cf00d0ec9bd998b4b98193f8cb94960bcff8f7b710f7bb6a9251db1a1e3a7c", + "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0xbfda14b522c592ed05187d411822a43d966290519545165a759db2c99f8e04ba", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x82b1c5f3f6b19b462d390041d753e8c91ae7adefb19b3d0200f76331d0f3d870", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0xf77ffef808c70726cf3194275d2b2562c6e107130188f81684b184081f380e7b", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0x276ebfe4c08088769193d92d601cd1bab347e9969ca26f2aae27e3c787b10577", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0xd2ec9b5cc02a4a5f2b99739cd2021048a8b8fdff0d718e21b3f2d6347c15802f", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0xce3d0a61496bfe275a0743753192f9fd99e08c6f9e515d29d75b9bb491795b3c", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x84d1121e33ead9dc597fc8783046ef62917138ddec8ace9f096a8ab05408d627", + "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0x8e37e4b5165f1ecc27b9293c262efee4b48ed888eb24eb52003db8c4e30a7e6e", + "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0x24773694c342902c90bab3f9989cf07a3acdcbad43bd15fc6b2fa5e3a7bf6725", + "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0xfc81ec2ea856badef5646309cd7cba2b39365b40d76b2e9d73ace9ddc78ebbd5", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x6a067510a352ca827ba34f297b5a36c11da0509848d4d32895ec38ceeb9f2fe3", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0x781d74ce86520529492844dbb355746d7f452b9bcb56f1df9c66458f4683b334", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0xd3b0babf4b63fcd84e8fb345ed947dc42687d64c0d3ab9bcb19aefcba5edee65", + "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x37584366e4c87d0db4f0fe8f5bea2913bb17b540efae87c734df2e84b7f8132a", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0xe54f04f1c67ad0735377696e85e1459ba2331aaaf1939ea2764c70ba3e626fb3", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0x368c16d65559ba370d3b482facd2f271cabcce8d51981f19adcc798da566f5a5", + "8cdc9b2118d2ce55a299f8f1d700d0127cf4036d1aa666a8cd51dcab4254284f" : "0xea0a0193fd43846748c3db56ecf88d265678a41fe060c647d9b61e93ced3a1e9", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0xfc34f68e8cbe453be14c11da50cf3e40860b76423f4a760bb219882fde2f5a1d", + "5a5d5f7fb72cc84b579d74d1c06d258d751962e9a010c0b1cce7e6023aacb71b" : "0x7b8c7ef3bfd8144689d1140d6426a8e1be434942c6668a8a49587fdfc2021af7", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x390b072dded78dfff1ea173b38c66381e5f3f9efe7518cb35225a9c3f9a459dd", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0x6472958c67e43b2152c16673bd0089f8d1b554e44ebc66123cc2b90826e917a3", + "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x12b26a12f52efb34f92b9fd5276b279d780e6290ca9694ddc5c914ca21f6bc5b", + "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0xf07b1bc4a2e57f6689fac5e6f45d849684e04c48ed14cfcdf9d0f92a3c0d6750", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0x9b200f90ce60bad205b173a5d93d7735216651056b1aa417cd43548cb1e296c9", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0x1c896b841e04ae645f153f5fff69ff2decd5887bedd50ef35ed9366a9504d5be", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0xf98966d481a43b21390217c32bd1cf1b5bda9e30a4e17813ba74a607348db110", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x8d4475caa70fed009c5cb2409319241a87483a32e2e39a49b41d49789a2c6290", + "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0x314f17766eea028b392afa591bc73dc088373401105a1b5b7696d77ea2eca60e", + "649fdd7ec08e8e2a20f425729854e90293dcbe2376abc47197a14da6ff339756" : "0x14fca9ac00d16ddf02bc7d09434ac9e0648b033b6fec8cff25b9c4086bf5bbef", + "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x4c1ea5bf7298087455ff3e304071483d898428d492982ebe96bede528878cab1", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0x5d7abbc0984b102d24d8c799f62336966063cbb63b2443e2b0edc7ee1a502fab", + "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0x2461d2c70b6bb5fda512fcc3d3e5905cd1601c76754b9aef68ff77099ab8a01a", + "ee42016c303126bd9263724e00f83a8114e84518c6e8ffc9738c001cc301daff" : "0x99a31d27d382e65e7e4f83a8f9a3e0306244ac26a6b60b0c233aaa573399edfc", + "4457960559b812558bb0f8cb7912f8bcb843eb801a3133ef45be998630ff8c05" : "0xda3bf400551387e59d18867b22b00184ca277d048413bfb8a456464e23039818", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0xea316baa91d450f8cac1cda7cc1e85203094bb447e1a8fa606142e552a1bef9b", + "4176cd17d4a1fb517b6535e70084ce85e1bcbe707c66b960c8bd5256accc1b2d" : "0x6bb4c17ea9aab309528c2dd209bcc43964fe7e61944816764402aea5be89bd28", + "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0xbf66ce3ec6cc8b96a96c394d224458ba1245e0bd8d7b2ef26b2dabde7201ab90", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0xe629bee77fa0153cc95381c03874ea40b2606045754846329056953da91ec737", + "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0xaa6adc565636860729907ef3e7fb7808d80c8a425a5fd417ae47bb68e2dcc2e3", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0xea3c73b52093cce7bfc6268b2f3ac98a9d5c6b29b73ff8531e9cb367534c5601", + "39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3" : "0xa0f1dd0f63f4433cee07ae3252aa2932adec74ca9c0e9cc3940b941c43b65d59", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0x0ae0bdcaf4d5d8a598088b662484d14b70ff87ce03a85991cdb2c97b6adad694", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0xea058b780d7d736034902dc429ef09d2a3bf79045f467b21281de049b007f0f1", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0xd64cdf76087a1e758220bfc42c932166c948389b55cb57d7ba084b43c550c447", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0xd7b38060426a5d4202f070c43cd95eeaca0118d73037de110493a2a7d1e68db2", + "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0x32cc9edcff5da777e082683ff0f74e402df4f405d23440d4a178160742b22ee8", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0xc669349fbdd7ee4bb414d6b2f369c795d02d5a0032fcde020a69bc58767e8679", + "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0x7fe7a7a217ab0c41603b1447c342fcbe4d053a5e4545712ee4ba9c8597c5dcd5", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0x3a3bf114e8d1d6f7b183c1fd93e6fcd1262bd935e41299beaa3fba30a57d921c", + "097d687437374051c75160d648800f021086bc8edf469f11284491fda8192315" : "0xd95ccf9ad19161a11d6c89d7d01183b8ada8de019097ffb59cae0017374fd8c2", + "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xb7bd68342d5a4dcb179a0d5671b02c1ecc0a3541070319837a062c871a5c34b4", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0xcbf9dfb457aa8d1e3133f74a9dda1f35a8dee4389f94058440b8e41a551c5e91", + "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0x6019d9c0076ca9ae62e115a5649cba5b6ae0206d887b5def93e4bb3ba00bcb7b", + "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0xfee4a508e0dfcc4aa01eb0cca214a5aa7de4b96a385cb0aa1a972a81b792601a", + "c3d5d8d6d17081b3d0bbca6e2fa3a6704bb9a9561d9f9e1dc52db47629f862ad" : "0xd910c7feef2f7f2202b7ddde218c9dc2e38f9b6c6a8b57baa6f303fd34909786", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0x4fdd926d2de6856e517e8971bb31cdbc7a56ecc00bdaa6465d275dac3facdd58", + "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0x7132045789988836fcce1b6d616d4d3b127d514b3ad3cb35ba88f2900ee705e6", + "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0xe898823694bee196292d219705cd0beb35525801b85375591fc6a44cf55d3b20", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0x4fe43d8860dc2110f94d9e83823732fa4b0c0dce02649d16d679660f4f50fcae", + "765f416f2d676848b5016428bc9295fda3e71d5e97b16df75179a378cef040ec" : "0xf434ab996f77c767e2a87dead8cac87be37aff047747051b415fd4a2618fe8f5", + "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0x9d63a5134e732db8a63dfa10ab019deb24397de7f2058d4209167bbbada3d33f", + "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0x254241ea8359518d79c52e64589e147a0447e6c35f33de677a00175061b464e5", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0x3416a6939f558a9617a99d12179268f702d39fc408458d70c284de1a80a1c49c", + "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0x48f1db8eec5885a546e12c19d67f4547859fea650015b48454cfc5c79d394279", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x23b2225a09c417d565c77fb0b3e036d8d5aebbedf91cb1953d80ce5292cd97f6", + "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0x1a4e036ba74b664ba89ec19239a575288fbecfdb7a79d3064791736f67cd2608", + "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x31529ae63c25966bdb44728d3b9f85a492b128695c1b5bb023430095f8259a53", + "81a21b01c15b8d01f6cdfed65e00987cc4c901858c821b2089344987de3102e9" : "0x63220e064b5aea996231271af99fbb95ca20100adc038f3a70216af85b46abb8", + "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0xb1ce7fc4ff77674c1cd0b55b7b11d512136b1c255dfe40855d802242a801c2d9", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0xc2eefebf46c00bd270b796d1c2b13aca776d4ed71987e735aaa1af2ca5a6b54b", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0x02ed0bfc818a060e1378eccda6a6c1dc6b4360b499bdaa23e3c69bb9ba2bfc96", + "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0xcad9824dd299c55b10085cc2822d82d2b95c6af6d577a784389abb036096bcb7", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0x2b60d6a87f7d6151b264deb533964622d1492f9f1632554d9213fa51e8f7a92c", + "433faaa801ecdb6618e3897177a118b273a8e18cc3ff545aadfc207d58d028f7" : "0xb6c57f055c5919d2da8466fa2d47f4a0fce2552ee1999a2fe7618482ce0d9522", + "6d20210495d6518787b72e4ad06bc4df21e68d89a802cf6bced2fca6c29652a6" : "0x30608417f9615779db05cd6f4614590a3fcf6c90516c84b93867612c57dba097", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x973f63c3f232ffaae67e03df9d6b44edba596334d286da2d5920abbf610387bb", + "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xb6010b008fb1f6acc6bcf7abc42260fd2fdeb1575b0c27473874ec8a3b074247", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xac6f489810c5f6964d20f1d87cb6b37592a6aba39a1f4b038666a7e2fc17365b", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0xab38f39c828bd1c2fbe8f427115504d75dcb189a7b701d6da9af86de841fe768", + "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x9ed686fd3b795de6185329add2fe0f5e4f907c08d20be5f06c94c012000535c4", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0x8872e6fecf82d40ca53fdba9d75d09129a94e76159b589c78d86382fa8043ead", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0xbca1fe1bb1e6a70085c45e757355ef184e786172c66a6e10612e18822a2d5f31", + "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0x47cb9e798c09e1c77ee587be91b66cdf2a6cab3aba040bfa8596653ed9bc6441", + "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0x8d91ed026578b6a09bf951ba088e05e37b9fa3282796d0868b6b35b5dc9a5278", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0x879116097aee056f838b7c84ea1380f585e01a8cf34d3cc57849930c9c03674b", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xaed6e775060949dc0672f12b7f4b3960d65ff47689a0411ce3c8c735db8ba099", + "c415de8d2eba7db216527dff4b60e8f3a5311c740dadb233e13e12547e226750" : "0xdcdb26f005d8e4b0820a3c99b916cfa79ef24c4319288f664ad9158966d7bbb0", + "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0xf6e490c108d047e8b1e7687d219862981328a63f0b8b662b224013b0543795f6", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x0541a3b9aa54e4a53cdeb4c59e904ca21b8452c3ee958426ee77dfb7bd8a304d", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0x3192e929d4d7c3366ee294f7bb97c73063234cf6999b028a892b591e7f95348e", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x279e7c274c3c7dbfb44f9d01f21a2030df935895a58b0d72da670a021f21f387", + "c2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4" : "0xd161d5885f69684a41c3f3768eb3dfab5ba81341c9d54d5bcf3b687848b25eec", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x9c6712ec48c0fcb5777e6931358d5699d10fc5d8dd01a72acaa88b3575102fc7", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0xd20b89571c8cb09515e254f5f0b834118baf0f9421e058e990395fa1956f2c24", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x5827dab7a6dbc0163e127d94e5b911af4a23ca6cc9f9f00664675d8458a8ddfe", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0xb1271821410c1fe6ee4c73d9532016ee3d28f36ab8f9bcc8a2f8e6953f420072", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0xe6cf726dcda4d6460d720c033c228d73223e2565cd73b53b01984a784438e844", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0xe8629a9e2406f70d1f2cb79440c925ca5ab6268ac42f0238abcf9c294f0c487c", + "8ac0c70fff57e9aefdf5edf44b51d62c2d433653cbb2cf5cc06bb115af04d221" : "0x79616958f2f996b09e67d14b2174c3837cb4aead1eac12c113cbd4755c1b47c4", + "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0x315181450a5b4e27b92d14f0ce92a8d2ee883382fcb0fb933c311d540ecb9a81", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0xba116f057c8c054298fc2b4db35daaad903dfc2126816a2d51cebe4946c5e757", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0xdba646841ffd000fed92f1c0163698c69f3ccb74396497c98f5e4bef93d57ab2", + "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf" : "0xb0526b6a2960ebacda89119c86e446017fa42b9e1b33dc6d7bf57c86cfa6e311", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xc2d2b046ee149862c35d1a2254e0b86e49aa7fdfaa04b01326603ed01914a237", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0x4ae42d6bf465609d0fac2c88cbcf07a803db5b1cb6e462de27eca2f73f53266f", + "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0x15dc9e730bbaffeb61dc3d981c5174c5dd418b1ad17938ffa075e2e42d52e685", + "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0xe2f86479f8a06477a24e8f327a40ad10762dad6cf183b8b11421bc85ac25bf98", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0x1ef38c56051de443c1ce78814325574b20cad961124fd93d62594eb318608843", + "944f2f908c5166e0732ea5b610599116cd8e1c41f47452697c1e84138b7184d6" : "0x02abcd8ee685f964e7a61786d39730ab6930be3af71923573a11d9751b87b50a", + "0781209c28fda797616212b7f94d77af3a01f3e94a5d421760aef020cf2bcb51" : "0x6d31b621402c45fe3a780117df9b2b9c0b9181e305d25ee96cc2f6c89b1b3def", + "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0x24fd10e29290a05f9503950f781e8f63ce273adf29580cecdb48e797a5bce342", + "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0xc7fd1cd1f9c6d824626d786bf983b9128e275ec8a9ee7db8331090be89e7346e", + "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0x0ea409db743138a6a35d067de468b1f43944f970267a9026de9794a86e3a0ac3", + "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0x144ec4135c65af207b97b3d2dfea9972efc7d80cc13a960ae1d808a3307d90ca", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0xbe76c55678f43f07c22390dbf3b58666e45529543f7c5524b39c566fe2920c97", + "67649450b4ca4bfff97cbaf96d2fd9e40f6db148cb65999140154415e4378e14" : "0x7d52011f90533c0f8be0d69fd4c2bcc64917d1956de78f2c0ff08661e9831659", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0xbef4367a85f9ffa85411337f7eeb93ee79fd2f2ade37e8c5b84add0d2814b6fe", + "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0x1db46472aa29f5a41dd4dc41867fdcbc1594f761e607293c40bdb66d7cd5278f", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x0946dcdffe349a04e1fe3078711b4b5e662bc74a0732c783ece1cf33992ad19f", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x168aa44fa92b27358beb17643834078b1320be6adf1b3bb0c7f018ac3591db1a", + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0xba58fd5f657f67aba9b209187833d917da2984445e1e3b821571adbb11f89765", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x41874d6f43bb98b7111a65ce24a070265927d643734f5dd17db5d180643dbc1f", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0x73cbfcf7490fb050ec1f29fe107bca2831ff0c7c5f3961e067a1f87013ca23bb", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0xd9cd763d08d880137479acfaf219b4c8592c8f288219737c94b853a973fad2d7", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0xb67ff2d04061d42600594a7b525463e00bcb6d740581fba5fe919a8fad53aa43", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0x98f8556f0c3af32684144ac87a98d1dbfe3490c044404a861f746b3cc4599ca2", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x1645fa789b430edbac3021625db360ae4ef37963d58e104b1149998c2ba1c4db", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0x7dc63947c4204ae9b73bd6a4a225f21ac661fe828513950fadd9e7301446ee89", + "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0xa583300e45819172cd1e189bf91c3c8b459125c0c76f2ec109a1bc08e479f60a", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0x5d0c24e5927d70522f1af63f23bdbe632264fa83ea4f8c7743e71d24d24dd4e3", + "d64da7f265f00c456c2ebadf4593848129b9c86b45523e441d2f5ceb838a89cf" : "0x0afb0ba9a87527239880aa77d260e8ad84c2c6e2b8393e070e1bdf35f1b84dbb", + "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0xde213ecfd2d9b72900a63c8059aa52f2f603dfa927c9746b86d0cad871392878", + "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0x481568c83f3976fe559950cec24cdffc88bfca468c47617923fd956eb2e4957f", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x27214b7472029ca3cbc758c158837bd7cbdcd23af81c988e4db3168efb6fd7f7", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x7280d2f6d66035ba01f9ea3396554390d9b6a5396422d7233826d258a92010cf", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0xd70758a65410dd05844f1f0b71e28e0531c4e4e254478544c025388f43a1b5d7", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0x75808d1ab7d796cd470e81e656d33fc956446b72d915406a2823ba060df11a5a", + "b216f7ca372b318985903866e0b6dc44a14564828c49f36d0d363805aa76335c" : "0xa87a8dc56447a9cc0d6eed383f18de9716af8d00b2d4a61c36e790ca6e58e66a", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0x5f578eb69f3dc953ebd8b6b4fb93c3302085a8c38fe062383440f5d3329b369c", + "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x9ff35aa7e87abecc12c1da52521d48d28e444ff0696454aef7ea31cc6205e95d", + "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xe545620abcfcab122fb0ab90678ac599aebb63ecbaf94798da49869bc66ac6af", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0xe3f1b484dca618f06b7962330267d9d4ceee0aa0276fb4dae9d94a7ee2586ca5", + "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0x62289212a6d44ae23d6553c269a7f6d6b9cfbe0d3d8ebb8c8c5c4bd49fd8a41d", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x0eeaccf721d53ee14bfcc337f00d4f58195f15455d2f9e7fae3ea3e929203994", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0x1486f830bcb8f098efd987ff291c0f86240bd0f2a77f379078f04325711de506", + "5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52" : "0x607890f56b8c3aab0e56f6fd52d4fde892d19462e4f80a51cb5d47191eae84b5", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0x0c30c67d1758b9440135fbffe8457f0b47243790300b2e71c52c8e51626cee84", + "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0xb4e5da748598a4bd9e165f7acac70d05c79be86896b95a9c444b4e0840055ba9", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0xe40aa9805db55e957d7a330192b0b6dccd07da10a0584aa9c29c100906a424fc", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0x6dd1245c596b96e7610ebe0a3b2871a1b9e56416d2ba6ef46c725dd6a9d354d8", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0x389321e21c0fbfbc87b6f028c574edbcb3bf3c5add55d70197845f6db7eb8ba8", + "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0xbc7c8ed97abb4cd01a3ae45d00ec6705ae5545b48247a6f7137e7b1f07c03f2c", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0x91d21d68bbdf8cd3b735ce1589a6d1ec2c014a7b187461e66377856a7709ab0a", + "70dddcb074263ce201ea9a1be5b3537e59ed5b9060d309e12d61762cfe59fb7e" : "0xb3f046e69beb0efce10e537ad23290031ccef9deda7965d0a0f2cf65f97b71dc", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0xd5d8428261bd671644a8a623557ddf3c87ead971bc6c6778df7887c854bf82aa", + "07a8f31e8910c3b52f338d2aca6f4dc2404753ebafcdf53290ef4993911a71f8" : "0x94a6126dfa234583c547e826751e43a6d3e2637fce75076c1ba40695efffebf1", + "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x7f6cdd0117e8f2e5f18403acc278394237f4b118e791b025f8edb3bfa2276d62", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0x12e316df7a091f9b8c576ebf64f828a3d080a23223d596d522440edd6df36a9a", + "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0xc3f8fd27a445af598790fff749af538206a084c9512e86e10fdf50b2f6833820", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0x8cf5ac81bc19d99b5a073c193907b6dd891236a065a907894f96b9aa1a9ccdc7", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0x87e6124bff3732ad6aa5f2839e314c4d22e121dc4827079908bde78f6c0b37f4", + "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0xd25c3cbd10f68614cad75bd4663c734ae830487f449e44c476fce0e5d733393d", + "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x8b6c3644e786236206264929b841116e59b75863c6a9ee8dbf06cca6454aa5e5", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0x348121e8fb0d35fe0bd970ffd1d0c770e2a6f676f46538091fc5d81235cb06ca", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x3c85d4072e6f5aa35bb9c359c88aad41c962a53a7128b2586bab130d8a034592", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x26344c550151d60c0beadf5f3c2fda4db12e70b4705eb51a421b49d3468abcc6", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0xb2d9ac5eed302e8b5c1b1a39d89f05606cfe220391ffd41203e53ca0b2703f89", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xe273328d614db3aec926df6ee7f641bdc752ad55bd5af55f866cc1886b58bf83", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x0223b5961d18f2931a4612eaeb8f92516acd4a1062dcc4bdc7f540425bf549f6", + "ee70804471fe22d029ac2d2b00ea18bbf4fb062958d425e5830fd25bed430345" : "0xf49d27eca820e75bf4bbb0b403c87a9c5ad8af728ea7ff36b0f923f8430607f8", + "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0xe903bfc8a57f66d18463b6fde29afa5a0319cb5f80e4a5cd4998611a8506a08f", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0xec29451f73f5a09cf05b461d717858f763152111f7031bbb158916bb26462d43", + "d45392f678a1287b8412ed2aaa326def204a5c234df7cb5552d756c332283d81" : "0xcb26fa836cb0c55a50e8946abe3e25d5f7fa74800fc9f6f8041769307f640884", + "67aed5a24fdad045475e7195c98a98aea119c763f272d4523f5bac93a4f33c2b" : "0x63e31fbd85d67c722deea6dda5f7dc1764fcaa27cb34e7c0cc89d5e86c9d6e53", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x3395df92c2c363d85a45c8044e35bb60e9c7afa48caf94e829aa41e93fb60681", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0xf4f3fb45757e9af82c850974f9531777a378f5a8bccd45b2e83b1bbd2f0b9949", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x9bde4683d80e5262283355d572b2b2601eb50a84c9b8b9df732c36c14f633765", + "3607bf4d7b78666bd3736c7aacaf2fd2bc56caa8667d3224971ebe3c0623292a" : "0x769bf65cd7d01c07648a808d6254b3d73a769b7ba1e96dc9b05dcd58f67be08c", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0xfeac66a8f3dcaa723609b06cb6f9eaa20bf92c80d74964c74b9c33c98244b328", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0x6158dae7ddc9178fe4d4663769f952a6253cb5803f8bca6cd5c24791932da82d", + "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xc13e1eb4edfb4b7e5d5687f3baa0b106fbdb1c86c5ad46072b6e09cdbabe279b", + "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x0ff485223dc1d6b0463ce9ee33287642bd42dc6a2048a7cad7d4bbcadd8d9f51", + "432a52bde005a010dc32c47733e4595fea0ea04df3b5aaa1c45153a527d646f0" : "0x81ac67ae2314b786980f3465eaba7a7277e0719de13e987b2f1367eadca0328d", + "a1a6465f4c2ebf244c31d80bc95c27345a3424e428c2def33eced9e90d3f701b" : "0x6cf621863304d486b8c623cca492ca95cfe0d641abd288139a0495d63129f9cc", + "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0xe79a652ca6e6c242a2865bf11d6b1e3ae2464b2740fcb6b627278a4565613a07", + "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0xe8399d70a6d0789c961a3fb8bca2a7aa8820ac42c9f3fc9f246d7d5f513fb912", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0xb419c2b26f4cec0da24a719c33fb5a503613a5a1f080fb1b29c1d00a2d477f3f", + "1021a42d623ab4fe0bf8c47fd21cc10636e39e07f91e9b2478551e137d512aaa" : "0xd130d51ee53be539e71733e41899cb9d70dfdc3b53c5934dd200ed9a86767b35", + "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0xbf45311362a393ab0331658ffeeb51b85fd32629643152199980f1a83a019246", + "95609d32c98a467a72ac419f2e64bb2b8dbd5b00b74f3a0fd72f42343af1743d" : "0x5a2bf6e3ae4760a934ad5598459dbb398c887839614c0a596935139baaa3869e", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0x8bd322a29436b44cb3cfd5268266435a7b81ddd5f46c6f651943ff57c694aae9", + "ff4c53361e36a9b837433c87d290c229e1f01aec5ef98d9f3f70953a20a629ce" : "0x0190cb92736e9d7d9f4ed17b92f15473607dfeb93b93409504cf19ae6d4250db", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0x4063d4b34fa78c353fe2ac708d16d95b20ad58cb89781e55665e257d7b2d0425", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0x0a8c3df365d92aa5b947352371c02a555ea300359ffd37fcafcaa3c529cbab7c", + "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0x7ced49286dcbc4711535d7bc10a853527854c55cd5973445b1f1c5aa81b6f49e", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x38739a5eed6d192c88ad72cdda0ff1d4420adf4dc7ad78ed254eecece1f55992", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x9a1511ffe5a1eff9d148e7ff6d440eaec96325632e67f041976ff2fd9d1b8fc9", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0xa6ab98ad22e85c0b1673c3b7fe55fa454cf1d23fd8c4cf9ac85d97070872315a", + "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x15da230ea0b9de48c24067720adbe77d511be606659668b9252c72fd4f12896a", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0xea6c34fc172fe57491e3bc613e13f7a5232704977d0efaa8c38fa3eafb53a190", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x757936648c89c45ae5eec993531ee5f725362070eec7394d328fcda4e5501f25", + "fa2d39b681f3cef5fa87432a8dbd05113917fffb1b6829a37395c88396522a4e" : "0x42dc6d003a90a5e172673236488918908b0704f8da67ed090f96a85f6ddb0376", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0x6678e6bc78d00aafa1135f9ec4813d9070a35bcd945dfdb447e784df2fd7b3e9", + "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0xaec019399f0c843477d0fb85ff549595cf86a1181739a381add99d4dba298664", + "06d9fa501fd2bef47265361ca0eaf6e0a97c3b226cea5ab760240f70818581ad" : "0x1d73b0ea969a4a5e3016f18b98fe477dc8c1aea8c3d1bd6353d7bdeb40f0b11b", + "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x822ecc552fc661aeb063317c23d19d702eae783ca3a7348efee141af5f777a05", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0xacc9bb2c3d151d04d6c8ef6d793a5a22ddce6a4e030dbccf8eb4df79ee853356", + "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x82744f353e7b2987fc9b922a34c1ce5233ce47fb73c2805b329f4bdb47f2ca4f", + "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0xe077710b5ca75178aeaa20a3190b61c7f366197222fa0b999bbda58ee92d88c4", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x3af9e87e527860d7554cc3f3d2f068c341d554d1c321280d608deaf10e620a05", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0xa43c7f01106bc158770caa061354c96dc01f01a8549f6167988c9315b22fa0c4", + "9f383d612ac09c7e6ffda24deca1502fce72e0ba58ff473fea411d9727401cc1" : "0xb21f8c8b67a213288b06d9f7b8d637dee468e0819a87b4109d42abe97bb0d7c4", + "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0xc4b6e8fed5fdf6732aea2dbb99689eafada1beb6b8e6ad721483f7da1d9bed3c", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0x03e5eab4e05ecfa1586864e99d0cf7ca041d538f3d060746186ca3e570918014", + "26852e2d0696e25e6adaad2d7ca3a1f2f15aab68d317ace14d41b4128a7e780f" : "0xa3431a3f6a43dad744494ab9c05e848875044aa280bd6116ac60d9a5ac58ca75", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xb0a059f4bc5b92f2e9a8ad97d406d1d14455a7cc9dac58fff9fb475ce3e675df", + "6b701e292e0836d18a5904a08fe94534f9ab5c3d4ff37dc02c74dd0f4901944d" : "0xc396eb2b9c1914c6dbfa66b7188ab5ba36688787e1ae8bf96a2c4ade9732cbb5", + "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0x82bf47e2ac2597bba0f0c1775ff81cdff2bfe1d9af2a65712013cc2d614c6f94", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0x30886170ff4d71398a5818940b0c2abd54b13c536c9558ed197c2f44ba2cbc35", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0xd1213505a03e0c4ddc08bfc3875b03c472856f5e481b4fbcd1a18ba59d3cac07", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x3f5facfd23427362a17d5e0dca85c94098fb49bded49a2555058a352bb516a56", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0x3ece052ac5c282aab98a3c43ff7d02147a8b506c3f22711f99654537aea47131", + "6e3f3fa8253588df9326580180233eb791e03b443a3ba7a1d892e73874e19a54" : "0xa17792daa3e88d2825ceb249ec92c455d5f01d8fc8109779a6c79bb83846370c" + } \ No newline at end of file diff --git a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts index 16ad5fa6e8..3fb3af6b54 100644 --- a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts @@ -16,18 +16,20 @@ dotenv.config({ path: "~/.env" }); import { REGISTRY, NETWORK } from "../registry"; -// Network dependent settings. -let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network -const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network -const price_feed_id_url = "https://xc-testnet.pyth.network/api/price_feed_ids"; // <= NOTE: Update this when changing network +// ================== Network dependent settings ================== +let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network +const price_feed_id_url = "https://xc-mainnet.pyth.network/api/price_feed_ids"; // <= NOTE: Update this when changing network const connection = new PriceServiceConnection( - "https://xc-testnet.pyth.network", // <= NOTE: Update this when changing network + "https://xc-mainnet.pyth.network", // <= NOTE: Update this when changing network { priceFeedRequestConfig: { binary: true, }, } ); +// ================================================================ + const registry = REGISTRY[network]; const provider = new JsonRpcProvider( new Connection({ fullnode: registry["RPC_URL"] }) diff --git a/target_chains/sui/scripts/pyth/create_price_feed.ts b/target_chains/sui/scripts/pyth/create_price_feed.ts index 0b15799e31..9d0443a18e 100644 --- a/target_chains/sui/scripts/pyth/create_price_feed.ts +++ b/target_chains/sui/scripts/pyth/create_price_feed.ts @@ -14,9 +14,10 @@ dotenv.config({ path: "~/.env" }); import { REGISTRY, NETWORK } from "../registry"; -// Network dependent settings. +// ================== Network dependent settings ================== let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network const walletPrivateKey = process.env.SUI_TESTNET_BASE_64; // <= NOTE: Update this when changing network +// ================================================================ const registry = REGISTRY[network]; const provider = new JsonRpcProvider( diff --git a/target_chains/sui/scripts/pyth/deploy.ts b/target_chains/sui/scripts/pyth/deploy.ts index b7ed6e10d0..9d3b40c50e 100644 --- a/target_chains/sui/scripts/pyth/deploy.ts +++ b/target_chains/sui/scripts/pyth/deploy.ts @@ -17,9 +17,10 @@ import { REGISTRY, NETWORK } from "../registry"; dotenv.config({ path: "~/.env" }); -// Network dependent settings. -let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network -const walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network +// ================== Network dependent settings ================== +let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network +const walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network +// ================================================================ const registry = REGISTRY[network]; const provider = new JsonRpcProvider( diff --git a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts index 80b3812fdb..a05882de61 100644 --- a/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts +++ b/target_chains/sui/scripts/pyth/get_price_info_object_ids.ts @@ -1,10 +1,12 @@ import { Connection, JsonRpcProvider } from "@mysten/sui.js"; +// ================== Network dependent settings ================== const provider = new JsonRpcProvider( - new Connection({ fullnode: "https://fullnode.testnet.sui.io:443" }) // <= NOTE: Update this when changing network + new Connection({ fullnode: "https://fullnode.mainnet.sui.io:443" }) // <= NOTE: Update this when changing network ); const objectId = - "0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5"; // <= NOTE: Update this when changing network AND with new deployment + "0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0"; // <= NOTE: Update this when changing network AND with new deployment +// ================================================================ async function main() { // Table of Sui Pyth PriceIdentifier => Price Info Object IDs diff --git a/target_chains/sui/scripts/pyth/init_state.ts b/target_chains/sui/scripts/pyth/init_state.ts index a8e568d3b8..729eb7bb78 100644 --- a/target_chains/sui/scripts/pyth/init_state.ts +++ b/target_chains/sui/scripts/pyth/init_state.ts @@ -11,9 +11,10 @@ import { import { REGISTRY, NETWORK, INITIAL_DATA_SOURCES } from "../registry"; dotenv.config({ path: "~/.env" }); -// Network dependent settings. -let network = NETWORK.TESTNET; // <= NOTE: Update this when changing network -let walletPrivateKey = process.env.SUI_TESTNET; // <= NOTE: Update this when changing network +// ================== Network dependent settings ================== +let network = NETWORK.MAINNET; // <= NOTE: Update this when changing network +let walletPrivateKey = process.env.SUI_MAINNET; // <= NOTE: Update this when changing network +// ================================================================ const registry = REGISTRY[network]; const initial_data_sources = INITIAL_DATA_SOURCES[network]; @@ -35,9 +36,9 @@ async function main() { // NOTE: Set these before calling init_pyth const upgradeCap = - "0x0ca3774120057575d31f771a9779d449f8a7f4350948d9ab3e8b899481a229cf"; + "0x82d5b1ab3bd40d121f1a9b073815f241ccd696edf324d2a386d38477f0834082"; const deployerCap = - "0x2f79ab183ec0c602c95384638e5a13892ac93ea839b9d953a2a4be1a11d8a449"; + "0x5bc07a9e7627534680313a2a0499cbbaa76c4b50db30eb86e85ae211c26fc911"; init_pyth(wallet, PYTH_PACKAGE, deployerCap, upgradeCap); } diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index 3fbb8bbcea..c090fb022e 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -17,13 +17,12 @@ dotenv.config({ path: "~/.env" }); import { REGISTRY, NETWORK } from "../registry"; // ================== Network dependent settings ================== -let network = NETWORK.TESTNET; -const walletPrivateKey = process.env.SUI_TESTNET; +let network = NETWORK.MAINNET; +const walletPrivateKey = process.env.SUI_MAINNET; const price_connection_url = "https://xc-mainnet.pyth.network"; +const PATH_TO_PRICE_ID_TO_OBJECT_MAP = "./generated/price_id_to_object_id.mainnet.json" // ================================================================ -const PATH_TO_PRICE_ID_TO_OBJECT_MAP = "./generated/price_id_to_object_id.testnet.mainnet_simulation.json" - const registry = REGISTRY[network]; const provider = new JsonRpcProvider( new Connection({ fullnode: registry["RPC_URL"] }) @@ -49,7 +48,7 @@ async function main() { // For a full list of testnet price feed ids, see: // https://pyth.network/developers/price-feed-ids#pyth-evm-testnet const price_feed_ids = [ - "0xccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" + "0x63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" // INSERT YOUR PRICE FEED ID HERE! ]; diff --git a/target_chains/sui/scripts/registry.ts b/target_chains/sui/scripts/registry.ts index fb3ec70205..046fb80565 100644 --- a/target_chains/sui/scripts/registry.ts +++ b/target_chains/sui/scripts/registry.ts @@ -29,13 +29,13 @@ export const REGISTRY = { }, MAINNET: { PYTH_PACKAGE_ID: - "", + "0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302", PYTH_STATE_ID: - "", + "0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f", WORMHOLE_PACKAGE_ID: - "", + "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a", WORMHOLE_STATE_ID: - "", + "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c", RPC_URL: "https://fullnode.mainnet.sui.io:443", }, }; From 4809a62d161d46f04e25725fba2f41ca86fb1317 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 05:50:30 +0000 Subject: [PATCH 123/140] update Move.toml --- target_chains/sui/contracts/Move.lock | 2 +- target_chains/sui/contracts/Move.toml | 10 ++++------ 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/target_chains/sui/contracts/Move.lock b/target_chains/sui/contracts/Move.lock index de1bf93efd..09f1ab0711 100644 --- a/target_chains/sui/contracts/Move.lock +++ b/target_chains/sui/contracts/Move.lock @@ -22,7 +22,7 @@ dependencies = [ [[move.package]] name = "Wormhole" -source = { local = "../../../../wormhole/sui/wormhole" } +source = { git = "https://github.com/wormhole-foundation/wormhole.git", rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad", subdir = "sui/wormhole" } dependencies = [ { name = "Sui" }, diff --git a/target_chains/sui/contracts/Move.toml b/target_chains/sui/contracts/Move.toml index ae48eb90bf..615ab928cf 100644 --- a/target_chains/sui/contracts/Move.toml +++ b/target_chains/sui/contracts/Move.toml @@ -8,12 +8,10 @@ subdir = "crates/sui-framework/packages/sui-framework" rev = "09b2081498366df936abae26eea4b2d5cafb2788" [dependencies.Wormhole] -local = "../../../../wormhole/sui/wormhole" +git = "https://github.com/wormhole-foundation/wormhole.git" +subdir = "sui/wormhole" +rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" [addresses] -pyth = "0x0" +pyth = "0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302" wormhole = "0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a" - -[dev-addresses] -pyth = "0x100" -wormhole = "0x200" From c91b931e932814ec4bb1c97afadbc1c2f089e038 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 01:54:34 -0400 Subject: [PATCH 124/140] Update README.md --- target_chains/sui/README.md | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index b74514719a..2bca0cc03d 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -92,7 +92,6 @@ $ make build - WORMHOLE_STATE_ID: [0xebba4cc4d614f7a7cdbe883acc76d1cc767922bc96778e7b68be0d15fce27c02](https://explorer.sui.io/object/0xebba4cc4d614f7a7cdbe883acc76d1cc767922bc96778e7b68be0d15fce27c02?network=testnet) ## Pyth on Mainnet - - PYTH_PACKAGE_ID: [0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302](https://explorer.sui.io/object/0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) - PYTH_STATE_ID: [0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f](https://explorer.sui.io/object/0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) @@ -100,3 +99,20 @@ $ make build - WORMHOLE_PACKAGE_ID: [0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a](https://explorer.sui.io/object/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a) - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) + +## 5. Common Questions on How to Integrate with Pyth +Q. What is up with the "sui rev"? (09b2081498366df936abae26eea4b2d5cafb2788). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? +A. Our Pyth `Move.toml` file looks like the following. It depends on specific versions of the Sui Framework as well as Wormhole. To make your contracts compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific rev because our package depends on Wormhole, which uses this rev. +``` +[dependencies.Sui] +git = "https://github.com/MystenLabs/sui.git" +subdir = "crates/sui-framework/packages/sui-framework" +rev = "09b2081498366df936abae26eea4b2d5cafb2788" + +[dependencies.Wormhole] +git = "https://github.com/wormhole-foundation/wormhole.git" +subdir = "sui/wormhole" +rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" +``` + + From 37ecdd0b70bb022db203d6084896f05a2114914b Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 01:54:57 -0400 Subject: [PATCH 125/140] Update README.md --- target_chains/sui/README.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 2bca0cc03d..acae5a9b76 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -101,8 +101,9 @@ $ make build - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) ## 5. Common Questions on How to Integrate with Pyth -Q. What is up with the "sui rev"? (09b2081498366df936abae26eea4b2d5cafb2788). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? -A. Our Pyth `Move.toml` file looks like the following. It depends on specific versions of the Sui Framework as well as Wormhole. To make your contracts compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific rev because our package depends on Wormhole, which uses this rev. +1. What is up with the "sui rev"? (09b2081498366df936abae26eea4b2d5cafb2788). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? + +Our Pyth `Move.toml` file looks like the following. It depends on specific versions of the Sui Framework as well as Wormhole. To make your contracts compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific rev because our package depends on Wormhole, which uses this rev. ``` [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" From 0a9375249c1bbf8af5b7c40579468bced161e787 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 05:55:40 +0000 Subject: [PATCH 126/140] edit readme --- target_chains/sui/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index acae5a9b76..ec75937c5a 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -101,9 +101,9 @@ $ make build - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) ## 5. Common Questions on How to Integrate with Pyth -1. What is up with the "sui rev"? (09b2081498366df936abae26eea4b2d5cafb2788). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? +1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? -Our Pyth `Move.toml` file looks like the following. It depends on specific versions of the Sui Framework as well as Wormhole. To make your contracts compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific rev because our package depends on Wormhole, which uses this rev. +Our Pyth `Move.toml` file looks like the following. It depends on specific versions of the Sui Framework as well as Wormhole. To make your contracts compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this rev. ``` [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" From 012b7236f122d017b31017c6eea5156e22917744 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 01:57:12 -0400 Subject: [PATCH 127/140] Update README.md --- target_chains/sui/README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index ec75937c5a..6ea0547993 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -103,7 +103,7 @@ $ make build ## 5. Common Questions on How to Integrate with Pyth 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? -Our Pyth `Move.toml` file looks like the following. It depends on specific versions of the Sui Framework as well as Wormhole. To make your contracts compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this rev. +Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this `rev`. ``` [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" @@ -115,5 +115,3 @@ git = "https://github.com/wormhole-foundation/wormhole.git" subdir = "sui/wormhole" rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" ``` - - From 0332351dc839575116532f9bd392df427a2a9dc3 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 01:57:44 -0400 Subject: [PATCH 128/140] Update README.md --- target_chains/sui/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 6ea0547993..220c2a0c36 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -1,6 +1,6 @@ # Pyth on Sui -## 1. Background +# 1. Background Pyth price feeds on Sui are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability and serve as wrappers around the `PriceInfo` object, which in turn wraps around the `PriceFeed`, the arrival time of the latest price update, and the attestation time of the latest update. @@ -9,7 +9,7 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn - `update_single_price_feed` - `update_single_pric_feeds_if_fresh` -## 2. How to Update and Consume Price Feeds +# 2. How to Update and Consume Price Feeds To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). @@ -68,7 +68,7 @@ public fun get_price( ``` This looks like a long sequence of calls to update a price feed, but programmable transactions make it easy. (See demos below). -## 3. Examples +# 3. Examples See the `./scripts` folder for examples of programmable transactions for creating price feeds and updating price feeds. - [Demo for updating a price feed](./scripts/pyth/update_price_feeds.ts) @@ -79,7 +79,7 @@ $ make test $ make build ``` -## 4. Contracts Registry +# 4. Contracts Registry ## Pyth on Testnet @@ -100,7 +100,7 @@ $ make build - WORMHOLE_PACKAGE_ID: [0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a](https://explorer.sui.io/object/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a) - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) -## 5. Common Questions on How to Integrate with Pyth +# 5. Common Questions on How to Integrate with Pyth 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this `rev`. From 0695c7eee1b2087e642a3b88580b4d9c44da1a8b Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 01:59:00 -0400 Subject: [PATCH 129/140] Update README.md --- target_chains/sui/README.md | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 220c2a0c36..e62fc60438 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -1,4 +1,10 @@ # Pyth on Sui +### Contents +1. Background +2. How to Update and Consume Price Feeds +3. Examples +4. Contracts Registry (addresses) +5. Common Questions how How to Integrate with Pyth on Sui # 1. Background @@ -100,7 +106,7 @@ $ make build - WORMHOLE_PACKAGE_ID: [0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a](https://explorer.sui.io/object/0x5306f64e312b581766351c07af79c72fcb1cd25147157fdc2f8ad76de9a3fb6a) - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) -# 5. Common Questions on How to Integrate with Pyth +# 5. Common Questions on How to Integrate with Pyth on Sui 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this `rev`. From 224950cc4575cb9fdc3033b270f9a9daf551fef6 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 06:07:55 +0000 Subject: [PATCH 130/140] add PRICE_INFO_OBJECT map ID to README --- target_chains/sui/README.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index ec75937c5a..e911c54d31 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -85,6 +85,8 @@ $ make build - PYTH_PACKAGE_ID: [0x975e063f398f720af4f33ec06a927f14ea76ca24f7f8dd544aa62ab9d5d15f44](https://explorer.sui.io/object/0x975e063f398f720af4f33ec06a927f14ea76ca24f7f8dd544aa62ab9d5d15f44?network=testnet) - PYTH_STATE_ID: [0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a](https://explorer.sui.io/object/0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a?network=testnet) +- PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: PYTH_STATE_ID: [0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5](https://explorer.sui.io/object/0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) + ## Wormhole on Testnet @@ -94,6 +96,7 @@ $ make build ## Pyth on Mainnet - PYTH_PACKAGE_ID: [0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302](https://explorer.sui.io/object/0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) - PYTH_STATE_ID: [0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f](https://explorer.sui.io/object/0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) +- PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: PYTH_STATE_ID: [0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0](https://explorer.sui.io/object/0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) ## Wormhole on Mainnet @@ -116,4 +119,10 @@ subdir = "sui/wormhole" rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" ``` +2. How do I find the Sui Object ID of a PriceInfoObject for a Pyth Price Feed? +The list of Pyth price feed IDs can be found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-testnet). + +The mapping of Pyth price feed IDs to `PriceInfoObject` object IDs can be found [here](./scripts/generated/). + +This mapping is also stored on-chain, and can be queried on-chain using the getter function `pyth::state::get_price_info_object_id` defined in the Pyth package. From 3c88159178fdba2ddbe44580bb72a96ff57591bf Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 06:09:28 +0000 Subject: [PATCH 131/140] common questions --- target_chains/sui/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index a9486b57e2..eb9e992ddc 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -110,7 +110,7 @@ $ make build - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) # 5. Common Questions on How to Integrate with Pyth on Sui -1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? +## 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this `rev`. ``` @@ -125,7 +125,7 @@ subdir = "sui/wormhole" rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" ``` -2. How do I find the Sui Object ID of a PriceInfoObject for a Pyth Price Feed? +## 2. How do I find the Sui Object ID of a PriceInfoObject for a Pyth Price Feed? The list of Pyth price feed IDs can be found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-testnet). The mapping of Pyth price feed IDs to `PriceInfoObject` object IDs can be found [here](./scripts/generated/). From 5bdf4920da40c63ca791333be4c2abd8f7d02757 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 06:10:06 +0000 Subject: [PATCH 132/140] edit comment --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index eb9e992ddc..a2c5bb4bd5 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -110,7 +110,7 @@ $ make build - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) # 5. Common Questions on How to Integrate with Pyth on Sui -## 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of Sui github "main" or "devnet"? +## 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of "main" or "devnet"? Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this `rev`. ``` From c20748758f5700a7c878347fedb018471e092d27 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 06:16:04 +0000 Subject: [PATCH 133/140] update readme --- target_chains/sui/README.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index a2c5bb4bd5..b49d114526 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -112,7 +112,7 @@ $ make build # 5. Common Questions on How to Integrate with Pyth on Sui ## 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of "main" or "devnet"? -Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which uses this `rev`. +Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which [uses the `rev` `09b2081498366df936abae26eea4b2d5cafb2788`](https://github.com/wormhole-foundation/wormhole/blob/main/sui/wormhole/Move.mainnet.toml). ``` [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" @@ -126,9 +126,10 @@ rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" ``` ## 2. How do I find the Sui Object ID of a PriceInfoObject for a Pyth Price Feed? -The list of Pyth price feed IDs can be found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-testnet). - -The mapping of Pyth price feed IDs to `PriceInfoObject` object IDs can be found [here](./scripts/generated/). +The mapping of Pyth price feed IDs to `PriceInfoObject` object IDs can be found [here](./scripts/generated/). (Note: this may go out of date as more price feeds are introduced and created over time). This mapping is also stored on-chain, and can be queried on-chain using the getter function `pyth::state::get_price_info_object_id` defined in the Pyth package. +Also recall that the list of Pyth price feed IDs can be found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-testnet). + + From 6aa6f172dd59d86048e61012d5e5a36143852e90 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 06:17:28 +0000 Subject: [PATCH 134/140] fix link --- target_chains/sui/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index b49d114526..1c5a1e8010 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -91,7 +91,7 @@ $ make build - PYTH_PACKAGE_ID: [0x975e063f398f720af4f33ec06a927f14ea76ca24f7f8dd544aa62ab9d5d15f44](https://explorer.sui.io/object/0x975e063f398f720af4f33ec06a927f14ea76ca24f7f8dd544aa62ab9d5d15f44?network=testnet) - PYTH_STATE_ID: [0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a](https://explorer.sui.io/object/0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a?network=testnet) -- PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: PYTH_STATE_ID: [0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5](https://explorer.sui.io/object/0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) +- PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: [0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5](https://explorer.sui.io/object/0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5?network=https%3A%2F%2Ffullnode.testnet.sui.io%3A443) ## Wormhole on Testnet @@ -102,7 +102,7 @@ $ make build ## Pyth on Mainnet - PYTH_PACKAGE_ID: [0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302](https://explorer.sui.io/object/0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) - PYTH_STATE_ID: [0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f](https://explorer.sui.io/object/0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) -- PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: PYTH_STATE_ID: [0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0](https://explorer.sui.io/object/0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) +- PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: [0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0](https://explorer.sui.io/object/0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) ## Wormhole on Mainnet From d765ca21a83e358fe7baf4b9355c4eb7ad5d61b7 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 06:26:00 +0000 Subject: [PATCH 135/140] add comments for update_single_price_feed --- target_chains/sui/README.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 1c5a1e8010..3383a52be7 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -17,9 +17,9 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn # 2. How to Update and Consume Price Feeds -To update and then consume a price feed, one needs to build a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk). +We demo how to update and then consume a price feed by building a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk) off-chain, and then executing it to update and get price feeds. -As with other chains, one first obtains a batch price attestation VAA (of type `vector`) off-chain for a Price Info Object whose feed is to be used. Then, chain together the following sequence of function calls to update a price feed. +As with other chains, one first obtains a batch price attestation VAA (of type `vector`) from a Pyth price service endpoint, which encodes update price information for a feed. ### 1. `wormhole::vaa::parse_and_verify` @@ -28,7 +28,7 @@ Call `parse_and_verify` on the batch attestation VAA bytes to obtain a `VAA` hot ```Rust public fun parse_and_verify( wormhole_state: &State, - buf: vector, + buf: vector, // price update VAA bytes the_clock: &Clock ): VAA ``` @@ -39,11 +39,11 @@ public fun create_price_infos_hot_potato( pyth_state: &PythState, verified_vaas: vector, clock: &Clock -): HotPotatoVector +): HotPotatoVector ``` ### 3.`pyth::pyth::update_single_price_feed` -Use the hot potato price updates vector to update a price feed. +Use the hot potato price updates vector to update a price feed. Note that conventional Pyth price IDs are found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-mainnet). However, one must pass in the Sui Object wrapper for that price feed for the `price_info_object` argument to `update_single_price_feed`. The `PriceInfoObject` IDs are stored in a map on-chain. We pulled them into local json files which can be found [here](./scripts/generated). The `PriceInfoObject` ID can also be queried on-chain by calling the `pyth::state::get_price_info_object_id` found in the Pyth package. See the common questions section below for more info. ```Rust public fun update_single_price_feed( From cdd5d23e7f4e71284aeae467588adf15c470ed61 Mon Sep 17 00:00:00 2001 From: optke3 Date: Sun, 14 May 2023 06:30:56 +0000 Subject: [PATCH 136/140] edits --- target_chains/sui/README.md | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 3383a52be7..1d45a3261e 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -8,12 +8,13 @@ # 1. Background -Pyth price feeds on Sui are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability and serve as wrappers around the `PriceInfo` object, which in turn wraps around the `PriceFeed`, the arrival time of the latest price update, and the attestation time of the latest update. +Pyth price feeds on Sui are uniquely represented in the global store as `PriceInfoObjects`. These objects have the `key` ability and serve as wrappers around the `PriceInfo` object, which in turn contains the price info: namely the `PriceFeed`, the arrival time of the latest price update, and the attestation time of the latest update. -`PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that act on price feeds, e.g. +`PriceInfoObject`s are central to Pyth on Sui, since they are in unique correspondence with each Pyth price feed and must be passed in to functions that update price feeds or which query info about price feeds, e.g. - `update_single_price_feed` -- `update_single_pric_feeds_if_fresh` +- `update_single_price_feeds_if_fresh` +- `get_price` # 2. How to Update and Consume Price Feeds @@ -43,7 +44,12 @@ public fun create_price_infos_hot_potato( ``` ### 3.`pyth::pyth::update_single_price_feed` -Use the hot potato price updates vector to update a price feed. Note that conventional Pyth price IDs are found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-mainnet). However, one must pass in the Sui Object wrapper for that price feed for the `price_info_object` argument to `update_single_price_feed`. The `PriceInfoObject` IDs are stored in a map on-chain. We pulled them into local json files which can be found [here](./scripts/generated). The `PriceInfoObject` ID can also be queried on-chain by calling the `pyth::state::get_price_info_object_id` found in the Pyth package. See the common questions section below for more info. +Use the hot potato price updates vector to update a price feed. + +Note that conventional Pyth price IDs are found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-mainnet). +However, instead of passing in a Pyth price feed ID to update the price feed (which is what is conventionally done), one must pass in a `PriceInfoObject` ID instead. + +The `PriceInfoObject` IDs are stored in a map on-chain. We pulled them into local json files which can be found [here](./scripts/generated). The `PriceInfoObject` ID can also be queried on-chain by calling the `pyth::state::get_price_info_object_id` found in the Pyth package. See the common questions section below for more info. ```Rust public fun update_single_price_feed( From 5c5a3326b1afcad32bf5a1af714ee990c7dd1237 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 02:32:08 -0400 Subject: [PATCH 137/140] Update README.md --- target_chains/sui/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 1d45a3261e..46dc7d4b54 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -47,9 +47,9 @@ public fun create_price_infos_hot_potato( Use the hot potato price updates vector to update a price feed. Note that conventional Pyth price IDs are found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-mainnet). -However, instead of passing in a Pyth price feed ID to update the price feed (which is what is conventionally done), one must pass in a `PriceInfoObject` ID instead. +However, instead of passing in a Pyth price feed ID to update the price feed (which is what is done on other chains), one must pass in a `PriceInfoObject` ID instead. -The `PriceInfoObject` IDs are stored in a map on-chain. We pulled them into local json files which can be found [here](./scripts/generated). The `PriceInfoObject` ID can also be queried on-chain by calling the `pyth::state::get_price_info_object_id` found in the Pyth package. See the common questions section below for more info. +The `PriceInfoObject` IDs are distinct from Pyth price feed IDs, and are stored in a map on-chain (Pyth price feed ID => PriceInfoObject ID). We pulled this map into a local json file [here](./scripts/generated). The `PriceInfoObject` ID can also be queried on-chain by calling the `pyth::state::get_price_info_object_id` found in the Pyth package. See the common questions section below for more info. ```Rust public fun update_single_price_feed( From ce181e84c2d18caa8af1dbe25498e97e4e04027c Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 02:33:16 -0400 Subject: [PATCH 138/140] Update README.md --- target_chains/sui/README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 46dc7d4b54..5f0dfb9913 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -78,7 +78,6 @@ public fun get_price( clock: &Clock ): Price ``` -This looks like a long sequence of calls to update a price feed, but programmable transactions make it easy. (See demos below). # 3. Examples From 61c9ab5c65face02841739ee0ea7c8ee488322b5 Mon Sep 17 00:00:00 2001 From: optke3 <108488464+optke3@users.noreply.github.com> Date: Sun, 14 May 2023 02:38:52 -0400 Subject: [PATCH 139/140] Update README.md --- target_chains/sui/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 5f0dfb9913..9aa2f86863 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -18,7 +18,7 @@ Pyth price feeds on Sui are uniquely represented in the global store as `PriceIn # 2. How to Update and Consume Price Feeds -We demo how to update and then consume a price feed by building a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk) off-chain, and then executing it to update and get price feeds. +We demo how to update and then consume a price feed by building a Sui [programmable transaction](https://docs.sui.io/build/prog-trans-ts-sdk) off-chain, and then executing it to update a price feed and get an updated price. As with other chains, one first obtains a batch price attestation VAA (of type `vector`) from a Pyth price service endpoint, which encodes update price information for a feed. From 7dab308f961746890faf1ac0b52e283b31112bf6 Mon Sep 17 00:00:00 2001 From: optke3 Date: Tue, 16 May 2023 19:06:54 +0000 Subject: [PATCH 140/140] pre-commit run --all-files --- target_chains/sui/README.md | 19 +- .../price_id_to_object_id.mainnet.json | 484 ++++++++--------- .../price_id_to_object_id.testnet.json | 512 +++++++++--------- ..._object_id.testnet.mainnet_simulation.json | 484 ++++++++--------- .../scripts/pyth/create_all_price_feeds.ts | 2 +- target_chains/sui/scripts/pyth/get_vaas.ts | 2 +- .../sui/scripts/pyth/update_price_feeds.ts | 21 +- .../scripts/utils/process_guardian_sets.ts | 69 ++- .../sui/scripts/utils/transfer_tokens.ts | 16 +- 9 files changed, 811 insertions(+), 798 deletions(-) diff --git a/target_chains/sui/README.md b/target_chains/sui/README.md index 9aa2f86863..55270d0461 100644 --- a/target_chains/sui/README.md +++ b/target_chains/sui/README.md @@ -1,5 +1,7 @@ # Pyth on Sui + ### Contents + 1. Background 2. How to Update and Consume Price Feeds 3. Examples @@ -33,8 +35,11 @@ public fun parse_and_verify( the_clock: &Clock ): VAA ``` + ### 2. `pyth::pyth::update_single_price_feed` + Use the verified VAA and create a hot potato vector containing the latest price updates. + ```Rust public fun create_price_infos_hot_potato( pyth_state: &PythState, @@ -44,6 +49,7 @@ public fun create_price_infos_hot_potato( ``` ### 3.`pyth::pyth::update_single_price_feed` + Use the hot potato price updates vector to update a price feed. Note that conventional Pyth price IDs are found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-mainnet). @@ -62,7 +68,9 @@ public fun update_single_price_feed( ``` ### 4.`pyth::hot_potato_vector::destroy` + Drop the hot potato. (You must call this function to drop the potato). + ```Rust public fun destroy( hot_potato_vector: HotPotatoVector @@ -70,7 +78,9 @@ public fun destroy( ``` ### 5. `pyth::pyth::get_price` + Finally, get the price of the updated price feed in `PriceInfoObject` 🎉🎉🎉. + ```Rust public fun get_price( state: &PythState, @@ -82,9 +92,11 @@ public fun get_price( # 3. Examples See the `./scripts` folder for examples of programmable transactions for creating price feeds and updating price feeds. + - [Demo for updating a price feed](./scripts/pyth/update_price_feeds.ts) To build and test the contracts, run the following + ``` $ make test $ make build @@ -98,13 +110,13 @@ $ make build - PYTH_STATE_ID: [0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a](https://explorer.sui.io/object/0xd8afde3a48b4ff7212bd6829a150f43f59043221200d63504d981f62bff2e27a?network=testnet) - PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: [0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5](https://explorer.sui.io/object/0xf8929174008c662266a1adde78e1e8e33016eb7ad37d379481e860b911e40ed5?network=https%3A%2F%2Ffullnode.testnet.sui.io%3A443) - ## Wormhole on Testnet - WORMHOLE_PACKAGE_ID: [0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e](https://explorer.sui.io/object/0xcc029e2810f17f9f43f52262f40026a71fbdca40ed3803ad2884994361910b7e?network=testnet) - WORMHOLE_STATE_ID: [0xebba4cc4d614f7a7cdbe883acc76d1cc767922bc96778e7b68be0d15fce27c02](https://explorer.sui.io/object/0xebba4cc4d614f7a7cdbe883acc76d1cc767922bc96778e7b68be0d15fce27c02?network=testnet) ## Pyth on Mainnet + - PYTH_PACKAGE_ID: [0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302](https://explorer.sui.io/object/0x00b53b0f4174108627fbee72e2498b58d6a2714cded53fac537034c220d26302?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) - PYTH_STATE_ID: [0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f](https://explorer.sui.io/object/0xf9ff3ef935ef6cdfb659a203bf2754cebeb63346e29114a535ea6f41315e5a3f?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) - PYTH_PRICE_FEED_ID_TO_PRICE_INFO_OBJECT_ID: [0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0](https://explorer.sui.io/object/0x14b4697477d24c30c8eecc31dd1bd49a3115a9fe0db6bd4fd570cf14640b79a0?network=https%3A%2F%2Ffullnode.mainnet.sui.io%3A443) @@ -115,9 +127,11 @@ $ make build - WORMHOLE_STATE_ID: [0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c](https://explorer.sui.io/object/0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c) # 5. Common Questions on How to Integrate with Pyth on Sui + ## 1. What is up with the "sui rev"? (`09b2081498366df936abae26eea4b2d5cafb2788`). Why does it point to a specific commit hash instead of "main" or "devnet"? Our Pyth `Move.toml` file contains the following dependencies. It depends on specific versions of the [Sui Framework](https://github.com/MystenLabs/sui) as well as [Wormhole](https://github.com/wormhole-foundation/wormhole). To make your Sui package compatible, you must also specify the following dependencies verbatim in your `Move.toml` file. We are locked in to this specific `rev` because our package depends on Wormhole, which [uses the `rev` `09b2081498366df936abae26eea4b2d5cafb2788`](https://github.com/wormhole-foundation/wormhole/blob/main/sui/wormhole/Move.mainnet.toml). + ``` [dependencies.Sui] git = "https://github.com/MystenLabs/sui.git" @@ -131,10 +145,9 @@ rev = "d050ad1d67a5b7da9fb65030aad12ef5d774ccad" ``` ## 2. How do I find the Sui Object ID of a PriceInfoObject for a Pyth Price Feed? + The mapping of Pyth price feed IDs to `PriceInfoObject` object IDs can be found [here](./scripts/generated/). (Note: this may go out of date as more price feeds are introduced and created over time). This mapping is also stored on-chain, and can be queried on-chain using the getter function `pyth::state::get_price_info_object_id` defined in the Pyth package. Also recall that the list of Pyth price feed IDs can be found [here](https://pyth.network/developers/price-feed-ids#pyth-evm-testnet). - - diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json index 7a84910873..625fe0963b 100644 --- a/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.mainnet.json @@ -1,243 +1,243 @@ { - "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0x48f5e34e3bf1536cbb100ce9bda1eeb63b414ca4bfc2b3da64b7899c1b68bce1", - "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0x73c2acb6e4ef06b3ac2290c2dbbdf2c4e18f128c3c35d2e3cd7bc72064c53a11", - "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0x2509cb1db4940adb0455408d60ba2e8d90ba5ce9e1917fc663333a5ab561d526", - "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xe77ee43c45c2e8a3fc1b2c436f53752380ae9a37b9cac474cb3c49be08f55fc4", - "27d108eb764c912f49d3453a21dd95516619b1c45d0b607ee58a137ac8a6f32d" : "0xe36fb48cdcd0b53538df43ce800cd1e00005b8bcfd0814dfc4463cf834d90b45", - "1dcf38b0206d27849b0fcb8d2df21aff4f95873cce223f49d7c1ea3c5145ec63" : "0x3de2560b78bc990225b894304cd178d2eafe08ea9afaa6413d271223527f5951", - "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xfa16594fccd3a1ebe33472ef3992de100ab054ec2a217240680482a538b4c336", - "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x8367e3bb78392d6a4a491355a8d1e9c21aa1cd8273c7e0df81d122814e9dd7c8", - "67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb" : "0x931d4ed5776656216c4df13bcd98d39c4cf4ee07d1549cbb21768b2c2a661ae0", - "ad2fda41998f4e7be99a2a7b27273bd16f183d9adfc014a4f5e5d3d6cd519bf4" : "0xa8ede0347676f90f35b32f02006f1b377cfcc5a97c378c3c55d19785d4862424", - "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0xf43077d4591363033422295f7d057c91f274428e84df0052087d52a8ddf75853", - "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0xf72465b8208bdbe15901d3861be0d7a3f897b871a88f7dd9374bcba1fa9a70aa", - "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0xb7327d2ae15cc451cef7e9d639ab762f23f888b2e6357ace28dd40370a04f0be", - "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x7adc4863905768dd4d2fddab7161a8c8cc4232763f7eb5f7af60d7b0dac7e1b1", - "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0x64f8db86bef3603472cf446c7ab40278af7f4bcda97c7599ad4cb33d228e31eb", - "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0x977dc5e935767f31254d1f30c1190f82c1b30748650507382d4b99233b61356b", - "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0x4ce39ace836e4ab1a534fc80a1da1ea7b1a543cb53c0a524bc6b412ffac9e3aa", - "159b09ed169a3cdbd13fd96ef4b3cda54972058906d38a58f5cd327e5df1478b" : "0x45cf00d0ec9bd998b4b98193f8cb94960bcff8f7b710f7bb6a9251db1a1e3a7c", - "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0xbfda14b522c592ed05187d411822a43d966290519545165a759db2c99f8e04ba", - "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x82b1c5f3f6b19b462d390041d753e8c91ae7adefb19b3d0200f76331d0f3d870", - "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0xf77ffef808c70726cf3194275d2b2562c6e107130188f81684b184081f380e7b", - "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0x276ebfe4c08088769193d92d601cd1bab347e9969ca26f2aae27e3c787b10577", - "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0xd2ec9b5cc02a4a5f2b99739cd2021048a8b8fdff0d718e21b3f2d6347c15802f", - "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0xce3d0a61496bfe275a0743753192f9fd99e08c6f9e515d29d75b9bb491795b3c", - "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x84d1121e33ead9dc597fc8783046ef62917138ddec8ace9f096a8ab05408d627", - "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0x8e37e4b5165f1ecc27b9293c262efee4b48ed888eb24eb52003db8c4e30a7e6e", - "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0x24773694c342902c90bab3f9989cf07a3acdcbad43bd15fc6b2fa5e3a7bf6725", - "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0xfc81ec2ea856badef5646309cd7cba2b39365b40d76b2e9d73ace9ddc78ebbd5", - "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x6a067510a352ca827ba34f297b5a36c11da0509848d4d32895ec38ceeb9f2fe3", - "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0x781d74ce86520529492844dbb355746d7f452b9bcb56f1df9c66458f4683b334", - "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0xd3b0babf4b63fcd84e8fb345ed947dc42687d64c0d3ab9bcb19aefcba5edee65", - "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x37584366e4c87d0db4f0fe8f5bea2913bb17b540efae87c734df2e84b7f8132a", - "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0xe54f04f1c67ad0735377696e85e1459ba2331aaaf1939ea2764c70ba3e626fb3", - "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0x368c16d65559ba370d3b482facd2f271cabcce8d51981f19adcc798da566f5a5", - "8cdc9b2118d2ce55a299f8f1d700d0127cf4036d1aa666a8cd51dcab4254284f" : "0xea0a0193fd43846748c3db56ecf88d265678a41fe060c647d9b61e93ced3a1e9", - "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0xfc34f68e8cbe453be14c11da50cf3e40860b76423f4a760bb219882fde2f5a1d", - "5a5d5f7fb72cc84b579d74d1c06d258d751962e9a010c0b1cce7e6023aacb71b" : "0x7b8c7ef3bfd8144689d1140d6426a8e1be434942c6668a8a49587fdfc2021af7", - "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x390b072dded78dfff1ea173b38c66381e5f3f9efe7518cb35225a9c3f9a459dd", - "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0x6472958c67e43b2152c16673bd0089f8d1b554e44ebc66123cc2b90826e917a3", - "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x12b26a12f52efb34f92b9fd5276b279d780e6290ca9694ddc5c914ca21f6bc5b", - "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0xf07b1bc4a2e57f6689fac5e6f45d849684e04c48ed14cfcdf9d0f92a3c0d6750", - "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0x9b200f90ce60bad205b173a5d93d7735216651056b1aa417cd43548cb1e296c9", - "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0x1c896b841e04ae645f153f5fff69ff2decd5887bedd50ef35ed9366a9504d5be", - "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0xf98966d481a43b21390217c32bd1cf1b5bda9e30a4e17813ba74a607348db110", - "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x8d4475caa70fed009c5cb2409319241a87483a32e2e39a49b41d49789a2c6290", - "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0x314f17766eea028b392afa591bc73dc088373401105a1b5b7696d77ea2eca60e", - "649fdd7ec08e8e2a20f425729854e90293dcbe2376abc47197a14da6ff339756" : "0x14fca9ac00d16ddf02bc7d09434ac9e0648b033b6fec8cff25b9c4086bf5bbef", - "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x4c1ea5bf7298087455ff3e304071483d898428d492982ebe96bede528878cab1", - "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0x5d7abbc0984b102d24d8c799f62336966063cbb63b2443e2b0edc7ee1a502fab", - "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0x2461d2c70b6bb5fda512fcc3d3e5905cd1601c76754b9aef68ff77099ab8a01a", - "ee42016c303126bd9263724e00f83a8114e84518c6e8ffc9738c001cc301daff" : "0x99a31d27d382e65e7e4f83a8f9a3e0306244ac26a6b60b0c233aaa573399edfc", - "4457960559b812558bb0f8cb7912f8bcb843eb801a3133ef45be998630ff8c05" : "0xda3bf400551387e59d18867b22b00184ca277d048413bfb8a456464e23039818", - "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0xea316baa91d450f8cac1cda7cc1e85203094bb447e1a8fa606142e552a1bef9b", - "4176cd17d4a1fb517b6535e70084ce85e1bcbe707c66b960c8bd5256accc1b2d" : "0x6bb4c17ea9aab309528c2dd209bcc43964fe7e61944816764402aea5be89bd28", - "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0xbf66ce3ec6cc8b96a96c394d224458ba1245e0bd8d7b2ef26b2dabde7201ab90", - "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0xe629bee77fa0153cc95381c03874ea40b2606045754846329056953da91ec737", - "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0xaa6adc565636860729907ef3e7fb7808d80c8a425a5fd417ae47bb68e2dcc2e3", - "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0xea3c73b52093cce7bfc6268b2f3ac98a9d5c6b29b73ff8531e9cb367534c5601", - "39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3" : "0xa0f1dd0f63f4433cee07ae3252aa2932adec74ca9c0e9cc3940b941c43b65d59", - "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0x0ae0bdcaf4d5d8a598088b662484d14b70ff87ce03a85991cdb2c97b6adad694", - "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0xea058b780d7d736034902dc429ef09d2a3bf79045f467b21281de049b007f0f1", - "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0xd64cdf76087a1e758220bfc42c932166c948389b55cb57d7ba084b43c550c447", - "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0xd7b38060426a5d4202f070c43cd95eeaca0118d73037de110493a2a7d1e68db2", - "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0x32cc9edcff5da777e082683ff0f74e402df4f405d23440d4a178160742b22ee8", - "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0xc669349fbdd7ee4bb414d6b2f369c795d02d5a0032fcde020a69bc58767e8679", - "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0x7fe7a7a217ab0c41603b1447c342fcbe4d053a5e4545712ee4ba9c8597c5dcd5", - "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0x3a3bf114e8d1d6f7b183c1fd93e6fcd1262bd935e41299beaa3fba30a57d921c", - "097d687437374051c75160d648800f021086bc8edf469f11284491fda8192315" : "0xd95ccf9ad19161a11d6c89d7d01183b8ada8de019097ffb59cae0017374fd8c2", - "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xb7bd68342d5a4dcb179a0d5671b02c1ecc0a3541070319837a062c871a5c34b4", - "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0xcbf9dfb457aa8d1e3133f74a9dda1f35a8dee4389f94058440b8e41a551c5e91", - "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0x6019d9c0076ca9ae62e115a5649cba5b6ae0206d887b5def93e4bb3ba00bcb7b", - "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0xfee4a508e0dfcc4aa01eb0cca214a5aa7de4b96a385cb0aa1a972a81b792601a", - "c3d5d8d6d17081b3d0bbca6e2fa3a6704bb9a9561d9f9e1dc52db47629f862ad" : "0xd910c7feef2f7f2202b7ddde218c9dc2e38f9b6c6a8b57baa6f303fd34909786", - "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0x4fdd926d2de6856e517e8971bb31cdbc7a56ecc00bdaa6465d275dac3facdd58", - "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0x7132045789988836fcce1b6d616d4d3b127d514b3ad3cb35ba88f2900ee705e6", - "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0xe898823694bee196292d219705cd0beb35525801b85375591fc6a44cf55d3b20", - "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0x4fe43d8860dc2110f94d9e83823732fa4b0c0dce02649d16d679660f4f50fcae", - "765f416f2d676848b5016428bc9295fda3e71d5e97b16df75179a378cef040ec" : "0xf434ab996f77c767e2a87dead8cac87be37aff047747051b415fd4a2618fe8f5", - "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0x9d63a5134e732db8a63dfa10ab019deb24397de7f2058d4209167bbbada3d33f", - "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0x254241ea8359518d79c52e64589e147a0447e6c35f33de677a00175061b464e5", - "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0x3416a6939f558a9617a99d12179268f702d39fc408458d70c284de1a80a1c49c", - "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0x48f1db8eec5885a546e12c19d67f4547859fea650015b48454cfc5c79d394279", - "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x23b2225a09c417d565c77fb0b3e036d8d5aebbedf91cb1953d80ce5292cd97f6", - "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0x1a4e036ba74b664ba89ec19239a575288fbecfdb7a79d3064791736f67cd2608", - "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x31529ae63c25966bdb44728d3b9f85a492b128695c1b5bb023430095f8259a53", - "81a21b01c15b8d01f6cdfed65e00987cc4c901858c821b2089344987de3102e9" : "0x63220e064b5aea996231271af99fbb95ca20100adc038f3a70216af85b46abb8", - "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0xb1ce7fc4ff77674c1cd0b55b7b11d512136b1c255dfe40855d802242a801c2d9", - "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0xc2eefebf46c00bd270b796d1c2b13aca776d4ed71987e735aaa1af2ca5a6b54b", - "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0x02ed0bfc818a060e1378eccda6a6c1dc6b4360b499bdaa23e3c69bb9ba2bfc96", - "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0xcad9824dd299c55b10085cc2822d82d2b95c6af6d577a784389abb036096bcb7", - "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0x2b60d6a87f7d6151b264deb533964622d1492f9f1632554d9213fa51e8f7a92c", - "433faaa801ecdb6618e3897177a118b273a8e18cc3ff545aadfc207d58d028f7" : "0xb6c57f055c5919d2da8466fa2d47f4a0fce2552ee1999a2fe7618482ce0d9522", - "6d20210495d6518787b72e4ad06bc4df21e68d89a802cf6bced2fca6c29652a6" : "0x30608417f9615779db05cd6f4614590a3fcf6c90516c84b93867612c57dba097", - "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x973f63c3f232ffaae67e03df9d6b44edba596334d286da2d5920abbf610387bb", - "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xb6010b008fb1f6acc6bcf7abc42260fd2fdeb1575b0c27473874ec8a3b074247", - "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xac6f489810c5f6964d20f1d87cb6b37592a6aba39a1f4b038666a7e2fc17365b", - "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0xab38f39c828bd1c2fbe8f427115504d75dcb189a7b701d6da9af86de841fe768", - "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x9ed686fd3b795de6185329add2fe0f5e4f907c08d20be5f06c94c012000535c4", - "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0x8872e6fecf82d40ca53fdba9d75d09129a94e76159b589c78d86382fa8043ead", - "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0xbca1fe1bb1e6a70085c45e757355ef184e786172c66a6e10612e18822a2d5f31", - "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0x47cb9e798c09e1c77ee587be91b66cdf2a6cab3aba040bfa8596653ed9bc6441", - "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0x8d91ed026578b6a09bf951ba088e05e37b9fa3282796d0868b6b35b5dc9a5278", - "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0x879116097aee056f838b7c84ea1380f585e01a8cf34d3cc57849930c9c03674b", - "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xaed6e775060949dc0672f12b7f4b3960d65ff47689a0411ce3c8c735db8ba099", - "c415de8d2eba7db216527dff4b60e8f3a5311c740dadb233e13e12547e226750" : "0xdcdb26f005d8e4b0820a3c99b916cfa79ef24c4319288f664ad9158966d7bbb0", - "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0xf6e490c108d047e8b1e7687d219862981328a63f0b8b662b224013b0543795f6", - "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x0541a3b9aa54e4a53cdeb4c59e904ca21b8452c3ee958426ee77dfb7bd8a304d", - "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0x3192e929d4d7c3366ee294f7bb97c73063234cf6999b028a892b591e7f95348e", - "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x279e7c274c3c7dbfb44f9d01f21a2030df935895a58b0d72da670a021f21f387", - "c2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4" : "0xd161d5885f69684a41c3f3768eb3dfab5ba81341c9d54d5bcf3b687848b25eec", - "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x9c6712ec48c0fcb5777e6931358d5699d10fc5d8dd01a72acaa88b3575102fc7", - "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0xd20b89571c8cb09515e254f5f0b834118baf0f9421e058e990395fa1956f2c24", - "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x5827dab7a6dbc0163e127d94e5b911af4a23ca6cc9f9f00664675d8458a8ddfe", - "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0xb1271821410c1fe6ee4c73d9532016ee3d28f36ab8f9bcc8a2f8e6953f420072", - "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0xe6cf726dcda4d6460d720c033c228d73223e2565cd73b53b01984a784438e844", - "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0xe8629a9e2406f70d1f2cb79440c925ca5ab6268ac42f0238abcf9c294f0c487c", - "8ac0c70fff57e9aefdf5edf44b51d62c2d433653cbb2cf5cc06bb115af04d221" : "0x79616958f2f996b09e67d14b2174c3837cb4aead1eac12c113cbd4755c1b47c4", - "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0x315181450a5b4e27b92d14f0ce92a8d2ee883382fcb0fb933c311d540ecb9a81", - "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0xba116f057c8c054298fc2b4db35daaad903dfc2126816a2d51cebe4946c5e757", - "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0xdba646841ffd000fed92f1c0163698c69f3ccb74396497c98f5e4bef93d57ab2", - "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf" : "0xb0526b6a2960ebacda89119c86e446017fa42b9e1b33dc6d7bf57c86cfa6e311", - "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xc2d2b046ee149862c35d1a2254e0b86e49aa7fdfaa04b01326603ed01914a237", - "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0x4ae42d6bf465609d0fac2c88cbcf07a803db5b1cb6e462de27eca2f73f53266f", - "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0x15dc9e730bbaffeb61dc3d981c5174c5dd418b1ad17938ffa075e2e42d52e685", - "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0xe2f86479f8a06477a24e8f327a40ad10762dad6cf183b8b11421bc85ac25bf98", - "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0x1ef38c56051de443c1ce78814325574b20cad961124fd93d62594eb318608843", - "944f2f908c5166e0732ea5b610599116cd8e1c41f47452697c1e84138b7184d6" : "0x02abcd8ee685f964e7a61786d39730ab6930be3af71923573a11d9751b87b50a", - "0781209c28fda797616212b7f94d77af3a01f3e94a5d421760aef020cf2bcb51" : "0x6d31b621402c45fe3a780117df9b2b9c0b9181e305d25ee96cc2f6c89b1b3def", - "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0x24fd10e29290a05f9503950f781e8f63ce273adf29580cecdb48e797a5bce342", - "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0xc7fd1cd1f9c6d824626d786bf983b9128e275ec8a9ee7db8331090be89e7346e", - "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0x0ea409db743138a6a35d067de468b1f43944f970267a9026de9794a86e3a0ac3", - "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0x144ec4135c65af207b97b3d2dfea9972efc7d80cc13a960ae1d808a3307d90ca", - "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0xbe76c55678f43f07c22390dbf3b58666e45529543f7c5524b39c566fe2920c97", - "67649450b4ca4bfff97cbaf96d2fd9e40f6db148cb65999140154415e4378e14" : "0x7d52011f90533c0f8be0d69fd4c2bcc64917d1956de78f2c0ff08661e9831659", - "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0xbef4367a85f9ffa85411337f7eeb93ee79fd2f2ade37e8c5b84add0d2814b6fe", - "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0x1db46472aa29f5a41dd4dc41867fdcbc1594f761e607293c40bdb66d7cd5278f", - "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x0946dcdffe349a04e1fe3078711b4b5e662bc74a0732c783ece1cf33992ad19f", - "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x168aa44fa92b27358beb17643834078b1320be6adf1b3bb0c7f018ac3591db1a", - "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0xba58fd5f657f67aba9b209187833d917da2984445e1e3b821571adbb11f89765", - "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x41874d6f43bb98b7111a65ce24a070265927d643734f5dd17db5d180643dbc1f", - "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0x73cbfcf7490fb050ec1f29fe107bca2831ff0c7c5f3961e067a1f87013ca23bb", - "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0xd9cd763d08d880137479acfaf219b4c8592c8f288219737c94b853a973fad2d7", - "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0xb67ff2d04061d42600594a7b525463e00bcb6d740581fba5fe919a8fad53aa43", - "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0x98f8556f0c3af32684144ac87a98d1dbfe3490c044404a861f746b3cc4599ca2", - "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x1645fa789b430edbac3021625db360ae4ef37963d58e104b1149998c2ba1c4db", - "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0x7dc63947c4204ae9b73bd6a4a225f21ac661fe828513950fadd9e7301446ee89", - "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0xa583300e45819172cd1e189bf91c3c8b459125c0c76f2ec109a1bc08e479f60a", - "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0x5d0c24e5927d70522f1af63f23bdbe632264fa83ea4f8c7743e71d24d24dd4e3", - "d64da7f265f00c456c2ebadf4593848129b9c86b45523e441d2f5ceb838a89cf" : "0x0afb0ba9a87527239880aa77d260e8ad84c2c6e2b8393e070e1bdf35f1b84dbb", - "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0xde213ecfd2d9b72900a63c8059aa52f2f603dfa927c9746b86d0cad871392878", - "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0x481568c83f3976fe559950cec24cdffc88bfca468c47617923fd956eb2e4957f", - "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x27214b7472029ca3cbc758c158837bd7cbdcd23af81c988e4db3168efb6fd7f7", - "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x7280d2f6d66035ba01f9ea3396554390d9b6a5396422d7233826d258a92010cf", - "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0xd70758a65410dd05844f1f0b71e28e0531c4e4e254478544c025388f43a1b5d7", - "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0x75808d1ab7d796cd470e81e656d33fc956446b72d915406a2823ba060df11a5a", - "b216f7ca372b318985903866e0b6dc44a14564828c49f36d0d363805aa76335c" : "0xa87a8dc56447a9cc0d6eed383f18de9716af8d00b2d4a61c36e790ca6e58e66a", - "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0x5f578eb69f3dc953ebd8b6b4fb93c3302085a8c38fe062383440f5d3329b369c", - "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x9ff35aa7e87abecc12c1da52521d48d28e444ff0696454aef7ea31cc6205e95d", - "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xe545620abcfcab122fb0ab90678ac599aebb63ecbaf94798da49869bc66ac6af", - "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0xe3f1b484dca618f06b7962330267d9d4ceee0aa0276fb4dae9d94a7ee2586ca5", - "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0x62289212a6d44ae23d6553c269a7f6d6b9cfbe0d3d8ebb8c8c5c4bd49fd8a41d", - "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x0eeaccf721d53ee14bfcc337f00d4f58195f15455d2f9e7fae3ea3e929203994", - "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0x1486f830bcb8f098efd987ff291c0f86240bd0f2a77f379078f04325711de506", - "5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52" : "0x607890f56b8c3aab0e56f6fd52d4fde892d19462e4f80a51cb5d47191eae84b5", - "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0x0c30c67d1758b9440135fbffe8457f0b47243790300b2e71c52c8e51626cee84", - "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0xb4e5da748598a4bd9e165f7acac70d05c79be86896b95a9c444b4e0840055ba9", - "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0xe40aa9805db55e957d7a330192b0b6dccd07da10a0584aa9c29c100906a424fc", - "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0x6dd1245c596b96e7610ebe0a3b2871a1b9e56416d2ba6ef46c725dd6a9d354d8", - "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0x389321e21c0fbfbc87b6f028c574edbcb3bf3c5add55d70197845f6db7eb8ba8", - "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0xbc7c8ed97abb4cd01a3ae45d00ec6705ae5545b48247a6f7137e7b1f07c03f2c", - "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0x91d21d68bbdf8cd3b735ce1589a6d1ec2c014a7b187461e66377856a7709ab0a", - "70dddcb074263ce201ea9a1be5b3537e59ed5b9060d309e12d61762cfe59fb7e" : "0xb3f046e69beb0efce10e537ad23290031ccef9deda7965d0a0f2cf65f97b71dc", - "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0xd5d8428261bd671644a8a623557ddf3c87ead971bc6c6778df7887c854bf82aa", - "07a8f31e8910c3b52f338d2aca6f4dc2404753ebafcdf53290ef4993911a71f8" : "0x94a6126dfa234583c547e826751e43a6d3e2637fce75076c1ba40695efffebf1", - "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x7f6cdd0117e8f2e5f18403acc278394237f4b118e791b025f8edb3bfa2276d62", - "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0x12e316df7a091f9b8c576ebf64f828a3d080a23223d596d522440edd6df36a9a", - "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0xc3f8fd27a445af598790fff749af538206a084c9512e86e10fdf50b2f6833820", - "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0x8cf5ac81bc19d99b5a073c193907b6dd891236a065a907894f96b9aa1a9ccdc7", - "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0x87e6124bff3732ad6aa5f2839e314c4d22e121dc4827079908bde78f6c0b37f4", - "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0xd25c3cbd10f68614cad75bd4663c734ae830487f449e44c476fce0e5d733393d", - "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x8b6c3644e786236206264929b841116e59b75863c6a9ee8dbf06cca6454aa5e5", - "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0x348121e8fb0d35fe0bd970ffd1d0c770e2a6f676f46538091fc5d81235cb06ca", - "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x3c85d4072e6f5aa35bb9c359c88aad41c962a53a7128b2586bab130d8a034592", - "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x26344c550151d60c0beadf5f3c2fda4db12e70b4705eb51a421b49d3468abcc6", - "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0xb2d9ac5eed302e8b5c1b1a39d89f05606cfe220391ffd41203e53ca0b2703f89", - "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xe273328d614db3aec926df6ee7f641bdc752ad55bd5af55f866cc1886b58bf83", - "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x0223b5961d18f2931a4612eaeb8f92516acd4a1062dcc4bdc7f540425bf549f6", - "ee70804471fe22d029ac2d2b00ea18bbf4fb062958d425e5830fd25bed430345" : "0xf49d27eca820e75bf4bbb0b403c87a9c5ad8af728ea7ff36b0f923f8430607f8", - "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0xe903bfc8a57f66d18463b6fde29afa5a0319cb5f80e4a5cd4998611a8506a08f", - "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0xec29451f73f5a09cf05b461d717858f763152111f7031bbb158916bb26462d43", - "d45392f678a1287b8412ed2aaa326def204a5c234df7cb5552d756c332283d81" : "0xcb26fa836cb0c55a50e8946abe3e25d5f7fa74800fc9f6f8041769307f640884", - "67aed5a24fdad045475e7195c98a98aea119c763f272d4523f5bac93a4f33c2b" : "0x63e31fbd85d67c722deea6dda5f7dc1764fcaa27cb34e7c0cc89d5e86c9d6e53", - "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x3395df92c2c363d85a45c8044e35bb60e9c7afa48caf94e829aa41e93fb60681", - "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0xf4f3fb45757e9af82c850974f9531777a378f5a8bccd45b2e83b1bbd2f0b9949", - "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x9bde4683d80e5262283355d572b2b2601eb50a84c9b8b9df732c36c14f633765", - "3607bf4d7b78666bd3736c7aacaf2fd2bc56caa8667d3224971ebe3c0623292a" : "0x769bf65cd7d01c07648a808d6254b3d73a769b7ba1e96dc9b05dcd58f67be08c", - "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0xfeac66a8f3dcaa723609b06cb6f9eaa20bf92c80d74964c74b9c33c98244b328", - "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0x6158dae7ddc9178fe4d4663769f952a6253cb5803f8bca6cd5c24791932da82d", - "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xc13e1eb4edfb4b7e5d5687f3baa0b106fbdb1c86c5ad46072b6e09cdbabe279b", - "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x0ff485223dc1d6b0463ce9ee33287642bd42dc6a2048a7cad7d4bbcadd8d9f51", - "432a52bde005a010dc32c47733e4595fea0ea04df3b5aaa1c45153a527d646f0" : "0x81ac67ae2314b786980f3465eaba7a7277e0719de13e987b2f1367eadca0328d", - "a1a6465f4c2ebf244c31d80bc95c27345a3424e428c2def33eced9e90d3f701b" : "0x6cf621863304d486b8c623cca492ca95cfe0d641abd288139a0495d63129f9cc", - "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0xe79a652ca6e6c242a2865bf11d6b1e3ae2464b2740fcb6b627278a4565613a07", - "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0xe8399d70a6d0789c961a3fb8bca2a7aa8820ac42c9f3fc9f246d7d5f513fb912", - "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0xb419c2b26f4cec0da24a719c33fb5a503613a5a1f080fb1b29c1d00a2d477f3f", - "1021a42d623ab4fe0bf8c47fd21cc10636e39e07f91e9b2478551e137d512aaa" : "0xd130d51ee53be539e71733e41899cb9d70dfdc3b53c5934dd200ed9a86767b35", - "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0xbf45311362a393ab0331658ffeeb51b85fd32629643152199980f1a83a019246", - "95609d32c98a467a72ac419f2e64bb2b8dbd5b00b74f3a0fd72f42343af1743d" : "0x5a2bf6e3ae4760a934ad5598459dbb398c887839614c0a596935139baaa3869e", - "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0x8bd322a29436b44cb3cfd5268266435a7b81ddd5f46c6f651943ff57c694aae9", - "ff4c53361e36a9b837433c87d290c229e1f01aec5ef98d9f3f70953a20a629ce" : "0x0190cb92736e9d7d9f4ed17b92f15473607dfeb93b93409504cf19ae6d4250db", - "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0x4063d4b34fa78c353fe2ac708d16d95b20ad58cb89781e55665e257d7b2d0425", - "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0x0a8c3df365d92aa5b947352371c02a555ea300359ffd37fcafcaa3c529cbab7c", - "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0x7ced49286dcbc4711535d7bc10a853527854c55cd5973445b1f1c5aa81b6f49e", - "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x38739a5eed6d192c88ad72cdda0ff1d4420adf4dc7ad78ed254eecece1f55992", - "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x9a1511ffe5a1eff9d148e7ff6d440eaec96325632e67f041976ff2fd9d1b8fc9", - "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0xa6ab98ad22e85c0b1673c3b7fe55fa454cf1d23fd8c4cf9ac85d97070872315a", - "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x15da230ea0b9de48c24067720adbe77d511be606659668b9252c72fd4f12896a", - "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0xea6c34fc172fe57491e3bc613e13f7a5232704977d0efaa8c38fa3eafb53a190", - "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x757936648c89c45ae5eec993531ee5f725362070eec7394d328fcda4e5501f25", - "fa2d39b681f3cef5fa87432a8dbd05113917fffb1b6829a37395c88396522a4e" : "0x42dc6d003a90a5e172673236488918908b0704f8da67ed090f96a85f6ddb0376", - "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0x6678e6bc78d00aafa1135f9ec4813d9070a35bcd945dfdb447e784df2fd7b3e9", - "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0xaec019399f0c843477d0fb85ff549595cf86a1181739a381add99d4dba298664", - "06d9fa501fd2bef47265361ca0eaf6e0a97c3b226cea5ab760240f70818581ad" : "0x1d73b0ea969a4a5e3016f18b98fe477dc8c1aea8c3d1bd6353d7bdeb40f0b11b", - "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x822ecc552fc661aeb063317c23d19d702eae783ca3a7348efee141af5f777a05", - "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0xacc9bb2c3d151d04d6c8ef6d793a5a22ddce6a4e030dbccf8eb4df79ee853356", - "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x82744f353e7b2987fc9b922a34c1ce5233ce47fb73c2805b329f4bdb47f2ca4f", - "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0xe077710b5ca75178aeaa20a3190b61c7f366197222fa0b999bbda58ee92d88c4", - "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x3af9e87e527860d7554cc3f3d2f068c341d554d1c321280d608deaf10e620a05", - "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0xa43c7f01106bc158770caa061354c96dc01f01a8549f6167988c9315b22fa0c4", - "9f383d612ac09c7e6ffda24deca1502fce72e0ba58ff473fea411d9727401cc1" : "0xb21f8c8b67a213288b06d9f7b8d637dee468e0819a87b4109d42abe97bb0d7c4", - "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0xc4b6e8fed5fdf6732aea2dbb99689eafada1beb6b8e6ad721483f7da1d9bed3c", - "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0x03e5eab4e05ecfa1586864e99d0cf7ca041d538f3d060746186ca3e570918014", - "26852e2d0696e25e6adaad2d7ca3a1f2f15aab68d317ace14d41b4128a7e780f" : "0xa3431a3f6a43dad744494ab9c05e848875044aa280bd6116ac60d9a5ac58ca75", - "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xb0a059f4bc5b92f2e9a8ad97d406d1d14455a7cc9dac58fff9fb475ce3e675df", - "6b701e292e0836d18a5904a08fe94534f9ab5c3d4ff37dc02c74dd0f4901944d" : "0xc396eb2b9c1914c6dbfa66b7188ab5ba36688787e1ae8bf96a2c4ade9732cbb5", - "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0x82bf47e2ac2597bba0f0c1775ff81cdff2bfe1d9af2a65712013cc2d614c6f94", - "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0x30886170ff4d71398a5818940b0c2abd54b13c536c9558ed197c2f44ba2cbc35", - "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0xd1213505a03e0c4ddc08bfc3875b03c472856f5e481b4fbcd1a18ba59d3cac07", - "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x3f5facfd23427362a17d5e0dca85c94098fb49bded49a2555058a352bb516a56", - "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0x3ece052ac5c282aab98a3c43ff7d02147a8b506c3f22711f99654537aea47131", - "6e3f3fa8253588df9326580180233eb791e03b443a3ba7a1d892e73874e19a54" : "0xa17792daa3e88d2825ceb249ec92c455d5f01d8fc8109779a6c79bb83846370c" - } \ No newline at end of file + "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc": "0x48f5e34e3bf1536cbb100ce9bda1eeb63b414ca4bfc2b3da64b7899c1b68bce1", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc": "0x73c2acb6e4ef06b3ac2290c2dbbdf2c4e18f128c3c35d2e3cd7bc72064c53a11", + "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225": "0x2509cb1db4940adb0455408d60ba2e8d90ba5ce9e1917fc663333a5ab561d526", + "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef": "0xe77ee43c45c2e8a3fc1b2c436f53752380ae9a37b9cac474cb3c49be08f55fc4", + "27d108eb764c912f49d3453a21dd95516619b1c45d0b607ee58a137ac8a6f32d": "0xe36fb48cdcd0b53538df43ce800cd1e00005b8bcfd0814dfc4463cf834d90b45", + "1dcf38b0206d27849b0fcb8d2df21aff4f95873cce223f49d7c1ea3c5145ec63": "0x3de2560b78bc990225b894304cd178d2eafe08ea9afaa6413d271223527f5951", + "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf": "0xfa16594fccd3a1ebe33472ef3992de100ab054ec2a217240680482a538b4c336", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283": "0x8367e3bb78392d6a4a491355a8d1e9c21aa1cd8273c7e0df81d122814e9dd7c8", + "67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb": "0x931d4ed5776656216c4df13bcd98d39c4cf4ee07d1549cbb21768b2c2a661ae0", + "ad2fda41998f4e7be99a2a7b27273bd16f183d9adfc014a4f5e5d3d6cd519bf4": "0xa8ede0347676f90f35b32f02006f1b377cfcc5a97c378c3c55d19785d4862424", + "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305": "0xf43077d4591363033422295f7d057c91f274428e84df0052087d52a8ddf75853", + "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1": "0xf72465b8208bdbe15901d3861be0d7a3f897b871a88f7dd9374bcba1fa9a70aa", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe": "0xb7327d2ae15cc451cef7e9d639ab762f23f888b2e6357ace28dd40370a04f0be", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7": "0x7adc4863905768dd4d2fddab7161a8c8cc4232763f7eb5f7af60d7b0dac7e1b1", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b": "0x64f8db86bef3603472cf446c7ab40278af7f4bcda97c7599ad4cb33d228e31eb", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386": "0x977dc5e935767f31254d1f30c1190f82c1b30748650507382d4b99233b61356b", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042": "0x4ce39ace836e4ab1a534fc80a1da1ea7b1a543cb53c0a524bc6b412ffac9e3aa", + "159b09ed169a3cdbd13fd96ef4b3cda54972058906d38a58f5cd327e5df1478b": "0x45cf00d0ec9bd998b4b98193f8cb94960bcff8f7b710f7bb6a9251db1a1e3a7c", + "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c": "0xbfda14b522c592ed05187d411822a43d966290519545165a759db2c99f8e04ba", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0": "0x82b1c5f3f6b19b462d390041d753e8c91ae7adefb19b3d0200f76331d0f3d870", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f": "0xf77ffef808c70726cf3194275d2b2562c6e107130188f81684b184081f380e7b", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb": "0x276ebfe4c08088769193d92d601cd1bab347e9969ca26f2aae27e3c787b10577", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a": "0xd2ec9b5cc02a4a5f2b99739cd2021048a8b8fdff0d718e21b3f2d6347c15802f", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58": "0xce3d0a61496bfe275a0743753192f9fd99e08c6f9e515d29d75b9bb491795b3c", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9": "0x84d1121e33ead9dc597fc8783046ef62917138ddec8ace9f096a8ab05408d627", + "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353": "0x8e37e4b5165f1ecc27b9293c262efee4b48ed888eb24eb52003db8c4e30a7e6e", + "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec": "0x24773694c342902c90bab3f9989cf07a3acdcbad43bd15fc6b2fa5e3a7bf6725", + "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb": "0xfc81ec2ea856badef5646309cd7cba2b39365b40d76b2e9d73ace9ddc78ebbd5", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a": "0x6a067510a352ca827ba34f297b5a36c11da0509848d4d32895ec38ceeb9f2fe3", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32": "0x781d74ce86520529492844dbb355746d7f452b9bcb56f1df9c66458f4683b334", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1": "0xd3b0babf4b63fcd84e8fb345ed947dc42687d64c0d3ab9bcb19aefcba5edee65", + "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578": "0x37584366e4c87d0db4f0fe8f5bea2913bb17b540efae87c734df2e84b7f8132a", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554": "0xe54f04f1c67ad0735377696e85e1459ba2331aaaf1939ea2764c70ba3e626fb3", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a": "0x368c16d65559ba370d3b482facd2f271cabcce8d51981f19adcc798da566f5a5", + "8cdc9b2118d2ce55a299f8f1d700d0127cf4036d1aa666a8cd51dcab4254284f": "0xea0a0193fd43846748c3db56ecf88d265678a41fe060c647d9b61e93ced3a1e9", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a": "0xfc34f68e8cbe453be14c11da50cf3e40860b76423f4a760bb219882fde2f5a1d", + "5a5d5f7fb72cc84b579d74d1c06d258d751962e9a010c0b1cce7e6023aacb71b": "0x7b8c7ef3bfd8144689d1140d6426a8e1be434942c6668a8a49587fdfc2021af7", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445": "0x390b072dded78dfff1ea173b38c66381e5f3f9efe7518cb35225a9c3f9a459dd", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86": "0x6472958c67e43b2152c16673bd0089f8d1b554e44ebc66123cc2b90826e917a3", + "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13": "0x12b26a12f52efb34f92b9fd5276b279d780e6290ca9694ddc5c914ca21f6bc5b", + "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245": "0xf07b1bc4a2e57f6689fac5e6f45d849684e04c48ed14cfcdf9d0f92a3c0d6750", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592": "0x9b200f90ce60bad205b173a5d93d7735216651056b1aa417cd43548cb1e296c9", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710": "0x1c896b841e04ae645f153f5fff69ff2decd5887bedd50ef35ed9366a9504d5be", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e": "0xf98966d481a43b21390217c32bd1cf1b5bda9e30a4e17813ba74a607348db110", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e": "0x8d4475caa70fed009c5cb2409319241a87483a32e2e39a49b41d49789a2c6290", + "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b": "0x314f17766eea028b392afa591bc73dc088373401105a1b5b7696d77ea2eca60e", + "649fdd7ec08e8e2a20f425729854e90293dcbe2376abc47197a14da6ff339756": "0x14fca9ac00d16ddf02bc7d09434ac9e0648b033b6fec8cff25b9c4086bf5bbef", + "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a": "0x4c1ea5bf7298087455ff3e304071483d898428d492982ebe96bede528878cab1", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6": "0x5d7abbc0984b102d24d8c799f62336966063cbb63b2443e2b0edc7ee1a502fab", + "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483": "0x2461d2c70b6bb5fda512fcc3d3e5905cd1601c76754b9aef68ff77099ab8a01a", + "ee42016c303126bd9263724e00f83a8114e84518c6e8ffc9738c001cc301daff": "0x99a31d27d382e65e7e4f83a8f9a3e0306244ac26a6b60b0c233aaa573399edfc", + "4457960559b812558bb0f8cb7912f8bcb843eb801a3133ef45be998630ff8c05": "0xda3bf400551387e59d18867b22b00184ca277d048413bfb8a456464e23039818", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0": "0xea316baa91d450f8cac1cda7cc1e85203094bb447e1a8fa606142e552a1bef9b", + "4176cd17d4a1fb517b6535e70084ce85e1bcbe707c66b960c8bd5256accc1b2d": "0x6bb4c17ea9aab309528c2dd209bcc43964fe7e61944816764402aea5be89bd28", + "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd": "0xbf66ce3ec6cc8b96a96c394d224458ba1245e0bd8d7b2ef26b2dabde7201ab90", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1": "0xe629bee77fa0153cc95381c03874ea40b2606045754846329056953da91ec737", + "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace": "0xaa6adc565636860729907ef3e7fb7808d80c8a425a5fd417ae47bb68e2dcc2e3", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe": "0xea3c73b52093cce7bfc6268b2f3ac98a9d5c6b29b73ff8531e9cb367534c5601", + "39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3": "0xa0f1dd0f63f4433cee07ae3252aa2932adec74ca9c0e9cc3940b941c43b65d59", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74": "0x0ae0bdcaf4d5d8a598088b662484d14b70ff87ce03a85991cdb2c97b6adad694", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688": "0xea058b780d7d736034902dc429ef09d2a3bf79045f467b21281de049b007f0f1", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652": "0xd64cdf76087a1e758220bfc42c932166c948389b55cb57d7ba084b43c550c447", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc": "0xd7b38060426a5d4202f070c43cd95eeaca0118d73037de110493a2a7d1e68db2", + "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44": "0x32cc9edcff5da777e082683ff0f74e402df4f405d23440d4a178160742b22ee8", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76": "0xc669349fbdd7ee4bb414d6b2f369c795d02d5a0032fcde020a69bc58767e8679", + "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52": "0x7fe7a7a217ab0c41603b1447c342fcbe4d053a5e4545712ee4ba9c8597c5dcd5", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae": "0x3a3bf114e8d1d6f7b183c1fd93e6fcd1262bd935e41299beaa3fba30a57d921c", + "097d687437374051c75160d648800f021086bc8edf469f11284491fda8192315": "0xd95ccf9ad19161a11d6c89d7d01183b8ada8de019097ffb59cae0017374fd8c2", + "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b": "0xb7bd68342d5a4dcb179a0d5671b02c1ecc0a3541070319837a062c871a5c34b4", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5": "0xcbf9dfb457aa8d1e3133f74a9dda1f35a8dee4389f94058440b8e41a551c5e91", + "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5": "0x6019d9c0076ca9ae62e115a5649cba5b6ae0206d887b5def93e4bb3ba00bcb7b", + "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5": "0xfee4a508e0dfcc4aa01eb0cca214a5aa7de4b96a385cb0aa1a972a81b792601a", + "c3d5d8d6d17081b3d0bbca6e2fa3a6704bb9a9561d9f9e1dc52db47629f862ad": "0xd910c7feef2f7f2202b7ddde218c9dc2e38f9b6c6a8b57baa6f303fd34909786", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535": "0x4fdd926d2de6856e517e8971bb31cdbc7a56ecc00bdaa6465d275dac3facdd58", + "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31": "0x7132045789988836fcce1b6d616d4d3b127d514b3ad3cb35ba88f2900ee705e6", + "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a": "0xe898823694bee196292d219705cd0beb35525801b85375591fc6a44cf55d3b20", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04": "0x4fe43d8860dc2110f94d9e83823732fa4b0c0dce02649d16d679660f4f50fcae", + "765f416f2d676848b5016428bc9295fda3e71d5e97b16df75179a378cef040ec": "0xf434ab996f77c767e2a87dead8cac87be37aff047747051b415fd4a2618fe8f5", + "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b": "0x9d63a5134e732db8a63dfa10ab019deb24397de7f2058d4209167bbbada3d33f", + "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400": "0x254241ea8359518d79c52e64589e147a0447e6c35f33de677a00175061b464e5", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab": "0x3416a6939f558a9617a99d12179268f702d39fc408458d70c284de1a80a1c49c", + "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e": "0x48f1db8eec5885a546e12c19d67f4547859fea650015b48454cfc5c79d394279", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918": "0x23b2225a09c417d565c77fb0b3e036d8d5aebbedf91cb1953d80ce5292cd97f6", + "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779": "0x1a4e036ba74b664ba89ec19239a575288fbecfdb7a79d3064791736f67cd2608", + "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad": "0x31529ae63c25966bdb44728d3b9f85a492b128695c1b5bb023430095f8259a53", + "81a21b01c15b8d01f6cdfed65e00987cc4c901858c821b2089344987de3102e9": "0x63220e064b5aea996231271af99fbb95ca20100adc038f3a70216af85b46abb8", + "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8": "0xb1ce7fc4ff77674c1cd0b55b7b11d512136b1c255dfe40855d802242a801c2d9", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419": "0xc2eefebf46c00bd270b796d1c2b13aca776d4ed71987e735aaa1af2ca5a6b54b", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5": "0x02ed0bfc818a060e1378eccda6a6c1dc6b4360b499bdaa23e3c69bb9ba2bfc96", + "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6": "0xcad9824dd299c55b10085cc2822d82d2b95c6af6d577a784389abb036096bcb7", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b": "0x2b60d6a87f7d6151b264deb533964622d1492f9f1632554d9213fa51e8f7a92c", + "433faaa801ecdb6618e3897177a118b273a8e18cc3ff545aadfc207d58d028f7": "0xb6c57f055c5919d2da8466fa2d47f4a0fce2552ee1999a2fe7618482ce0d9522", + "6d20210495d6518787b72e4ad06bc4df21e68d89a802cf6bced2fca6c29652a6": "0x30608417f9615779db05cd6f4614590a3fcf6c90516c84b93867612c57dba097", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628": "0x973f63c3f232ffaae67e03df9d6b44edba596334d286da2d5920abbf610387bb", + "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e": "0xb6010b008fb1f6acc6bcf7abc42260fd2fdeb1575b0c27473874ec8a3b074247", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676": "0xac6f489810c5f6964d20f1d87cb6b37592a6aba39a1f4b038666a7e2fc17365b", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3": "0xab38f39c828bd1c2fbe8f427115504d75dcb189a7b701d6da9af86de841fe768", + "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8": "0x9ed686fd3b795de6185329add2fe0f5e4f907c08d20be5f06c94c012000535c4", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983": "0x8872e6fecf82d40ca53fdba9d75d09129a94e76159b589c78d86382fa8043ead", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411": "0xbca1fe1bb1e6a70085c45e757355ef184e786172c66a6e10612e18822a2d5f31", + "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff": "0x47cb9e798c09e1c77ee587be91b66cdf2a6cab3aba040bfa8596653ed9bc6441", + "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f": "0x8d91ed026578b6a09bf951ba088e05e37b9fa3282796d0868b6b35b5dc9a5278", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3": "0x879116097aee056f838b7c84ea1380f585e01a8cf34d3cc57849930c9c03674b", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271": "0xaed6e775060949dc0672f12b7f4b3960d65ff47689a0411ce3c8c735db8ba099", + "c415de8d2eba7db216527dff4b60e8f3a5311c740dadb233e13e12547e226750": "0xdcdb26f005d8e4b0820a3c99b916cfa79ef24c4319288f664ad9158966d7bbb0", + "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449": "0xf6e490c108d047e8b1e7687d219862981328a63f0b8b662b224013b0543795f6", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30": "0x0541a3b9aa54e4a53cdeb4c59e904ca21b8452c3ee958426ee77dfb7bd8a304d", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1": "0x3192e929d4d7c3366ee294f7bb97c73063234cf6999b028a892b591e7f95348e", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717": "0x279e7c274c3c7dbfb44f9d01f21a2030df935895a58b0d72da670a021f21f387", + "c2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4": "0xd161d5885f69684a41c3f3768eb3dfab5ba81341c9d54d5bcf3b687848b25eec", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481": "0x9c6712ec48c0fcb5777e6931358d5699d10fc5d8dd01a72acaa88b3575102fc7", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b": "0xd20b89571c8cb09515e254f5f0b834118baf0f9421e058e990395fa1956f2c24", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e": "0x5827dab7a6dbc0163e127d94e5b911af4a23ca6cc9f9f00664675d8458a8ddfe", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1": "0xb1271821410c1fe6ee4c73d9532016ee3d28f36ab8f9bcc8a2f8e6953f420072", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc": "0xe6cf726dcda4d6460d720c033c228d73223e2565cd73b53b01984a784438e844", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32": "0xe8629a9e2406f70d1f2cb79440c925ca5ab6268ac42f0238abcf9c294f0c487c", + "8ac0c70fff57e9aefdf5edf44b51d62c2d433653cbb2cf5cc06bb115af04d221": "0x79616958f2f996b09e67d14b2174c3837cb4aead1eac12c113cbd4755c1b47c4", + "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd": "0x315181450a5b4e27b92d14f0ce92a8d2ee883382fcb0fb933c311d540ecb9a81", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814": "0xba116f057c8c054298fc2b4db35daaad903dfc2126816a2d51cebe4946c5e757", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79": "0xdba646841ffd000fed92f1c0163698c69f3ccb74396497c98f5e4bef93d57ab2", + "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf": "0xb0526b6a2960ebacda89119c86e446017fa42b9e1b33dc6d7bf57c86cfa6e311", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c": "0xc2d2b046ee149862c35d1a2254e0b86e49aa7fdfaa04b01326603ed01914a237", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7": "0x4ae42d6bf465609d0fac2c88cbcf07a803db5b1cb6e462de27eca2f73f53266f", + "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd": "0x15dc9e730bbaffeb61dc3d981c5174c5dd418b1ad17938ffa075e2e42d52e685", + "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66": "0xe2f86479f8a06477a24e8f327a40ad10762dad6cf183b8b11421bc85ac25bf98", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1": "0x1ef38c56051de443c1ce78814325574b20cad961124fd93d62594eb318608843", + "944f2f908c5166e0732ea5b610599116cd8e1c41f47452697c1e84138b7184d6": "0x02abcd8ee685f964e7a61786d39730ab6930be3af71923573a11d9751b87b50a", + "0781209c28fda797616212b7f94d77af3a01f3e94a5d421760aef020cf2bcb51": "0x6d31b621402c45fe3a780117df9b2b9c0b9181e305d25ee96cc2f6c89b1b3def", + "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17": "0x24fd10e29290a05f9503950f781e8f63ce273adf29580cecdb48e797a5bce342", + "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627": "0xc7fd1cd1f9c6d824626d786bf983b9128e275ec8a9ee7db8331090be89e7346e", + "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d": "0x0ea409db743138a6a35d067de468b1f43944f970267a9026de9794a86e3a0ac3", + "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43": "0x144ec4135c65af207b97b3d2dfea9972efc7d80cc13a960ae1d808a3307d90ca", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a": "0xbe76c55678f43f07c22390dbf3b58666e45529543f7c5524b39c566fe2920c97", + "67649450b4ca4bfff97cbaf96d2fd9e40f6db148cb65999140154415e4378e14": "0x7d52011f90533c0f8be0d69fd4c2bcc64917d1956de78f2c0ff08661e9831659", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c": "0xbef4367a85f9ffa85411337f7eeb93ee79fd2f2ade37e8c5b84add0d2814b6fe", + "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a": "0x1db46472aa29f5a41dd4dc41867fdcbc1594f761e607293c40bdb66d7cd5278f", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1": "0x0946dcdffe349a04e1fe3078711b4b5e662bc74a0732c783ece1cf33992ad19f", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744": "0x168aa44fa92b27358beb17643834078b1320be6adf1b3bb0c7f018ac3591db1a", + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e": "0xba58fd5f657f67aba9b209187833d917da2984445e1e3b821571adbb11f89765", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2": "0x41874d6f43bb98b7111a65ce24a070265927d643734f5dd17db5d180643dbc1f", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812": "0x73cbfcf7490fb050ec1f29fe107bca2831ff0c7c5f3961e067a1f87013ca23bb", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549": "0xd9cd763d08d880137479acfaf219b4c8592c8f288219737c94b853a973fad2d7", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293": "0xb67ff2d04061d42600594a7b525463e00bcb6d740581fba5fe919a8fad53aa43", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9": "0x98f8556f0c3af32684144ac87a98d1dbfe3490c044404a861f746b3cc4599ca2", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9": "0x1645fa789b430edbac3021625db360ae4ef37963d58e104b1149998c2ba1c4db", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1": "0x7dc63947c4204ae9b73bd6a4a225f21ac661fe828513950fadd9e7301446ee89", + "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4": "0xa583300e45819172cd1e189bf91c3c8b459125c0c76f2ec109a1bc08e479f60a", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63": "0x5d0c24e5927d70522f1af63f23bdbe632264fa83ea4f8c7743e71d24d24dd4e3", + "d64da7f265f00c456c2ebadf4593848129b9c86b45523e441d2f5ceb838a89cf": "0x0afb0ba9a87527239880aa77d260e8ad84c2c6e2b8393e070e1bdf35f1b84dbb", + "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485": "0xde213ecfd2d9b72900a63c8059aa52f2f603dfa927c9746b86d0cad871392878", + "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009": "0x481568c83f3976fe559950cec24cdffc88bfca468c47617923fd956eb2e4957f", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501": "0x27214b7472029ca3cbc758c158837bd7cbdcd23af81c988e4db3168efb6fd7f7", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179": "0x7280d2f6d66035ba01f9ea3396554390d9b6a5396422d7233826d258a92010cf", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d": "0xd70758a65410dd05844f1f0b71e28e0531c4e4e254478544c025388f43a1b5d7", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6": "0x75808d1ab7d796cd470e81e656d33fc956446b72d915406a2823ba060df11a5a", + "b216f7ca372b318985903866e0b6dc44a14564828c49f36d0d363805aa76335c": "0xa87a8dc56447a9cc0d6eed383f18de9716af8d00b2d4a61c36e790ca6e58e66a", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90": "0x5f578eb69f3dc953ebd8b6b4fb93c3302085a8c38fe062383440f5d3329b369c", + "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25": "0x9ff35aa7e87abecc12c1da52521d48d28e444ff0696454aef7ea31cc6205e95d", + "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6": "0xe545620abcfcab122fb0ab90678ac599aebb63ecbaf94798da49869bc66ac6af", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623": "0xe3f1b484dca618f06b7962330267d9d4ceee0aa0276fb4dae9d94a7ee2586ca5", + "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c": "0x62289212a6d44ae23d6553c269a7f6d6b9cfbe0d3d8ebb8c8c5c4bd49fd8a41d", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80": "0x0eeaccf721d53ee14bfcc337f00d4f58195f15455d2f9e7fae3ea3e929203994", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d": "0x1486f830bcb8f098efd987ff291c0f86240bd0f2a77f379078f04325711de506", + "5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52": "0x607890f56b8c3aab0e56f6fd52d4fde892d19462e4f80a51cb5d47191eae84b5", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f": "0x0c30c67d1758b9440135fbffe8457f0b47243790300b2e71c52c8e51626cee84", + "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90": "0xb4e5da748598a4bd9e165f7acac70d05c79be86896b95a9c444b4e0840055ba9", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe": "0xe40aa9805db55e957d7a330192b0b6dccd07da10a0584aa9c29c100906a424fc", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd": "0x6dd1245c596b96e7610ebe0a3b2871a1b9e56416d2ba6ef46c725dd6a9d354d8", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad": "0x389321e21c0fbfbc87b6f028c574edbcb3bf3c5add55d70197845f6db7eb8ba8", + "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0": "0xbc7c8ed97abb4cd01a3ae45d00ec6705ae5545b48247a6f7137e7b1f07c03f2c", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794": "0x91d21d68bbdf8cd3b735ce1589a6d1ec2c014a7b187461e66377856a7709ab0a", + "70dddcb074263ce201ea9a1be5b3537e59ed5b9060d309e12d61762cfe59fb7e": "0xb3f046e69beb0efce10e537ad23290031ccef9deda7965d0a0f2cf65f97b71dc", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6": "0xd5d8428261bd671644a8a623557ddf3c87ead971bc6c6778df7887c854bf82aa", + "07a8f31e8910c3b52f338d2aca6f4dc2404753ebafcdf53290ef4993911a71f8": "0x94a6126dfa234583c547e826751e43a6d3e2637fce75076c1ba40695efffebf1", + "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca": "0x7f6cdd0117e8f2e5f18403acc278394237f4b118e791b025f8edb3bfa2276d62", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933": "0x12e316df7a091f9b8c576ebf64f828a3d080a23223d596d522440edd6df36a9a", + "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b": "0xc3f8fd27a445af598790fff749af538206a084c9512e86e10fdf50b2f6833820", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5": "0x8cf5ac81bc19d99b5a073c193907b6dd891236a065a907894f96b9aa1a9ccdc7", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d": "0x87e6124bff3732ad6aa5f2839e314c4d22e121dc4827079908bde78f6c0b37f4", + "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f": "0xd25c3cbd10f68614cad75bd4663c734ae830487f449e44c476fce0e5d733393d", + "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a": "0x8b6c3644e786236206264929b841116e59b75863c6a9ee8dbf06cca6454aa5e5", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7": "0x348121e8fb0d35fe0bd970ffd1d0c770e2a6f676f46538091fc5d81235cb06ca", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c": "0x3c85d4072e6f5aa35bb9c359c88aad41c962a53a7128b2586bab130d8a034592", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240": "0x26344c550151d60c0beadf5f3c2fda4db12e70b4705eb51a421b49d3468abcc6", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7": "0xb2d9ac5eed302e8b5c1b1a39d89f05606cfe220391ffd41203e53ca0b2703f89", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c": "0xe273328d614db3aec926df6ee7f641bdc752ad55bd5af55f866cc1886b58bf83", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2": "0x0223b5961d18f2931a4612eaeb8f92516acd4a1062dcc4bdc7f540425bf549f6", + "ee70804471fe22d029ac2d2b00ea18bbf4fb062958d425e5830fd25bed430345": "0xf49d27eca820e75bf4bbb0b403c87a9c5ad8af728ea7ff36b0f923f8430607f8", + "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0": "0xe903bfc8a57f66d18463b6fde29afa5a0319cb5f80e4a5cd4998611a8506a08f", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8": "0xec29451f73f5a09cf05b461d717858f763152111f7031bbb158916bb26462d43", + "d45392f678a1287b8412ed2aaa326def204a5c234df7cb5552d756c332283d81": "0xcb26fa836cb0c55a50e8946abe3e25d5f7fa74800fc9f6f8041769307f640884", + "67aed5a24fdad045475e7195c98a98aea119c763f272d4523f5bac93a4f33c2b": "0x63e31fbd85d67c722deea6dda5f7dc1764fcaa27cb34e7c0cc89d5e86c9d6e53", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507": "0x3395df92c2c363d85a45c8044e35bb60e9c7afa48caf94e829aa41e93fb60681", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785": "0xf4f3fb45757e9af82c850974f9531777a378f5a8bccd45b2e83b1bbd2f0b9949", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc": "0x9bde4683d80e5262283355d572b2b2601eb50a84c9b8b9df732c36c14f633765", + "3607bf4d7b78666bd3736c7aacaf2fd2bc56caa8667d3224971ebe3c0623292a": "0x769bf65cd7d01c07648a808d6254b3d73a769b7ba1e96dc9b05dcd58f67be08c", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d": "0xfeac66a8f3dcaa723609b06cb6f9eaa20bf92c80d74964c74b9c33c98244b328", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e": "0x6158dae7ddc9178fe4d4663769f952a6253cb5803f8bca6cd5c24791932da82d", + "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86": "0xc13e1eb4edfb4b7e5d5687f3baa0b106fbdb1c86c5ad46072b6e09cdbabe279b", + "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2": "0x0ff485223dc1d6b0463ce9ee33287642bd42dc6a2048a7cad7d4bbcadd8d9f51", + "432a52bde005a010dc32c47733e4595fea0ea04df3b5aaa1c45153a527d646f0": "0x81ac67ae2314b786980f3465eaba7a7277e0719de13e987b2f1367eadca0328d", + "a1a6465f4c2ebf244c31d80bc95c27345a3424e428c2def33eced9e90d3f701b": "0x6cf621863304d486b8c623cca492ca95cfe0d641abd288139a0495d63129f9cc", + "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46": "0xe79a652ca6e6c242a2865bf11d6b1e3ae2464b2740fcb6b627278a4565613a07", + "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4": "0xe8399d70a6d0789c961a3fb8bca2a7aa8820ac42c9f3fc9f246d7d5f513fb912", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3": "0xb419c2b26f4cec0da24a719c33fb5a503613a5a1f080fb1b29c1d00a2d477f3f", + "1021a42d623ab4fe0bf8c47fd21cc10636e39e07f91e9b2478551e137d512aaa": "0xd130d51ee53be539e71733e41899cb9d70dfdc3b53c5934dd200ed9a86767b35", + "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7": "0xbf45311362a393ab0331658ffeeb51b85fd32629643152199980f1a83a019246", + "95609d32c98a467a72ac419f2e64bb2b8dbd5b00b74f3a0fd72f42343af1743d": "0x5a2bf6e3ae4760a934ad5598459dbb398c887839614c0a596935139baaa3869e", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6": "0x8bd322a29436b44cb3cfd5268266435a7b81ddd5f46c6f651943ff57c694aae9", + "ff4c53361e36a9b837433c87d290c229e1f01aec5ef98d9f3f70953a20a629ce": "0x0190cb92736e9d7d9f4ed17b92f15473607dfeb93b93409504cf19ae6d4250db", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f": "0x4063d4b34fa78c353fe2ac708d16d95b20ad58cb89781e55665e257d7b2d0425", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d": "0x0a8c3df365d92aa5b947352371c02a555ea300359ffd37fcafcaa3c529cbab7c", + "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0": "0x7ced49286dcbc4711535d7bc10a853527854c55cd5973445b1f1c5aa81b6f49e", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b": "0x38739a5eed6d192c88ad72cdda0ff1d4420adf4dc7ad78ed254eecece1f55992", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864": "0x9a1511ffe5a1eff9d148e7ff6d440eaec96325632e67f041976ff2fd9d1b8fc9", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d": "0xa6ab98ad22e85c0b1673c3b7fe55fa454cf1d23fd8c4cf9ac85d97070872315a", + "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c": "0x15da230ea0b9de48c24067720adbe77d511be606659668b9252c72fd4f12896a", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca": "0xea6c34fc172fe57491e3bc613e13f7a5232704977d0efaa8c38fa3eafb53a190", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4": "0x757936648c89c45ae5eec993531ee5f725362070eec7394d328fcda4e5501f25", + "fa2d39b681f3cef5fa87432a8dbd05113917fffb1b6829a37395c88396522a4e": "0x42dc6d003a90a5e172673236488918908b0704f8da67ed090f96a85f6ddb0376", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae": "0x6678e6bc78d00aafa1135f9ec4813d9070a35bcd945dfdb447e784df2fd7b3e9", + "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7": "0xaec019399f0c843477d0fb85ff549595cf86a1181739a381add99d4dba298664", + "06d9fa501fd2bef47265361ca0eaf6e0a97c3b226cea5ab760240f70818581ad": "0x1d73b0ea969a4a5e3016f18b98fe477dc8c1aea8c3d1bd6353d7bdeb40f0b11b", + "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819": "0x822ecc552fc661aeb063317c23d19d702eae783ca3a7348efee141af5f777a05", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415": "0xacc9bb2c3d151d04d6c8ef6d793a5a22ddce6a4e030dbccf8eb4df79ee853356", + "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81": "0x82744f353e7b2987fc9b922a34c1ce5233ce47fb73c2805b329f4bdb47f2ca4f", + "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8": "0xe077710b5ca75178aeaa20a3190b61c7f366197222fa0b999bbda58ee92d88c4", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a": "0x3af9e87e527860d7554cc3f3d2f068c341d554d1c321280d608deaf10e620a05", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad": "0xa43c7f01106bc158770caa061354c96dc01f01a8549f6167988c9315b22fa0c4", + "9f383d612ac09c7e6ffda24deca1502fce72e0ba58ff473fea411d9727401cc1": "0xb21f8c8b67a213288b06d9f7b8d637dee468e0819a87b4109d42abe97bb0d7c4", + "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b": "0xc4b6e8fed5fdf6732aea2dbb99689eafada1beb6b8e6ad721483f7da1d9bed3c", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5": "0x03e5eab4e05ecfa1586864e99d0cf7ca041d538f3d060746186ca3e570918014", + "26852e2d0696e25e6adaad2d7ca3a1f2f15aab68d317ace14d41b4128a7e780f": "0xa3431a3f6a43dad744494ab9c05e848875044aa280bd6116ac60d9a5ac58ca75", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0": "0xb0a059f4bc5b92f2e9a8ad97d406d1d14455a7cc9dac58fff9fb475ce3e675df", + "6b701e292e0836d18a5904a08fe94534f9ab5c3d4ff37dc02c74dd0f4901944d": "0xc396eb2b9c1914c6dbfa66b7188ab5ba36688787e1ae8bf96a2c4ade9732cbb5", + "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879": "0x82bf47e2ac2597bba0f0c1775ff81cdff2bfe1d9af2a65712013cc2d614c6f94", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88": "0x30886170ff4d71398a5818940b0c2abd54b13c536c9558ed197c2f44ba2cbc35", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9": "0xd1213505a03e0c4ddc08bfc3875b03c472856f5e481b4fbcd1a18ba59d3cac07", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5": "0x3f5facfd23427362a17d5e0dca85c94098fb49bded49a2555058a352bb516a56", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c": "0x3ece052ac5c282aab98a3c43ff7d02147a8b506c3f22711f99654537aea47131", + "6e3f3fa8253588df9326580180233eb791e03b443a3ba7a1d892e73874e19a54": "0xa17792daa3e88d2825ceb249ec92c455d5f01d8fc8109779a6c79bb83846370c" +} diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json index b4f0277579..f8931e04e7 100644 --- a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.json @@ -1,257 +1,257 @@ { - "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc" : "0xf5996b8974235697a4377ee72f0d72b33af0a3d0d7f8bf01371de8f04aefb019", - "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de" : "0x468a31a8fcf6a6ce76f4ef5d77ad4722f224bb3614bb995bc5448b4ed4dd08cb", - "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec" : "0x09f9c241a955772f7c501c19e2bea11f494af923fb03f670a02b58fd9d1e3fa7", - "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3" : "0xbe758ea28f778b535afdd1ec7cc0151fdc762299369d067e57d2926fd6a0c411", - "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c" : "0xf262babe3d6634319a17a039699cffd376d471825f130473c27b8a2ed01b7b70", - "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb" : "0xe17e0790d13bdd6bbb8d4c6fe1aa925f575de1467137ff67cc8bb21be4f82450", - "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7" : "0x89da2ac3a968c67196b4c99436af867de11d547a4c44a4d44c1cfd2eb4572942", - "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d" : "0xcd50853933585de05a7ca09096291157b82fdad672150c507ee79e16ee40fc95", - "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3" : "0xe5c6c7706d30ed438f17f1c9fdd220132748f42fe0737c2415b6182e852c71f5", - "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93" : "0xb1de255d4f99b67a2287774ebf711f5dccf2be8b72e19aab3db58e9988c6a1d5", - "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3" : "0x404826a97e4f1508f3bc8ad72e21857b7be29ee8e3343aafc4cfa6108b5a9701", - "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2" : "0x9330dcc0a7e8a8b7797acc73f241a0879c3009bb546b5772acd357605a287ac8", - "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21" : "0xf401c783b5f1a2d90f7f9ce633faceb566d02ae24cd63a819b29cdca88bc04a5", - "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822" : "0x982ee8aa786fbdba580cb1939c228f1e48ac7f0ea3b85f06e13cb1dd2286d559", - "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f" : "0x78c4ac68dab994dbf7b50d53adb3abb3e9bb9fbfbcd3059fe173a44d9ac7807d", - "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba" : "0x883b2a2cd126101388a5cf02a9eae3151d950a49139234849b97615cbce0d006", - "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b" : "0xf01d98d9649b2705467a7856469285adf089ce25e7a917de06cea252ceb64b6e", - "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634" : "0x1e3fd8883572b7f36ebd2fbc36042e08beddd2dee12b15bbdb9b2c6cf9dfbec4", - "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4" : "0x01ecdb7c1c20928bd297b7896ac1786f09e61580f6096bc152c054b1a18cbaa7", - "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93" : "0x7e0c110e89ceeda0f5882cfd36a97cca7571b2730656828eb6e6e56bd34a83e2", - "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d" : "0x7dee903b1e3c3f0d5d8be2adf5ca8fbff56f1b21868277382483d4ea26b42d16", - "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161" : "0x636a825cf41bcd062ef887839e426bf5cd318a89274267f3a3187c5eaa82c440", - "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded" : "0x3c08014bac62cfa1a2ff1ea9e33733c76dfdf88dd6b521a2df74dafb4e40e42b", - "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621" : "0xf2c342e56c78118da880c82a3e6a52d652caa6022c6d43f900aa14514b542fd4", - "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993" : "0x4650ba8537ab185ecd13a7fac197512c0f3fc2a36cdfeda2fe1280f25559d994", - "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b" : "0x8562a8f8a15e2a91df46df19e797c8cf9effa3ffcfa2c3c351c18af07292610e", - "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40" : "0xd9d18665bdbbe7c02d4e082eb91113892e5a31bea3d2a69253008100f2763f71", - "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b" : "0x8983c5e9d7dc270307d0367221da6c6939b3caab8194c007ff6e5a9accf83096", - "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d" : "0xb1c7e1d88e18aa389217ae2c061f7ba1273df0d7c937517da9c6d6ee381761c1", - "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14" : "0x918ea1552f34c6e9fae85973246537931e9df31a805d66d04023878525ad55d1", - "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93" : "0xda5bec22bd593cccf402d59c0525e2117acd27bc800bf518c2cc18d8745cd415", - "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d" : "0x31b864a95f52d745e8a53b290083ba71a36a5e81991467ddb2f9120f8ae4db97", - "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62" : "0x4d65ba697e97200eaeedff8961154fac4556a87296ba002ea24bc779b0e18aff", - "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758" : "0xafc10258fcbdccca028e7461b7ac87cebd2326954282e052b6a7dee979e6d896", - "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2" : "0x237c8962ea74c9224a1832fbcea89d96f8f1672b3944a8d587d24131321f16b5", - "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048" : "0xa0ed1529d29585e65a1132fb169da986d8a71445031e9897921847300be57a71", - "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b" : "0x908a46b442bd62de6628380e69ba92de2825d7170350ecb2a9b7b5715a5bd86d", - "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7" : "0x0fc24748439a19519187376c4abd2fe5fb563b6e1b612570a6758318cf18ccc2", - "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941" : "0x423cc45cbf8048d1a30f6824b25140e7bda204b07c74dc93836dea3bbfc086c8", - "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b" : "0xca56e357358a2891854c29bce826d95f817967cdec1a97b0cb548b0dcb56bea2", - "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b" : "0x8acec888b550532f059cde0dae150f09ebbc02b8916b4160ba9c53893d2139e4", - "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c" : "0xbc452891579e57e61709a49696502645c611b4b6a6a7718bd9c3f10c91b5bbcb", - "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd" : "0x7867d6cb2c6b54dd957c3589a49b406b31174aaf85456a0fe43f2aa8be2e172f", - "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41" : "0x0cba817db8b2b98cbe4cee64a85f5978ffc948a4b57c90fb159775c59ea07082", - "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2" : "0xc264405a86f3708dd0f350cf7fa3da3186ead0970859d439ff54dd535e1aa88a", - "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2" : "0x1b4c1e31a7909a612d744830cae90de767e98e8578797a6241b25426b2e5f813", - "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7" : "0x6b26ca8f3d79978ac366b3e4f683a1dc41f8e94ca3455fe900eeaf89547e757b", - "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073" : "0x2a10d56a922e2f9ce033de90f220e91838c6785108d6746bc486cc15e656bcef", - "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a" : "0xfb5506c107ff4fef5cb92a6155287d3a471033a917faeedd0e587d9aa7ef84bc", - "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f" : "0x399775dc115c12493a87f00639f75b81fe5d805d7c2755a414f987e22c82685b", - "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc" : "0xe9cfa1bd48561aa92989e0a9f4ac77a79b13e52cd069a6357e7cec402e6e55b9", - "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417" : "0xb8ac8a03187d6389e5e7f6ceea521907a39c36244288399a1b56a8a858069d06", - "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f" : "0x96f12b9a2fd0f3b7e2f2e2b83e94dd418578faff9faa55769f8be8a29f5d0c03", - "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281" : "0xfd131276f29f0c06cb6a10b722c51205f5e747d0fbcdeaf076e83884b5c6bfc1", - "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984" : "0xd35141db9b2abcd6d70ca85971cb6f521e3ea11201ab235d890fb4e76145e9eb", - "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21" : "0x6f9c50a90ac8cd4cd8c8d85f6087bdd1d9672f2f1391f41becef57a0ed7d08a0", - "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced" : "0x23d6bb815ba6fd8a253f4b6e131edbcb4806fccfd7a56504838df15fc7d787b6", - "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66" : "0xef5ab3697891cc165c6cd20b196cac869a94b77160094682e9733db86e70bcc4", - "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808" : "0x79b965734280ae5b01f2d6cdfbf2767edab6e252b4e1a18e168dd12e95f57031", - "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c" : "0xd34b9b1b585331425215fd4171c624d924cc39fbb36eae1bc9603ce9fc3ca179", - "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87" : "0x62ac8e19e857385acbefa20f03754701ee3e6637faf6fb2bcc89d65fb30d1751", - "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154" : "0xbdba3b8dec7df05b2bac446c2e2ee17418380b378cdff6855aa2b954234a3338", - "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb" : "0x7a01f49e21a818e6ed88003f1556a631154df4cedcc0d20b5f658d159c45d811", - "c8dc7dbfae6aa1a1f0feccefb1fb82fc38ba18d1d0d62380272d53a879c1df87" : "0x6b239316abeef5bea30ae7ebb29eaaf369d579320d38df4600f2983d8099cf75", - "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f" : "0xf7e3e52a9776b1f493733bea865c198ba132f72397c533f8e73961aa4081d7c8", - "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776" : "0x5d62dec8e12acd5b4f9d5f9efb078e6938a6f589d71e3d9f97e11166c6e6ffe5", - "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6" : "0x8deeebad0a8fb86d97e6ad396cc84639da5a52ae4bbc91c78eb7abbf3e641ed6", - "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b" : "0x842cae287035c8ad3f52d8c60026258d20c8b0745b0ff281e1c39b41d54bdff7", - "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748" : "0x2729ec0aae7725841ebacb17d9e15fdaa9a2e9bf4dfc9d7f72505ca9eb75a25b", - "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d" : "0x60700d5c1d06b7c9883e89e814d00bc84a9c01c1d3c58ef280aa1790032c73fe", - "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359" : "0xa58f8cb2568ed9551a5366a6fb58521de293467573ba87481b17cfea4517a2a8", - "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02" : "0x0ab2e2284368154154da1fa9547beb807c685764cc321296ee62e65bbe3401b4", - "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c" : "0x65571662502efaad1053c5af7afad896c887d3e1567587160ce70cccf90712f6", - "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593" : "0x1797e2e4b67be85c6a36140b47226489f6ceafa1ba33b523955693b0215860b8", - "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc" : "0xd978870fedf1bdd6556a132367e561fd4ac27ac099c094bce5c69ae1c55eac12", - "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8" : "0xf6cf3acedaa81dfecd8a17e75131ffa9a0f1dda667027a0ad99b7bf5eb7c90ec", - "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6" : "0xd868be5e92e8973c19be2ebb108dedb766426b408b5cc3a90c8632c8e531f42e", - "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588" : "0x83f74b8a33b540cbf1edd24e219eac1215d1668a711ca2be3aa5d703763f91db", - "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e" : "0xcbb204d5b4fe29a49b4f811ca44a776332d04d53211b33e5fa88cdc91348b03f", - "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed" : "0xec8dd420650be78822aa7a2a0d07f742e6b2b390c0c12618d242330ecc5bd020", - "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef" : "0x8c80d4741f04dc10575200db6a8d5251ee86ea3fe3c5e6f596585980dd3bdb0a", - "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7" : "0xaaa937715e069809d842f57c79fb581ac1c35318ab997f7d0a38e1512845cba2", - "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3" : "0x0c61dffeb1155b9f9251da0f2435b492035661f572c8efaad6ef248ceffe7f47", - "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2" : "0x0033075915c2e7727a3a37fac9cec79b79fca2c7ea6bcb5814c1e693e01504a5", - "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4" : "0x26bd64bcdd1f00c71fd72dbd242e9ef8fd177efa6943a3287f5bbb2f83a5adca", - "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96" : "0x82b64c9e05b319fdc306edfa8c1d8ae9b13b5afe36068fb690cda5339d3587c0", - "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477" : "0xcffbfb439213a88f3d81c328b0df66386065d1529cd16401c61686626b9f4e67", - "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e" : "0xc14ee4db2d69756ea52e3269c73c0ca37e0a2e96d00d462ba0c5484e500c0b46", - "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e" : "0x81435205c81062bdd9b85f36b21d205e9c5daa1eca402319a318194cbec16579", - "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f" : "0x2d91ae83f1f2e6e8af0f6385576c0b9c398d51da5b3967f6023a60384edd95da", - "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860" : "0x4f6e1ab1a4229371eae4c5414340a0a02ebd9086e6c9298b9b7fb31ffa8dc109", - "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c" : "0x50c10911fb187e3f98fc78a4ed4db4b711d0072a79eb8f667f4a23086f7c665d", - "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae" : "0xa40c73e07a7ec37d4875608d8e45f1f0e8442d43870e5e56bbc46cff780646f7", - "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f" : "0x3cceeb37ee659740416b631411ecaac0e0d6667c9df22ce4a8d31f876448b780", - "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9" : "0x43e3458bd0b9898748ae5edb70a2509062e833eb8e385cc322550b594753299d", - "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62" : "0x53444a99bcec74c6c440618d74a6cd7d2277abc10a416c01e6d4f27a295f45b7", - "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7" : "0x7e81ed4d6d912698af2e545d9fe57e9aa0a5d748aa44b0dbad40323fa5a9d7b7", - "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa" : "0x205941d6872a044c515eaa15e0397fde2575f8f2692bb170b870995933d4d566", - "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73" : "0x94fd34377d7289e39db87a037da1faf759993e68b2725e3f7e0763f398b8823b", - "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075" : "0x2d917a01ec367746036120e0755abba9d58134ebf51459d986b8c38e100b3e95", - "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97" : "0x2bc73cebf9fedd912da4c7549711e6f1f5c33911b826e324d504633df5cfc11e", - "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a" : "0x148ae102b370ab2829a5ba631a41b2f35c3b577943cadeef4f7cc3c0ef66931b", - "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b" : "0xe08d8bf5deb618e98767e3ab0725658b211f6a431f7bf90a99454d1990b74c8b", - "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8" : "0x26c282717cd2bd14382334b5e0c1e9673f07d20ed4f235709799b98db2fe7eb2", - "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a" : "0x2252f4b562ff74b5b91e4cebc847f665926f18a50e88309049bf0fe3a426684a", - "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964" : "0x48c7bfa8f5df2ba3e4803042ab29e12108c2f968feb1fc3cd151efc271441800", - "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3" : "0x17a5c349b2128161bedb03cf18ade9478c848c8273746672de2faf693a359462", - "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12" : "0x8c146e162befeb3a16a8dc7013cd1a7e6c660ad66dd3a2be0321ccdc43be401b", - "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994" : "0xf7b474ed1f88e1a19c4a456741efbbd14dc1a6f714ca255b896d849ca63f8d85", - "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5" : "0xd00ed0263d990dc3951d3e69417f766215390ab8c31c6afb5a6b4e7b352e0359", - "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f" : "0xec2f948cdd785afe254da2ea2cff9ba4fc3618feb98f1e8984fcef3a38973f5d", - "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e" : "0x6b8bb2345c93edd12e24c0ee872ee1887520dc70d2860b4814cdc4a312da3539", - "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1" : "0xba54141a7d008ca3b0209086b2a74a924e4515c4d9cc402ef0710369d58b1d77", - "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a" : "0x42ea1d6faf9dbd0ad333fdc4edd8d7f869760550e46712276e92e594249f6022", - "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f" : "0xf57f9d70002978eaa8faa34961853e9c3c2599bc0ddfdf6556de6b63e19967ec", - "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b" : "0xcc31caf6d68d16f4b67fdc29759ad5faf0e9c9e1b7740ac526995120caf408f7", - "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7" : "0x14f2533e42047dab1d78606a6022a592badda57ef90de248d042e1d671b7bd1d", - "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165" : "0xf967fe96dfaf3a432c9a2c28ce58cb1ba6705f8f513f37a1f4c30e6c58392fad", - "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3" : "0xe14beebb2fa067e6d968b0260f3a2682974d2e95cca59ab22c2d87aeb7c1a684", - "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a" : "0x75fc46cacfff24618425e33e676eca82a53c8621d49a1e571152848e88165001", - "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378" : "0x5f24fa9fbb024530efa1863e4ca8512aef979ad3b6c55d0f83e796fb7b5c2c57", - "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063" : "0xe5533e0240746637bf7378762b73386c066be2685e69482f7ee0be9720af3707", - "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606" : "0xc118cd104e49d5a078de7bea4df563c9690361fc386a6355fa16493f9b3d2428", - "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e" : "0xa4ddf29c1ca9ce6c91deb7f6670a099cb805bee36e5c81a083a338a1fc2309ec", - "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106" : "0xf72df1e04ae66e867905ea85926b1fc2f6d5c27f693556c73ce6ab5aee41cb18", - "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b" : "0x9649396a34a3512a5857cefa88438cf0d20f285129cc294dc7e34df19dc144cf", - "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27" : "0x1778f5984a6b7fb0a5bc9c4cd1a4c49d80c435ac9d8b8803a7a9a73f3e04cb47", - "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f" : "0x77be008245b2aa79727e58d8ae6f5ccd4343e733d957dacf0d367d33005d5069", - "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d" : "0x7ba922ad95ee90d420967270c1cd73a08c7aa37084fba8bec09a5f12c14128d4", - "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b" : "0x878b118488aeb5763b5f191675c3739a844ce132cb98150a465d9407d7971e7c", - "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b" : "0x458aca93edac2be9d1436fb79752c0f70e8135e6d06785877cc908577f7fc9aa", - "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321" : "0xe34ccbcc04337e3ce8254d5e86bc81877340eaf23f65bd31a082e07878227370", - "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857" : "0x3cc0806cc504a226f72b3948bd6b98148a711a449275f6834db8010d980e6018", - "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6" : "0x653f8898d016404a7d0d3571e08e4c4ce4afcc9901000902511c4751b0974276", - "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4" : "0xe6f360ddd91846882306f7384cd4c5f189242e305d1d3c0288dfc0caad8aab24", - "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b" : "0xfb898b057da6dafdec62996b467d6099f56aa83064421a95d726da551a944a63", - "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb" : "0xdb651773fa581d634eb1da3428e9c6134ae49ec4b21bd121e1a19c3b8d8965b8", - "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51" : "0x05534285c3de57bc7325a78f8d5b86a46bf92b359eccb3bdda705b21679592ef", - "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a" : "0x1ac1cf671ee24c9c5f41e1b5104c7b1b5867045188f3f9ef4e681acad8928423", - "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb" : "0x7616c58d12093a270b23b5c025964e2f901df2c5d68e42c4a8d7b0122b6e750f", - "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28" : "0xd0efce1fce188727cefeffb86b92c188db5ea76be40119d83acb4db7ce089e60", - "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d" : "0x3a655de45af792c6639a20df1316b5c06f78ba75ed1396782a8eab6d0d7cf8bd", - "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad" : "0x4a0694781fffce08c62b8224b234892051fc36b0f2045dea9665d8eb1a751c3f", - "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d" : "0x1867a4c85ae311ca4e58ed90620126f3e482bad005ffba5f6c64d17375724c37", - "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8" : "0xc6f2080be22bd6882fa2b70652dab7851e4687bd2aae1945f1cc4847827f1b36", - "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519" : "0x2772683de992975462c42828b84e393714b6a78a40ce8e61b7e32a4c300bb219", - "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033" : "0x43a6ae10a64d72f1f7a317c6c03e81833044dec465eb30906bd469504d2b34ed", - "9ff9aca7ac05dd6725aa169e643c82a34d9061eaead7bb759192cf784bcb20af" : "0xc6e482cf2bcbfe58db19cf69c2eec1d5d1b022323a122b1f3c0e75f38174dac5", - "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d" : "0xa21f066c758a3b9b851ae5e3f9bc129016861ca9cff0d480f4614d8753da517e", - "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2" : "0xa3bc043410a28bd10d215fa26178e7a4ba244d0e0ccc44e8de733941c948edb5", - "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32" : "0xeab5cd103be92c4910e9c0292a9ca261f85d9dd94117aadeacefdef89288bf7f", - "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5" : "0x31644447ebda1a4675b65069f388323605cfbcfd69e1d3b4d65aed494614af7f", - "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883" : "0xd319e620fec988e65b9d90c07f70929a41853ab3c6968d20c148bcb132fc6125", - "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967" : "0x9fe95add3cb2c5938fadee0edf68c149db32eeba0d3c5e199dc83b79f2e26368", - "e76e307abc63a0fe6a6cd8bec83a23997aae27b5a91459c3d73b2cf20abf7430" : "0x7e1a3b0cec8f1dee42677df80f874794c7b82f6fd1ca5fc76933bf255192138f", - "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a" : "0x86f8246cd3ba5cc1800b411b7c4cf9460cfc001c97cfbc85c9d00e811165d8f8", - "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376" : "0x179b42c9f4437584c2a737bc8f712cdcfa086a9ac86c6cd96db7f71acc89ae5e", - "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd" : "0xc3503d22451ba076dd16a95f00f04262b393b67ee6257166e88a44cfff36add1", - "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd" : "0xc7df744604631d00eea094315f373d395ff6257e02810e79133d2e57f666f777", - "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66" : "0xaa538d809c4b353e728f7103e71fae1cdba21b45deaae03a7f732727d4dbe333", - "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08" : "0xb2fc3c3a0ac814a6afcf30632b707c8768a158d8e542e5e6373a27cdf49a9152", - "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc" : "0x89d6292d07700792d4832e8fdb99341cdbfc26c16fee6b2f7fb2129a68c50157", - "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8" : "0x044d2f5f48feb658fc35079218e1bd6c9095bf9a18d2b7b314bb42ab0b280959", - "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e" : "0x2daf6162f57e537acf768a62ae309c76927418310828cb36b9ec9fbedf32b694", - "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c" : "0xb9bc8172917eb965cd237c5475338987bee85f84cd430ff0391a3fadb095ece9", - "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530" : "0xe391e53759c2fc88f6afd2bb8c2228d7dd5e876039b815d36783957b8d152f59", - "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206" : "0xf0d722faa995161446003813d80e42bee58d280bfe605c67be73204178cb29c3", - "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256" : "0xb6a2ee12503ed480af6e3e35e5a1386f8a4f984a5573171181035998b1d49ea7", - "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e" : "0x7daaf3ef2a6a7cb41c7ba2d6e21f4067c1ff8c350a5a16618797c8375a36aec0", - "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d" : "0x971cdd72055ba77d2502e92a94065cad8132cad85094b062b26f933c6e3e0918", - "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98" : "0x89d0130e5a54a3d989e4db8a33df0683272ed58d694a3118c9d406ba8033a157", - "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7" : "0xe26ac038f1b4b826a43a3c20968864f2161a7c9bf66374a2b19429caa07800b2", - "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0" : "0x2c629bbfdf1b123708632bc580669e83961347fe1ed4ff3e4e6ab7b861168b2a", - "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b" : "0x421e2527cbd209cc95a003d81a2c349f924ccb3486ed5a7d8a7c6c38579613b6", - "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e" : "0x42c3cc1cba7885dc839c184470529fdb771a7d901cacb19b465fef1ccb0b38eb", - "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29" : "0x53f8fd11d804d3fe0b9833970b5e58fa10fc5481c0bddf1ba5be9a238b62ae50", - "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86" : "0x4876754400e8fdeb3afd96149a835bb399a7bb0141a5184d24cf2c2697899012", - "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb" : "0xeeb6cd07cc041f3e4db3ba60f4be3da007e7b85a05ae5ed62d95d5a6d8b4cb26", - "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318" : "0xbc36856768ba251c016afb693ae53892a5c9e8a81f11102d5436d7522ed7cd59", - "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679" : "0xba3daaf7242d8728886fcf3285cb34edaa6a459f34db2bf8c67a656642a98987", - "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8" : "0xccc30a5a8e61a34a69d17cf02cc5ced1acddc1233f5a799475e292f445d4cfeb", - "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412" : "0x5ab23f2d2adf4d361fc70ec11d5de7c033e8874c67b70fdd244b5e531006efa6", - "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f" : "0xe496f16e06b01b38d0c301a89791a8afe91dc7ebad3d491494ac712714cf7f69", - "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca" : "0x81441dae866ff6312b15e2ea7666340452b47bd8f7d649f88d9f79d589a91625", - "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73" : "0xf1def1e87af46f7c0b08bdc36bb79cd3efd985ef6dc5c00e83a423cb71914915", - "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880" : "0xf2e64772c74f0cd9914c72163b876cdc7a6ec4bf88ab4563a6dfa486d9f05a9b", - "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064" : "0xcbf811cefbb833787439efd97f216d449d46fac105e097da1480f893139fff01", - "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd" : "0x10e40dfeb665f93b94888eecdf8d433c8b60d70cc23aaadc49f83cc7f77f9682", - "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e" : "0xe23570acfd7fba7ca5b1de1dfa98f27b393d3dafb77aefa12302440fa42705ef", - "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff" : "0xc0500c66f940b8ffb98ac9853a75ae7cb31f8056e46b204a4d898d765c2e2636", - "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204" : "0x6e3b3ef27cfdf0e0e164e5b7942e13f1566b62dcbc2dc66fd75f6640209f5b09", - "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266" : "0xe38dbe2ff3322f1500fff45d0046101f371eebce47c067c5e9233248c4878c28", - "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad" : "0x54944f2a1ceb659e05b666afcf5f39cdd7ffce6aeac6ea5f791c32d6c509eaca", - "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130" : "0xa8fdfdaba5e406455941bee7758b3507e953d84c3e39cf910f73e94fab9a72e0", - "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e" : "0xdd187aa48166150844ea07d1c1a5d488dc8bf51c90789ccede850bcd8a89b4a7", - "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97" : "0xe6b00a9c2678bbf2c007da6efa62e9244df645b17ecb34fa647dacc18fa9368e", - "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15" : "0x682730eb45da1f7d800bf88e6e787f4632510ad31b20b2e54b2ff7dd19c0dc68", - "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431" : "0x14414075fbdf322bac60e4a3adce400188e8fb75c423e62aca185ad5caf724d8", - "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c" : "0xc8f0da49081b7757d029bef22a72a415ec8283125f7ed3343c965dcdb452e3ad", - "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183" : "0x7555bad22d085eb34a463e39abf9a9bc8a1b229a8d66c5d26738c44140488d7a", - "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722" : "0xa3d3e81bd7e890ac189b3f581b511f89333b94f445c914c983057e1ac09ff296", - "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c" : "0x522040b312a2e896b3f8508824aa7dd905afbc0a77d5185c094ec1943bc4aa03", - "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9" : "0x4229b0629ac127ce244e441d068516e851390af2209ef17a9f9db9d27a951661", - "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4" : "0xbafe17e1ee4cc3b4a5f388147e8c8b0e3c09b1eaf88f5ad3e7a3999745db51d5", - "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a" : "0x8cf01ad0e42c1dee0195791abf2c583f906d2fe61613b79faad1dc203fd9a47e", - "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0" : "0xc807978d4cafb73b36ff068dc928ea73c27daeda55feb4ea863128a78016eabe", - "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea" : "0x93e1e216f6cf99f4b22268f90add290728365828f31b2f7e9af70fb519abcf2c", - "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5" : "0xdd40524fe7a7018d435189aefc42e59e0ef7de18ed6726eb5419b00c2fc5d7f5", - "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24" : "0xb609906923a78563d5349efc5908b5b38af66e1c22749f29e5061cb3aa786fc5", - "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f" : "0x84b440b3e00dad051cb4c1100f59967346bff85df4e04a80b78b62fd523bd711", - "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9" : "0xe6eeda2c10e9d01df3ac0ad2a6f61347207a1bb9357d945b3121180ff6c1b882", - "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494" : "0x747d6bdc8c4555791b60cbfd3b281a008c80fdf9a72514c8ed00e9df98fba824", - "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137" : "0x6e0016d3d81f17335d783a9200a7f756a40be519e21f39305670bb5fa8ddae1f", - "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc" : "0x1e6970d2855cad166fef9ceae16b18fe9dfeb0b5f7454d9cbc34f94307eadf65", - "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a" : "0xec0e80df69fcaaa4fda31d3affd2a45e1347bfd8501155e5344e1cc4453e1a89", - "e4973bd7bb2b8b78dd63af491582952e28f642a5b26cb2455826e201ae762bf7" : "0x9d8dc23f2d902c5d75a57798c88fbd155efde61628ccc158e38ec423f4d37cbe", - "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832" : "0x36a954c1e0b1f3337ff3dc7abc503cddd6a89f2882a8c7e6778bde1014222410", - "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6" : "0x63bb94f378e9da05a978ad86dbd2c2b0a90b5ff984c490f314263590a4ed1a8f", - "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf" : "0xcb2398bba51417baf9205dcf80089004df5e99760dfba339471a989968efea1f", - "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d" : "0x45ce4df5e11184148840dd4172e81c4dd9cf7659bd1bd90adb08bf14ff6bcaf7", - "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749" : "0x3e33844f2c04264a5107757c6755d8f983bb379c8a9b02d8cc83bdeafdba24f2", - "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8" : "0x90e6ed8e56dae1c82de811cc27f0b13ea9efb3db144571a6ad4df1111315017e", - "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2" : "0xadde49269a920699d9a8a836d3fcee4f73924412439bc59fd4591386524a13c4", - "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd" : "0xee69ba2bf6015544a19103d7a9af681145af1447e12257072b6dab4533b64ace", - "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6" : "0xc14f8c30ec8183a8fa7f943855b3ff5f99d9a56f05d885be4f037d9c9c00190e", - "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999" : "0xd71b552c791317a6dfbb7425e62d918ce085b22ad85436e39a2b30b5dcc59216", - "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f" : "0x9b0adbf1bdbfbbd49518257d77191b14183b123d88b25f9bcfdb109680cfa581", - "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421" : "0xb8f730f1671d22f0acec5091fabecc9243a61caae31811aff826d53775216607", - "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937" : "0xd7748cc976c1bc26517a96459510b9ddca510ac7fdeb7826b3dfa252d99f7dee", - "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c" : "0x530b16f0a67896df55e3b1d9e3be8c0d63b3a62a4060cc11564e18ada11f404a", - "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a" : "0x479edf6d61f313fc14cf30bca09903858c0aa4001da40a2efbf8a330a3d877d2", - "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02" : "0xfebee46b92fc7f3ff1d24810d21838c04c2101235ace578662f0abbc60095b96", - "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb" : "0x6eafcea4d987f66b5351e52969671be4125ae4b47ac4f4f9f4921755929378da", - "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1" : "0x6d4d4894a3700826470f6874b3dc03d4ad102413103a3eb538d633df0ae1bd40", - "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f" : "0x6fc10ab93a8b01ffae22c23df5e5e36fe43202b097896e0d5a5eec416015e3b2", - "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7" : "0xecb5dcc7d4f2ab012b7806ceeeb8d73d431d38c49138344e858859a8d22145b6", - "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee" : "0x0e5a839e30211af31d2f14a248cf13315a91780d94854852e7abdaa92e3524d5", - "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea" : "0xd349b7f5709c32fb26c66d871c8c3d090ef38da5c04b06cf66a3e7098c62c2b5", - "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280" : "0x5f1f0434a5b12e1b6db4a66d4c0025b0c78cb75c84ffbebab9bb1a8fc539662c", - "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919" : "0x38c6156c6fa6e10af65a6e2914a26c45c354e7a9e454f32b520a590645582049", - "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd" : "0x5786d9f296510374e8ed7caacdf744ec1762bffd0c965d328174b5766b282e89", - "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192" : "0x4f2ddabd1c080f648eea58ea2d366c5b3534ef04fa682138b5e4c381fafce554", - "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021" : "0x6bd387f9d95de741951b14040d12de71ed2e1fed271c1bb9e74fd60c970f4dc1", - "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193" : "0x0e5142ee8aa6ecbfdd1aff1cd2dd4ed2924e8f6bc47f9e10f43670a2e731078e", - "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5" : "0xf9716b158a3a75539db8fccbecece70e65180bfb5c6683a08b85c2c7f02fc9d2", - "013317758a5b499650d72edcd7ba12bb5cc54ce9434196b607fa5e01e0f7797b" : "0x282c6815b611f597a91c7c62e6c5525c0862093ed9a4b9593dd090b66ed66b66", - "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e" : "0xa2eb0374ae620d124a4a775e9581f83cf24872ea484e8cb4434285e2a7e282d7", - "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1" : "0xa98d791ab2667e8d7d4be4237fd07d34e42a1fba3da615a010bdc94dc2c86237", - "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb" : "0x9c733771ddc9bdb9ba8ab434ae246281d1072b8dede53a3920884de3422ccb01", - "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d" : "0x3407ac8bfc0505c91170a8782c558a31c3a29b0cf7d0faabf3554cd9150fe46c", - "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590" : "0xf558b0dc5a32eff95c23f860ebe3d89cc2121707491af1943d010d32aa4bbf61", - "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f" : "0xdef745e8e47fb7f2c0b5077442bddd432e4af561206b873c37e90ea60cf1dafe", - "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b" : "0x6cb16f3675cb95170510500e710b129f30488f64e257f734690d314977d9b832", - "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd" : "0xd2e91fee3891b0753adf51c58678ba7a10c95dc6de7b04108adc7370ea767831", - "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538" : "0xb547518ab51ea2a729ece0fed40712dfaf0ed8fbdedcc92370833cbfec3c292d" -} \ No newline at end of file + "f22b3440dc6ff5cc08ef498d434f7e72563bd49d013a8ae8c26199d871ded7fc": "0xf5996b8974235697a4377ee72f0d72b33af0a3d0d7f8bf01371de8f04aefb019", + "30029479598797290e3638a1712c29bde2367d0eca794f778b25b5a472f192de": "0x468a31a8fcf6a6ce76f4ef5d77ad4722f224bb3614bb995bc5448b4ed4dd08cb", + "f9917668f24038a383e51c0b019f5d9645d6785c6bf9a0d48483edf82ba5caec": "0x09f9c241a955772f7c501c19e2bea11f494af923fb03f670a02b58fd9d1e3fa7", + "69b9ca2e7159fe570844c22bac849c490e0ddfd0349626c19fd7d65509e192a3": "0xbe758ea28f778b535afdd1ec7cc0151fdc762299369d067e57d2926fd6a0c411", + "bc00d79f11e851e9763b0951338474dd423f40f51ef6a24d2b0806f341382b0c": "0xf262babe3d6634319a17a039699cffd376d471825f130473c27b8a2ed01b7b70", + "aa67a6594d0e1578faa3bba80bec5b31e461b945e4fbab59eeab38ece09335fb": "0xe17e0790d13bdd6bbb8d4c6fe1aa925f575de1467137ff67cc8bb21be4f82450", + "881768fdbacd7a32ddaf4e67b20cb391380a88f795d8a373127c6cc66997f0c7": "0x89da2ac3a968c67196b4c99436af867de11d547a4c44a4d44c1cfd2eb4572942", + "abb1a3382ab1c96282e4ee8c847acc0efdb35f0564924b35f3246e8f401b2a3d": "0xcd50853933585de05a7ca09096291157b82fdad672150c507ee79e16ee40fc95", + "2d9315a88f3019f8efa88dfe9c0f0843712da0bac814461e27733f6b83eb51b3": "0xe5c6c7706d30ed438f17f1c9fdd220132748f42fe0737c2415b6182e852c71f5", + "be2c316abe4133b60602db548a0cc9045c533bedc7759df98cf3a9274c5c6f93": "0xb1de255d4f99b67a2287774ebf711f5dccf2be8b72e19aab3db58e9988c6a1d5", + "6cd5c99c6d86df928b0562f26617ddef400818f8907391f3087965e6b786b0b3": "0x404826a97e4f1508f3bc8ad72e21857b7be29ee8e3343aafc4cfa6108b5a9701", + "ba1a0a0c4bcfc4715e3bcd5e452346a4cfa6234a3decf51f123aeccf89bbf9c2": "0x9330dcc0a7e8a8b7797acc73f241a0879c3009bb546b5772acd357605a287ac8", + "0d10b9ccdc9af1d65cd4bafabf4e34db01c0ce83abba190230eaf26d7592cd21": "0xf401c783b5f1a2d90f7f9ce633faceb566d02ae24cd63a819b29cdca88bc04a5", + "0c3826f245b9a00d75b115c5209bd9d98902676b924d92537cb4d3d1b5849822": "0x982ee8aa786fbdba580cb1939c228f1e48ac7f0ea3b85f06e13cb1dd2286d559", + "6058b804017a18cfcd598b290519a03331fd0b28aa1f1595f3b9dae7ee6a418f": "0x78c4ac68dab994dbf7b50d53adb3abb3e9bb9fbfbcd3059fe173a44d9ac7807d", + "27e2caf78dffd46696e9d7bc6583d1a1add9a3ed4d5aaa9b90fddf049ca492ba": "0x883b2a2cd126101388a5cf02a9eae3151d950a49139234849b97615cbce0d006", + "4f7d1135da944054f61277c0dbc056572f84226619c0fb3ed741262eec90a57b": "0xf01d98d9649b2705467a7856469285adf089ce25e7a917de06cea252ceb64b6e", + "f3295ef1efc8cb94518faade282e294e718dc65a03aa3b7912b894e61e0a6634": "0x1e3fd8883572b7f36ebd2fbc36042e08beddd2dee12b15bbdb9b2c6cf9dfbec4", + "2249a93e67085c7878bf42e26888bc817788d64654f42c9a3d6a0cb3fe66bfc4": "0x01ecdb7c1c20928bd297b7896ac1786f09e61580f6096bc152c054b1a18cbaa7", + "be91a2abdead0f4f22f0449fc58f243d514b6ff3f08b7e61758a5481716f0d93": "0x7e0c110e89ceeda0f5882cfd36a97cca7571b2730656828eb6e6e56bd34a83e2", + "be2dbc97659e92bf07462aeda414195246515e6b17abd6997f0ab2297cb03e1d": "0x7dee903b1e3c3f0d5d8be2adf5ca8fbff56f1b21868277382483d4ea26b42d16", + "0d66aae904c7d457ed92c5d933e7d25ecb2b1e285b1be6a4e8520e38bc296161": "0x636a825cf41bcd062ef887839e426bf5cd318a89274267f3a3187c5eaa82c440", + "2fbbfed77003411f75ccb824c8996854984565867bfc8263a36f2f86795ecded": "0x3c08014bac62cfa1a2ff1ea9e33733c76dfdf88dd6b521a2df74dafb4e40e42b", + "bfaf7739cb6fe3e1c57a0ac08e1d931e9e6062d476fa57804e165ab572b5b621": "0xf2c342e56c78118da880c82a3e6a52d652caa6022c6d43f900aa14514b542fd4", + "01f64be1849d432ddf6164c6bcf4ec8635db12aaa76132b2291561ffd6a29993": "0x4650ba8537ab185ecd13a7fac197512c0f3fc2a36cdfeda2fe1280f25559d994", + "672fbb7d9ec665cfbe8c2ffa643ba321a047b7a72d7b6d7c3d8fb120fc40954b": "0x8562a8f8a15e2a91df46df19e797c8cf9effa3ffcfa2c3c351c18af07292610e", + "cd69843b4eb5c5207dafbe82e2b08fb64107a56d2fa026cf260c6d5b8ae67a40": "0xd9d18665bdbbe7c02d4e082eb91113892e5a31bea3d2a69253008100f2763f71", + "a29b53fbc56604ef1f2b65e89e48b0f09bb77b3fb890f4c70ee8cbd68a12a94b": "0x8983c5e9d7dc270307d0367221da6c6939b3caab8194c007ff6e5a9accf83096", + "db64d42241ffd0c16169e759ddce05cd4d15607197ebc0f5b8402ab813c7439d": "0xb1c7e1d88e18aa389217ae2c061f7ba1273df0d7c937517da9c6d6ee381761c1", + "40f63777ba678d5c2c7c69c4ad9daeb867d274bc785c5ada2c84b8613eeb5e14": "0x918ea1552f34c6e9fae85973246537931e9df31a805d66d04023878525ad55d1", + "0e9ec6a3f2fba0a3df73db71c84d736b8fc1970577639c9456a2fee0c8f66d93": "0xda5bec22bd593cccf402d59c0525e2117acd27bc800bf518c2cc18d8745cd415", + "c15af424d245edeee0ec072dc94c639443b2ae4bb0ac1204e3ca4802f311960d": "0x31b864a95f52d745e8a53b290083ba71a36a5e81991467ddb2f9120f8ae4db97", + "1e761bb4e6b1e4d7899b618d389516ddbdfbdb858018b71c45cb6ade57c96f62": "0x4d65ba697e97200eaeedff8961154fac4556a87296ba002ea24bc779b0e18aff", + "99137a18354efa7fb6840889d059fdb04c46a6ce21be97ab60d9ad93e91ac758": "0xafc10258fcbdccca028e7461b7ac87cebd2326954282e052b6a7dee979e6d896", + "73dc009953c83c944690037ea477df627657f45c14f16ad3a61089c5a3f9f4f2": "0x237c8962ea74c9224a1832fbcea89d96f8f1672b3944a8d587d24131321f16b5", + "e4c07b0c5f658b740dfebc0502b1374037abbccb44cb5a5d6002ddaeddf57048": "0xa0ed1529d29585e65a1132fb169da986d8a71445031e9897921847300be57a71", + "39786301f95a366bcb8538fa0d2a449ac904be84c7069b9181cbf647799d657b": "0x908a46b442bd62de6628380e69ba92de2825d7170350ecb2a9b7b5715a5bd86d", + "4e10201a9ad79892f1b4e9a468908f061f330272c7987ddc6506a254f77becd7": "0x0fc24748439a19519187376c4abd2fe5fb563b6e1b612570a6758318cf18ccc2", + "d5b3be475e19733cedadd74fc619372b553745eab050b935af6a331d29354941": "0x423cc45cbf8048d1a30f6824b25140e7bda204b07c74dc93836dea3bbfc086c8", + "341d9502b1e6bc445036fd76f57bc824c09254a754289878b52a40eb067d2a0b": "0xca56e357358a2891854c29bce826d95f817967cdec1a97b0cb548b0dcb56bea2", + "80e17c0e489956493ed84e4af202031c38cb7d310c5f154134cd0ff39ac6101b": "0x8acec888b550532f059cde0dae150f09ebbc02b8916b4160ba9c53893d2139e4", + "026d1f1cf9f1c0ee92eb55696d3bd2393075b611c4f468ae5b967175edc4c25c": "0xbc452891579e57e61709a49696502645c611b4b6a6a7718bd9c3f10c91b5bbcb", + "fe650f0367d4a7ef9815a593ea15d36593f0643aaaf0149bb04be67ab851decd": "0x7867d6cb2c6b54dd957c3589a49b406b31174aaf85456a0fe43f2aa8be2e172f", + "587a8fcb91ffb1e7325ca5ea83633271467a7d277a442ff3cb38e981b1eacb41": "0x0cba817db8b2b98cbe4cee64a85f5978ffc948a4b57c90fb159775c59ea07082", + "6de025a4cf28124f8ea6cb8085f860096dbc36d9c40002e221fc449337e065b2": "0xc264405a86f3708dd0f350cf7fa3da3186ead0970859d439ff54dd535e1aa88a", + "0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2": "0x1b4c1e31a7909a612d744830cae90de767e98e8578797a6241b25426b2e5f813", + "1bd1c59cd425aebf8a931c1b2a902b9a11e7d18dc68021e4a35a5cf24220a6c7": "0x6b26ca8f3d79978ac366b3e4f683a1dc41f8e94ca3455fe900eeaf89547e757b", + "b5b88d45d3053431b7c49031e7a4c3de19bf2159dc7502e69d582ffe183d6073": "0x2a10d56a922e2f9ce033de90f220e91838c6785108d6746bc486cc15e656bcef", + "2657bb1e7a13f1a05887a627c0f191c839aac10924a3396c03abe7d30fbff27a": "0xfb5506c107ff4fef5cb92a6155287d3a471033a917faeedd0e587d9aa7ef84bc", + "095e126b86f4f416a21da0c44b997a379e8647514a1b78204ca0a6267801d00f": "0x399775dc115c12493a87f00639f75b81fe5d805d7c2755a414f987e22c82685b", + "54f2d4037e28936b53732671ecdc73678257fb55674d82b3a4a15b70bf0a68dc": "0xe9cfa1bd48561aa92989e0a9f4ac77a79b13e52cd069a6357e7cec402e6e55b9", + "14622e51d74bc9eae2b1fb640903c986b5d64d169727710fd90cc9e4a425a417": "0xb8ac8a03187d6389e5e7f6ceea521907a39c36244288399a1b56a8a858069d06", + "4d0c5744a741196b5c2ff74b8f3bde242407f2ffb40104347dcff3421eaea07f": "0x96f12b9a2fd0f3b7e2f2e2b83e94dd418578faff9faa55769f8be8a29f5d0c03", + "0cf3cc70e1449323c5b2c359d1359fe7ac68109e9e927e090ecd71611493a281": "0xfd131276f29f0c06cb6a10b722c51205f5e747d0fbcdeaf076e83884b5c6bfc1", + "96f29ee40cd494a9f1f154ebd8300e93568b18a01a19a6c3890895718a57e984": "0xd35141db9b2abcd6d70ca85971cb6f521e3ea11201ab235d890fb4e76145e9eb", + "6a2f031ec9d59f03c1149c9ef75ac9ae419a394e40e318aa6b913b86b47a2f21": "0x6f9c50a90ac8cd4cd8c8d85f6087bdd1d9672f2f1391f41becef57a0ed7d08a0", + "1a957a00d2c9efce38515c6c939f35ce0ee46ae0a0522be1569d4df06beb1ced": "0x23d6bb815ba6fd8a253f4b6e131edbcb4806fccfd7a56504838df15fc7d787b6", + "bf517e0f7ccfc307f0b2fa93b99a737641933989af6af769c928725989c21e66": "0xef5ab3697891cc165c6cd20b196cac869a94b77160094682e9733db86e70bcc4", + "6ff709bf1f0fdb46d991ae6839163df1e050d143429d737fc650b6b214347808": "0x79b965734280ae5b01f2d6cdfbf2767edab6e252b4e1a18e168dd12e95f57031", + "b5d2cee0b86bb0571db898ae7b9f288c5e272fa486d41a5bf375b52a0249d94c": "0xd34b9b1b585331425215fd4171c624d924cc39fbb36eae1bc9603ce9fc3ca179", + "b5622d32f36dc820af288aab779133ef1205d3123bbe256603849b820de48b87": "0x62ac8e19e857385acbefa20f03754701ee3e6637faf6fb2bcc89d65fb30d1751", + "c1b12769f6633798d45adfd62bfc70114839232e2949b01fb3d3f927d2606154": "0xbdba3b8dec7df05b2bac446c2e2ee17418380b378cdff6855aa2b954234a3338", + "796d24444ff50728b58e94b1f53dc3a406b2f1ba9d0d0b91d4406c37491a6feb": "0x7a01f49e21a818e6ed88003f1556a631154df4cedcc0d20b5f658d159c45d811", + "c8dc7dbfae6aa1a1f0feccefb1fb82fc38ba18d1d0d62380272d53a879c1df87": "0x6b239316abeef5bea30ae7ebb29eaaf369d579320d38df4600f2983d8099cf75", + "4dcb3accbf0a5f0d33a0a38968ce520d6009f28b8da573ccab99165fb8d8727f": "0xf7e3e52a9776b1f493733bea865c198ba132f72397c533f8e73961aa4081d7c8", + "20a938f54b68f1f2ef18ea0328f6dd0747f8ea11486d22b021e83a900be89776": "0x5d62dec8e12acd5b4f9d5f9efb078e6938a6f589d71e3d9f97e11166c6e6ffe5", + "ca80ba6dc32e08d06f1aa886011eed1d77c77be9eb761cc10d72b7d0a2fd57a6": "0x8deeebad0a8fb86d97e6ad396cc84639da5a52ae4bbc91c78eb7abbf3e641ed6", + "067b34e3df6d51b47e0427bb712f7b937ca8f8cf65cf4c33f9e6014e0ddb3f8b": "0x842cae287035c8ad3f52d8c60026258d20c8b0745b0ff281e1c39b41d54bdff7", + "5b026317d56ec664f2d18ae4a7526f19c29134916f1d2c3af656e63c72e8a748": "0x2729ec0aae7725841ebacb17d9e15fdaa9a2e9bf4dfc9d7f72505ca9eb75a25b", + "8fece987ff24a0a7ec4d87c29d337e7b54989663536b73883ae8387589cfea2d": "0x60700d5c1d06b7c9883e89e814d00bc84a9c01c1d3c58ef280aa1790032c73fe", + "12c80cd16c123809ed8e38c4acd024ba6320db5909196d31c359aeb19787a359": "0xa58f8cb2568ed9551a5366a6fb58521de293467573ba87481b17cfea4517a2a8", + "05a934cb3bbadef93b525978ab5bd3d5ce3b8fc6717b9ea182a688c5d8ee8e02": "0x0ab2e2284368154154da1fa9547beb807c685764cc321296ee62e65bbe3401b4", + "94bce4aee88fdfa5b58d81090bd6b3784717fa6df85419d9f04433bb3d615d5c": "0x65571662502efaad1053c5af7afad896c887d3e1567587160ce70cccf90712f6", + "570b0d8b1874762f45775332a23e7c153c0db9cd77e574ae5f698453a26ca593": "0x1797e2e4b67be85c6a36140b47226489f6ceafa1ba33b523955693b0215860b8", + "3ea98c0336f6a8506dc34567da82178f6f7a664b206ae8eaf8ab8d96721ecccc": "0xd978870fedf1bdd6556a132367e561fd4ac27ac099c094bce5c69ae1c55eac12", + "e13490529898ba044274027323a175105d89bc43c2474315c76a051ba02d76f8": "0xf6cf3acedaa81dfecd8a17e75131ffa9a0f1dda667027a0ad99b7bf5eb7c90ec", + "b17c4f7a56fdda9cbcb73b7edfc6a75f32dfa4f04ae79839b6fdfb56f6a1e9f6": "0xd868be5e92e8973c19be2ebb108dedb766426b408b5cc3a90c8632c8e531f42e", + "1fc18861232290221461220bd4e2acd1dcdfbc89c84092c93c18bdc7756c1588": "0x83f74b8a33b540cbf1edd24e219eac1215d1668a711ca2be3aa5d703763f91db", + "f927de002a727663c6cbf1923ad850aa5f9f4f325b2faa8c5cae7852e0a00c9e": "0xcbb204d5b4fe29a49b4f811ca44a776332d04d53211b33e5fa88cdc91348b03f", + "cb9372930932694b8a74dd5599c0f9e236575f434faf05141d95803a91f044ed": "0xec8dd420650be78822aa7a2a0d07f742e6b2b390c0c12618d242330ecc5bd020", + "112fb72d9e1d17e491da188324c2e0707a192bf2e2b0a26632de541d45b701ef": "0x8c80d4741f04dc10575200db6a8d5251ee86ea3fe3c5e6f596585980dd3bdb0a", + "ec2bf6a3087d222ce960afcf75b42b96985d580a80fcd4c45c76a5d5e5713cc7": "0xaaa937715e069809d842f57c79fb581ac1c35318ab997f7d0a38e1512845cba2", + "61226d39beea19d334f17c2febce27e12646d84675924ebb02b9cdaea68727e3": "0x0c61dffeb1155b9f9251da0f2435b492035661f572c8efaad6ef248ceffe7f47", + "caf0acd3a8849e1100a737f5dd3890efe1e7a574a9c69e230addb3d41dd859c2": "0x0033075915c2e7727a3a37fac9cec79b79fca2c7ea6bcb5814c1e693e01504a5", + "27e867f0f4f61076456d1a73b14c7edc1cf5cef4f4d6193a33424288f11bd0f4": "0x26bd64bcdd1f00c71fd72dbd242e9ef8fd177efa6943a3287f5bbb2f83a5adca", + "6660d7629213995af8aa169ad6a1cf1a725765d3741b7e7a27825f884a701b96": "0x82b64c9e05b319fdc306edfa8c1d8ae9b13b5afe36068fb690cda5339d3587c0", + "e09298255394baa5bcad40dcaf6c8050b63ef5da7b997d075318278ba8f2e477": "0xcffbfb439213a88f3d81c328b0df66386065d1529cd16401c61686626b9f4e67", + "247db80e271f8d9e31c358aa93cb81bb091f2ffd90e8d85182b56fc22501e82e": "0xc14ee4db2d69756ea52e3269c73c0ca37e0a2e96d00d462ba0c5484e500c0b46", + "21adabf73ad61903c1872fa220f84d3b1b9990cec2047f8317e2a67efcd1764e": "0x81435205c81062bdd9b85f36b21d205e9c5daa1eca402319a318194cbec16579", + "5f70ddbab5034fe97cf8722437f7f3a7f575a9f369e751c9567e2c55c9bb554f": "0x2d91ae83f1f2e6e8af0f6385576c0b9c398d51da5b3967f6023a60384edd95da", + "87fd5a8d0bf026239f98b53311d2cec2ee171e853f545e1ad742e092a97ef860": "0x4f6e1ab1a4229371eae4c5414340a0a02ebd9086e6c9298b9b7fb31ffa8dc109", + "6e03ddbdaf07cd975626dc72e567427ceaa05108f5ffa1611942cf4006cefb2c": "0x50c10911fb187e3f98fc78a4ed4db4b711d0072a79eb8f667f4a23086f7c665d", + "31775e1d6897129e8a84eeba975778fb50015b88039e9bc140bbd839694ac0ae": "0xa40c73e07a7ec37d4875608d8e45f1f0e8442d43870e5e56bbc46cff780646f7", + "7858a3c2a6cd45d9b6713bb361f665aebd29b951fefe977bb4dbaf0e4606aa6f": "0x3cceeb37ee659740416b631411ecaac0e0d6667c9df22ce4a8d31f876448b780", + "d7566a3ba7f7286ed54f4ae7e983f4420ae0b1e0f3892e11f9c4ab107bbad7b9": "0x43e3458bd0b9898748ae5edb70a2509062e833eb8e385cc322550b594753299d", + "4204a764d9e0ca8db0fd43b62728265bf82671ce8a8b4bfedba13672be12de62": "0x53444a99bcec74c6c440618d74a6cd7d2277abc10a416c01e6d4f27a295f45b7", + "aa3761fac23cd01faf71a5865f50748ab58afe045041dd95051b004652c726e7": "0x7e81ed4d6d912698af2e545d9fe57e9aa0a5d748aa44b0dbad40323fa5a9d7b7", + "7f57ca775216655022daa88e41c380529211cde01a1517735dbcf30e4a02bdaa": "0x205941d6872a044c515eaa15e0397fde2575f8f2692bb170b870995933d4d566", + "7b22e3f1dcd2afa868b6463b1bc0cefe39979dc2d3470e1837f0d4557be34f73": "0x94fd34377d7289e39db87a037da1faf759993e68b2725e3f7e0763f398b8823b", + "9f2acb902ee5c3a8e41c643164a498ed3089c99df3477189babd368280134075": "0x2d917a01ec367746036120e0755abba9d58134ebf51459d986b8c38e100b3e95", + "2646ca1e1186fd2bb48b2ab3effa841d233b7e904b2caebb19c8030784a89c97": "0x2bc73cebf9fedd912da4c7549711e6f1f5c33911b826e324d504633df5cfc11e", + "2f317bea04ce89adb8acc85a1a68d20d6e89976d5e86306570a0bb3107e4916a": "0x148ae102b370ab2829a5ba631a41b2f35c3b577943cadeef4f7cc3c0ef66931b", + "321ba4d608fa75ba76d6d73daa715abcbdeb9dba02257f05a1b59178b49f599b": "0xe08d8bf5deb618e98767e3ab0725658b211f6a431f7bf90a99454d1990b74c8b", + "843b251236e67259c6c82145bd68fb198c23e7cba5e26c995e39d8257fbf8eb8": "0x26c282717cd2bd14382334b5e0c1e9673f07d20ed4f235709799b98db2fe7eb2", + "e07f9830dd639b76fd3c341f323d0a04562f442ee5bab1efe69a265d5ab9b94a": "0x2252f4b562ff74b5b91e4cebc847f665926f18a50e88309049bf0fe3a426684a", + "6256c91c19cfbbfc6f91e1fd15c028a26be1f78bb59ac9f7250cbb67f9e5b964": "0x48c7bfa8f5df2ba3e4803042ab29e12108c2f968feb1fc3cd151efc271441800", + "49e9e8574bd7fcbd294e4a94057c7ed7fac1402f5960470cd8a12ee63df186e3": "0x17a5c349b2128161bedb03cf18ade9478c848c8273746672de2faf693a359462", + "2a424024e5a4438d4d698f99e25df39e347b3889f7249b64c771f7504a0d2f12": "0x8c146e162befeb3a16a8dc7013cd1a7e6c660ad66dd3a2be0321ccdc43be401b", + "83be4ed61dd8a3518d198098ce37240c494710a7b9d85e35d9fceac21df08994": "0xf7b474ed1f88e1a19c4a456741efbbd14dc1a6f714ca255b896d849ca63f8d85", + "e157999f282bb939e943724620a60af4ea9b0078f34499b840c65bee0c81cef5": "0xd00ed0263d990dc3951d3e69417f766215390ab8c31c6afb5a6b4e7b352e0359", + "23fc699f5966447af3ec895e6f2c046f91d62d40ad1a86e8cde8fd0746324d8f": "0xec2f948cdd785afe254da2ea2cff9ba4fc3618feb98f1e8984fcef3a38973f5d", + "44a93dddd8effa54ea51076c4e851b6cbbfd938e82eb90197de38fe8876bb66e": "0x6b8bb2345c93edd12e24c0ee872ee1887520dc70d2860b4814cdc4a312da3539", + "651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1": "0xba54141a7d008ca3b0209086b2a74a924e4515c4d9cc402ef0710369d58b1d77", + "78ec25615d53d2486db101e829f77615c4408cbbd543088714b9f267da44591a": "0x42ea1d6faf9dbd0ad333fdc4edd8d7f869760550e46712276e92e594249f6022", + "c999fe8a75bf9528931deb832e2934dd1ac138757d7f2c1398675b6f521d556f": "0xf57f9d70002978eaa8faa34961853e9c3c2599bc0ddfdf6556de6b63e19967ec", + "cb1743d0e3e3eace7e84b8230dc082829813e3ab04e91b503c08e9a441c0ea8b": "0xcc31caf6d68d16f4b67fdc29759ad5faf0e9c9e1b7740ac526995120caf408f7", + "7a92fdd1bf0b2d76ac1fea88c9eb7bfb1907d25d12e0ec47feb2a8e28e6892d7": "0x14f2533e42047dab1d78606a6022a592badda57ef90de248d042e1d671b7bd1d", + "d999afda91920097eed20eac02e68b9dfa0b8c798d5c7cd24f74a694c2126165": "0xf967fe96dfaf3a432c9a2c28ce58cb1ba6705f8f513f37a1f4c30e6c58392fad", + "9f2f5ece4fc51f0378a5efac659680808f1273fac4e6bce8c8f92244602c64e3": "0xe14beebb2fa067e6d968b0260f3a2682974d2e95cca59ab22c2d87aeb7c1a684", + "ecf553770d9b10965f8fb64771e93f5690a182edc32be4a3236e0caaa6e0581a": "0x75fc46cacfff24618425e33e676eca82a53c8621d49a1e571152848e88165001", + "37f40d2898159e8f2e52b93cb78f47cc3829a31e525ab975c49cc5c5d9176378": "0x5f24fa9fbb024530efa1863e4ca8512aef979ad3b6c55d0f83e796fb7b5c2c57", + "046f22737835f58f2251df9283339618e4f9510bbe3171582fe50df3fedf8063": "0xe5533e0240746637bf7378762b73386c066be2685e69482f7ee0be9720af3707", + "a5fd90e292644d5f9b79a1640f464fcae4b8cb925465d197a78185a308603606": "0xc118cd104e49d5a078de7bea4df563c9690361fc386a6355fa16493f9b3d2428", + "0adbf6463e27f60f171bcc498703a4282d1954ec3a85e1f6698b48ecde18c00e": "0xa4ddf29c1ca9ce6c91deb7f6670a099cb805bee36e5c81a083a338a1fc2309ec", + "74c3dcab79a257c5634b1bd0f57938d308de511ba7fffc2f01ab001084a15106": "0xf72df1e04ae66e867905ea85926b1fc2f6d5c27f693556c73ce6ab5aee41cb18", + "fc309467defa4b198c6b5bd59c08db4b9dfb27ddbcc32f31560f217b4ff8fc2b": "0x9649396a34a3512a5857cefa88438cf0d20f285129cc294dc7e34df19dc144cf", + "21085c70777592104ad15d352e44fb59f8030398e853b0a0dd2f9b3572ca8f27": "0x1778f5984a6b7fb0a5bc9c4cd1a4c49d80c435ac9d8b8803a7a9a73f3e04cb47", + "93ab444e1de19f0ca3e27d2bfcc9b58da4777e927e958bda0ed5632306345c8f": "0x77be008245b2aa79727e58d8ae6f5ccd4343e733d957dacf0d367d33005d5069", + "a46737d6e4686b9cddd59725c9564f851aae93efa37c52f46d9fbcbe03d0344d": "0x7ba922ad95ee90d420967270c1cd73a08c7aa37084fba8bec09a5f12c14128d4", + "f9c0172ba10dfa4d19088d94f5bf61d3b54d5bd7483a322a982e1373ee8ea31b": "0x878b118488aeb5763b5f191675c3739a844ce132cb98150a465d9407d7971e7c", + "5dedb77c359e5d17c053e36e8f8d89b25613c59e285a247f32dc60dc093f2d9b": "0x458aca93edac2be9d1436fb79752c0f70e8135e6d06785877cc908577f7fc9aa", + "997e0bf451cb36b4aea096e6b5c254d700922211dd933d9d17c467f0d6f34321": "0xe34ccbcc04337e3ce8254d5e86bc81877340eaf23f65bd31a082e07878227370", + "d9437c194a4b00ba9d7652cd9af3905e73ee15a2ca4152ac1f8d430cc322b857": "0x3cc0806cc504a226f72b3948bd6b98148a711a449275f6834db8010d980e6018", + "1f54ee448dd8126174014a7fe3c354a3c9836615802480c196ea01f73b5ad5e6": "0x653f8898d016404a7d0d3571e08e4c4ce4afcc9901000902511c4751b0974276", + "60d856ec52df0c791d00e6b9ede437774c57ce608b310708351893b7a07ef7f4": "0xe6f360ddd91846882306f7384cd4c5f189242e305d1d3c0288dfc0caad8aab24", + "13f7925c9186b8cca50dde4bbf2d4fa9705052cceb6f2fc79df827e2b37d6f3b": "0xfb898b057da6dafdec62996b467d6099f56aa83064421a95d726da551a944a63", + "52800482aa2666c0d2621f8f0a8c19ee6e5e5039a65524e268315501b3355fbb": "0xdb651773fa581d634eb1da3428e9c6134ae49ec4b21bd121e1a19c3b8d8965b8", + "e0ad6bb6c7111d7dc8dfdcbc2884f7e30df1db0f1759e39902a23c41f2ca9f51": "0x05534285c3de57bc7325a78f8d5b86a46bf92b359eccb3bdda705b21679592ef", + "44b948f5d3f5ad7e24e1aacca13872c1bd5ebcc106a44cc70a0f4c6aec2c564a": "0x1ac1cf671ee24c9c5f41e1b5104c7b1b5867045188f3f9ef4e681acad8928423", + "8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb": "0x7616c58d12093a270b23b5c025964e2f901df2c5d68e42c4a8d7b0122b6e750f", + "9b245faf19d2f3306b58821ef60b194d7b67eb5250635059d8eaae4a36337b28": "0xd0efce1fce188727cefeffb86b92c188db5ea76be40119d83acb4db7ce089e60", + "7ca28037f63a175cfca36a878be6b5d47d87b2dd677efb8e22f70865d9ff3a6d": "0x3a655de45af792c6639a20df1316b5c06f78ba75ed1396782a8eab6d0d7cf8bd", + "64abe8a459058c60d55427f62be3dc4942c0ba93d1eb5cb85117b70b8e4651ad": "0x4a0694781fffce08c62b8224b234892051fc36b0f2045dea9665d8eb1a751c3f", + "51669cd280ce96d95fd703dc0b9eb5ce0e13b53054114a45534d27563b0e662d": "0x1867a4c85ae311ca4e58ed90620126f3e482bad005ffba5f6c64d17375724c37", + "6354d685c247f1efc36f967617beffa2ebd5a95d8ffe17de4498505c923067b8": "0xc6f2080be22bd6882fa2b70652dab7851e4687bd2aae1945f1cc4847827f1b36", + "eba2144f04b3af59382d92b8cbc3170008b4a2945a01f36e81f92dfdeb8cc519": "0x2772683de992975462c42828b84e393714b6a78a40ce8e61b7e32a4c300bb219", + "457064c555edae5b6b89267e992be4c58be5375f0e9ca9749391c7094f7d9033": "0x43a6ae10a64d72f1f7a317c6c03e81833044dec465eb30906bd469504d2b34ed", + "9ff9aca7ac05dd6725aa169e643c82a34d9061eaead7bb759192cf784bcb20af": "0xc6e482cf2bcbfe58db19cf69c2eec1d5d1b022323a122b1f3c0e75f38174dac5", + "7545acf4eb17d5ee383e985a782b68d14dc7ab0cf390143fece48d442240bd6d": "0xa21f066c758a3b9b851ae5e3f9bc129016861ca9cff0d480f4614d8753da517e", + "85dafbfa99c733fdd33649551666958ca8f82fd0d849746e093b770caab249d2": "0xa3bc043410a28bd10d215fa26178e7a4ba244d0e0ccc44e8de733941c948edb5", + "24264e92a7b9a1477c8c69ec6610a330e1720ade0d345175c55781443b8d1b32": "0xeab5cd103be92c4910e9c0292a9ca261f85d9dd94117aadeacefdef89288bf7f", + "4b57c2471f6ab9250d26b7e0ff8807bfd620a609503f52b0b67645f69eb2d5c5": "0x31644447ebda1a4675b65069f388323605cfbcfd69e1d3b4d65aed494614af7f", + "057aef33dd5ca9b91bef92c6aee08bca76565934008ed3c8d55e382ed17fb883": "0xd319e620fec988e65b9d90c07f70929a41853ab3c6968d20c148bcb132fc6125", + "fc564609e09195df943fdcff899ae7448d5abe93e4906db809a8ceb17ece7967": "0x9fe95add3cb2c5938fadee0edf68c149db32eeba0d3c5e199dc83b79f2e26368", + "e76e307abc63a0fe6a6cd8bec83a23997aae27b5a91459c3d73b2cf20abf7430": "0x7e1a3b0cec8f1dee42677df80f874794c7b82f6fd1ca5fc76933bf255192138f", + "8c57ee5f2e58f6196e845344299618ff5752a4ded0ca0ae189f2bf7feee9408a": "0x86f8246cd3ba5cc1800b411b7c4cf9460cfc001c97cfbc85c9d00e811165d8f8", + "970541e943e11d1bf1d4d763bc8e70995f613dc682f727045a866312312a6376": "0x179b42c9f4437584c2a737bc8f712cdcfa086a9ac86c6cd96db7f71acc89ae5e", + "57596fe1a697014b962ac9e693dee99c4bb01d6c5eca271a1a26ad475a92cdbd": "0xc3503d22451ba076dd16a95f00f04262b393b67ee6257166e88a44cfff36add1", + "bcbdc2755bd74a2065f9d3283c2b8acbd898e473bdb90a6764b3dbd467c56ecd": "0xc7df744604631d00eea094315f373d395ff6257e02810e79133d2e57f666f777", + "577b331acfc8f86c171ad5ac6b2e580b10df39af0131ce6808628e44e3b77a66": "0xaa538d809c4b353e728f7103e71fae1cdba21b45deaae03a7f732727d4dbe333", + "dc3ac2fc4726ae0afed1501e6e834010fa30687d8688b16b22c55c0975e5cd08": "0xb2fc3c3a0ac814a6afcf30632b707c8768a158d8e542e5e6373a27cdf49a9152", + "e956a4199936e913b402474cb29576066f15108121d434606a19b34036e6d5cc": "0x89d6292d07700792d4832e8fdb99341cdbfc26c16fee6b2f7fb2129a68c50157", + "a7e2e2f7d47b17d18e6d49c427f21fb30c0a85e621a8502c3c4e486f3ab543c8": "0x044d2f5f48feb658fc35079218e1bd6c9095bf9a18d2b7b314bb42ab0b280959", + "f73112d4ad26fd37cf18ca9b3f7e6f1a562b5965cbc26e4488a540552f18072e": "0x2daf6162f57e537acf768a62ae309c76927418310828cb36b9ec9fbedf32b694", + "b718e659619a031b41c6ea9122f146859a82d4a7edc17c55b1e5188e8b4c1d1c": "0xb9bc8172917eb965cd237c5475338987bee85f84cd430ff0391a3fadb095ece9", + "4711f16309de5a18f54e2e5cd074dc7fb000cb41e6a5a333e56ad2b3d8a12530": "0xe391e53759c2fc88f6afd2bb8c2228d7dd5e876039b815d36783957b8d152f59", + "4193915dc8d03bc15603ec3c0ca9c5e3eff6726c2a2cf262e30be121c2b9a206": "0xf0d722faa995161446003813d80e42bee58d280bfe605c67be73204178cb29c3", + "c21e81af5c80ee23c0b51c8b4f4ba0ea28c8b38bc85beb7b1335356a32023256": "0xb6a2ee12503ed480af6e3e35e5a1386f8a4f984a5573171181035998b1d49ea7", + "2f32dfc72942edb002af80986a1e3d6d405193ef59e3d5ee5f7986c0d6655b1e": "0x7daaf3ef2a6a7cb41c7ba2d6e21f4067c1ff8c350a5a16618797c8375a36aec0", + "53377a90ac8ddbd1cad1a65dd705f12eeba0be01510777a1e25fcd03f295572d": "0x971cdd72055ba77d2502e92a94065cad8132cad85094b062b26f933c6e3e0918", + "484efc34ed7311f56c1ac389a88d052dcddda88fe26fb8a876022c5b490f9c98": "0x89d0130e5a54a3d989e4db8a33df0683272ed58d694a3118c9d406ba8033a157", + "834d3f05278b6f5c963670f437a2267c160914707328f888418902106bcd13d7": "0xe26ac038f1b4b826a43a3c20968864f2161a7c9bf66374a2b19429caa07800b2", + "ac27da9472e28969d829c27312afb08c5f1866336384f0dbdf9a48af97cf28a0": "0x2c629bbfdf1b123708632bc580669e83961347fe1ed4ff3e4e6ab7b861168b2a", + "077e345652cb98edba89815a63a0ede724eba12d7a10c8498e0e762d581aca6b": "0x421e2527cbd209cc95a003d81a2c349f924ccb3486ed5a7d8a7c6c38579613b6", + "30a19158f5a54c0adf8fb7560627343f22a1bc852b89d56be1accdc5dbf96d0e": "0x42c3cc1cba7885dc839c184470529fdb771a7d901cacb19b465fef1ccb0b38eb", + "d71fc5838e683d30b49539d979af53063250a76cfab4a4ecfa2b3279f26b7b29": "0x53f8fd11d804d3fe0b9833970b5e58fa10fc5481c0bddf1ba5be9a238b62ae50", + "b7abd25a76ddaffdf847224f03198ccb92723f90b2429cf33f0eecb96e352a86": "0x4876754400e8fdeb3afd96149a835bb399a7bb0141a5184d24cf2c2697899012", + "576eef18034939eb62e7736f6f9fb7eb6c67b5c6ed81605f4879057028d734bb": "0xeeb6cd07cc041f3e4db3ba60f4be3da007e7b85a05ae5ed62d95d5a6d8b4cb26", + "08f781a893bc9340140c5f89c8a96f438bcfae4d1474cc0f688e3a52892c7318": "0xbc36856768ba251c016afb693ae53892a5c9e8a81f11102d5436d7522ed7cd59", + "ea595ba9693e54b92f283a91d6774cf367f440b237d979acda4a75dc78f7c679": "0xba3daaf7242d8728886fcf3285cb34edaa6a459f34db2bf8c67a656642a98987", + "475a251c7cbded7645a146fc049d44058aa977e6850f20f4c86e289fb8dbe4f8": "0xccc30a5a8e61a34a69d17cf02cc5ced1acddc1233f5a799475e292f445d4cfeb", + "87a67534df591d2dd5ec577ab3c75668a8e3d35e92e27bf29d9e2e52df8de412": "0x5ab23f2d2adf4d361fc70ec11d5de7c033e8874c67b70fdd244b5e531006efa6", + "71334dcd37620ce3c33e3bafef04cc80dec083042e49b734315b36d1aad7991f": "0xe496f16e06b01b38d0c301a89791a8afe91dc7ebad3d491494ac712714cf7f69", + "c098773aa18ebb7e84d5ee7ea7d97105ab2015a329f670012398cd2c8f5cc6ca": "0x81441dae866ff6312b15e2ea7666340452b47bd8f7d649f88d9f79d589a91625", + "c3036175403e4b32dc291d0c023aa691f0287f058bfde5fff15d71ac68973e73": "0xf1def1e87af46f7c0b08bdc36bb79cd3efd985ef6dc5c00e83a423cb71914915", + "d954e9a88c7f97b4645b535869aba8a1e50697270a0afb09891accc031f03880": "0xf2e64772c74f0cd9914c72163b876cdc7a6ec4bf88ab4563a6dfa486d9f05a9b", + "a457fb802064a5a7c5c87c8375165f3e607730deaa9d2627ba7710b4b2841064": "0xcbf811cefbb833787439efd97f216d449d46fac105e097da1480f893139fff01", + "dd51a67a1b4d0702abf5b5385631b7d3e586993eadacf2e0d900c0a81edcffdd": "0x10e40dfeb665f93b94888eecdf8d433c8b60d70cc23aaadc49f83cc7f77f9682", + "eb00e1f858549e12034ff880b7592456a71b4237aaf4aeb16e63cd9b68ba4d7e": "0xe23570acfd7fba7ca5b1de1dfa98f27b393d3dafb77aefa12302440fa42705ef", + "ff0ec26442c57d7456695b843694e7379b15cf1b250b27e0e47e657f1955aaff": "0xc0500c66f940b8ffb98ac9853a75ae7cb31f8056e46b204a4d898d765c2e2636", + "677dbbf4f68b5cb996a40dfae338b87d5efb2e12a9b2686d1ca16d69b3d7f204": "0x6e3b3ef27cfdf0e0e164e5b7942e13f1566b62dcbc2dc66fd75f6640209f5b09", + "50c67b3fd225db8912a424dd4baed60ffdde625ed2feaaf283724f9608fea266": "0xe38dbe2ff3322f1500fff45d0046101f371eebce47c067c5e9233248c4878c28", + "51ae9b785e6aeb288955720faef15f63ee3ae21af38114ade8b3fc3d3831b5ad": "0x54944f2a1ceb659e05b666afcf5f39cdd7ffce6aeac6ea5f791c32d6c509eaca", + "e4f18eb4bd03fc316e0affa5c829d8b307315e1bee8b4f7907b3c045be238130": "0xa8fdfdaba5e406455941bee7758b3507e953d84c3e39cf910f73e94fab9a72e0", + "7dac7cafc583cc4e1ce5c6772c444b8cd7addeecd5bedb341dfa037c770ae71e": "0xdd187aa48166150844ea07d1c1a5d488dc8bf51c90789ccede850bcd8a89b4a7", + "732854c8a2a37168037263fa01e47526a5cffe026a43168d61baf4bf4e490f97": "0xe6b00a9c2678bbf2c007da6efa62e9244df645b17ecb34fa647dacc18fa9368e", + "b327d9cf0ecd793a175fa70ac8d2dc109d4462758e556962c4a87b02ec4f3f15": "0x682730eb45da1f7d800bf88e6e787f4632510ad31b20b2e54b2ff7dd19c0dc68", + "19786f31e85d3598cecdab810b2787de0fc22c2cf98b4f16fb1e5bf567a0a431": "0x14414075fbdf322bac60e4a3adce400188e8fb75c423e62aca185ad5caf724d8", + "a6ea8b18a8649408c374dd83165558280ab580a51dcf1d56b60904d91f49a49c": "0xc8f0da49081b7757d029bef22a72a415ec8283125f7ed3343c965dcdb452e3ad", + "4082363286e730119515d5c8dd70233449996b40b9f60a1d2b902618bf54e183": "0x7555bad22d085eb34a463e39abf9a9bc8a1b229a8d66c5d26738c44140488d7a", + "41f3625971ca2ed2263e78573fe5ce23e13d2558ed3f2e47ab0f84fb9e7ae722": "0xa3d3e81bd7e890ac189b3f581b511f89333b94f445c914c983057e1ac09ff296", + "68bd4b3c889eb5ff8c56eed05781f68f3a931d6a1ee5a744d041d70b87e2900c": "0x522040b312a2e896b3f8508824aa7dd905afbc0a77d5185c094ec1943bc4aa03", + "432a849ea65824a2d4f18b7708533ff7f52156320714d0ad26404130f49a4ad9": "0x4229b0629ac127ce244e441d068516e851390af2209ef17a9f9db9d27a951661", + "d952c751e36d6113f62ec2bb1679be4ac69d684b33224fa305644010f7c44aa4": "0xbafe17e1ee4cc3b4a5f388147e8c8b0e3c09b1eaf88f5ad3e7a3999745db51d5", + "318e9f183dbc7333461fd7eb62c954872cf863c46bd09ca56887df525e40279a": "0x8cf01ad0e42c1dee0195791abf2c583f906d2fe61613b79faad1dc203fd9a47e", + "ed82efbfade01083ffa8f64664c86af39282c9f084877066ae72b635e77718f0": "0xc807978d4cafb73b36ff068dc928ea73c27daeda55feb4ea863128a78016eabe", + "2245aec1db780b8dc9f710173256996164f0a65f25a975453e4202a54371d2ea": "0x93e1e216f6cf99f4b22268f90add290728365828f31b2f7e9af70fb519abcf2c", + "d2c2c1f2bba8e0964f9589e060c2ee97f5e19057267ac3284caef3bd50bd2cb5": "0xdd40524fe7a7018d435189aefc42e59e0ef7de18ed6726eb5419b00c2fc5d7f5", + "e75bf4f2cf9e9f6a91d3c3cfc00136e3ba7eaeb162084fdad818c68133dc8a24": "0xb609906923a78563d5349efc5908b5b38af66e1c22749f29e5061cb3aa786fc5", + "32f2d7d2c0cc235012cbc5e92270f4f1e01b1dbc913f80733dcd88016440ac2f": "0x84b440b3e00dad051cb4c1100f59967346bff85df4e04a80b78b62fd523bd711", + "751a17c2f649525a42812450ed3a656933e3bccefa702461a60c21109cb8fcb9": "0xe6eeda2c10e9d01df3ac0ad2a6f61347207a1bb9357d945b3121180ff6c1b882", + "b5366e5ded52c3db5d81635a624a39d81eb8c639427fc79c539e5c91e17c8494": "0x747d6bdc8c4555791b60cbfd3b281a008c80fdf9a72514c8ed00e9df98fba824", + "b762d257b4bbce7935a8251b3e060977cfab1ed21770e8b431beff4cb7f41137": "0x6e0016d3d81f17335d783a9200a7f756a40be519e21f39305670bb5fa8ddae1f", + "c11efd88a9b2c96bc84bccd6ce4aa05bebad7aa760dbe5f2f00ef90c4abd50cc": "0x1e6970d2855cad166fef9ceae16b18fe9dfeb0b5f7454d9cbc34f94307eadf65", + "64ae1fc7ceacf2cd59bee541382ff3770d847e63c40eb6cf2413e7de5e93078a": "0xec0e80df69fcaaa4fda31d3affd2a45e1347bfd8501155e5344e1cc4453e1a89", + "e4973bd7bb2b8b78dd63af491582952e28f642a5b26cb2455826e201ae762bf7": "0x9d8dc23f2d902c5d75a57798c88fbd155efde61628ccc158e38ec423f4d37cbe", + "afcc9a5bb5eefd55e12b6f0b4c8e6bccf72b785134ee232a5d175afd082e8832": "0x36a954c1e0b1f3337ff3dc7abc503cddd6a89f2882a8c7e6778bde1014222410", + "f3030274adc132e3a31d43dd7f56ac82ae9d673aa0c15a0ce15455a9d00434e6": "0x63bb94f378e9da05a978ad86dbd2c2b0a90b5ff984c490f314263590a4ed1a8f", + "ff1196f6b85d274dcc2608b6974f2781b9757ecd25ecc9f08a44ae13071b2ebf": "0xcb2398bba51417baf9205dcf80089004df5e99760dfba339471a989968efea1f", + "d259f1f2344b64184eaed25ebdc8e9012b19a523cebb625ea534f0e6a6b7975d": "0x45ce4df5e11184148840dd4172e81c4dd9cf7659bd1bd90adb08bf14ff6bcaf7", + "b3b2fb5e7825bfe3474d0f378c695f6cb85e229deea14e7a28d37a9e5a1b7749": "0x3e33844f2c04264a5107757c6755d8f983bb379c8a9b02d8cc83bdeafdba24f2", + "312106929adaffd2e1a1098603ffd30ecd6c6fe7861faae6bc81b0e30f4adfe8": "0x90e6ed8e56dae1c82de811cc27f0b13ea9efb3db144571a6ad4df1111315017e", + "ac541125cba1f87cd7048ed465faaca653784605e05fc1ee90b979f0a4eb57a2": "0xadde49269a920699d9a8a836d3fcee4f73924412439bc59fd4591386524a13c4", + "9b7bfd7654cbb80099d5edc0a29159afc9e9b4636c811cf8c3b95bd11dd8e3dd": "0xee69ba2bf6015544a19103d7a9af681145af1447e12257072b6dab4533b64ace", + "06c532524fabd49cc142815502d785e4f34ec3bd035480efb770568d423f46c6": "0xc14f8c30ec8183a8fa7f943855b3ff5f99d9a56f05d885be4f037d9c9c00190e", + "f1063ff9dea7f8052929e97e907218eff557542a59c54a60eb3a945b67759999": "0xd71b552c791317a6dfbb7425e62d918ce085b22ad85436e39a2b30b5dcc59216", + "c178e5b0e2dc1e4d5f7893d58e1cb619e58457d616fb21b6c5c994e9d19cbf6f": "0x9b0adbf1bdbfbbd49518257d77191b14183b123d88b25f9bcfdb109680cfa581", + "c323b9b3e6dd09a9d93090322689f0fb44bbd929e8702028ff1ddd838b14d421": "0xb8f730f1671d22f0acec5091fabecc9243a61caae31811aff826d53775216607", + "b59d65c2e10af17c0d6f7d10be8d64c0c13dd15d957c4c39763b4cc55e591937": "0xd7748cc976c1bc26517a96459510b9ddca510ac7fdeb7826b3dfa252d99f7dee", + "0184a60a47ab7c23fcb828d727b05748ef52433fb5ae96f775cc98c9049d8c2c": "0x530b16f0a67896df55e3b1d9e3be8c0d63b3a62a4060cc11564e18ada11f404a", + "c7bdaa960b886927325f02f0e4d5db19c179d066f762906f803096c336a4462a": "0x479edf6d61f313fc14cf30bca09903858c0aa4001da40a2efbf8a330a3d877d2", + "eca4f9c5ce7cbef8a349fa9f6c12b23ac45b9ad91c4d1808c6a2dda841f95a02": "0xfebee46b92fc7f3ff1d24810d21838c04c2101235ace578662f0abbc60095b96", + "13ac8c71e4e1c61dece57bea76163d393bf75cd0db8e52981e1564fa592698cb": "0x6eafcea4d987f66b5351e52969671be4125ae4b47ac4f4f9f4921755929378da", + "7730809b4a4656325b7fbc8157fd803c3da170727c541afc4db37773246258b1": "0x6d4d4894a3700826470f6874b3dc03d4ad102413103a3eb538d633df0ae1bd40", + "36032e522b810babd8e3148e9f0d588af9e95e93b97ffb58566b837fdbd31f7f": "0x6fc10ab93a8b01ffae22c23df5e5e36fe43202b097896e0d5a5eec416015e3b2", + "c1b8de2fa9fa1f18c4f41afe579b23f51b4dfe2bf3913b850f583fa19ac40cf7": "0xecb5dcc7d4f2ab012b7806ceeeb8d73d431d38c49138344e858859a8d22145b6", + "6b86b78584e182c61729267d73593f48b6a929f3218234769281513cbe5e87ee": "0x0e5a839e30211af31d2f14a248cf13315a91780d94854852e7abdaa92e3524d5", + "7092f3445078c8bc4220e2c6e8b238d6691afa3a9f485bcc644d1f725c85f5ea": "0xd349b7f5709c32fb26c66d871c8c3d090ef38da5c04b06cf66a3e7098c62c2b5", + "5a035d5440f5c163069af66062bac6c79377bf88396fa27e6067bfca8096d280": "0x5f1f0434a5b12e1b6db4a66d4c0025b0c78cb75c84ffbebab9bb1a8fc539662c", + "d5e01ddc49e0b46138b7eb47f24219f3e32c0d0e644649ceb4eef921b9c5a919": "0x38c6156c6fa6e10af65a6e2914a26c45c354e7a9e454f32b520a590645582049", + "00d1e4ef2cef8626de09035298b4763cac85567b03ae6534098c7914992339cd": "0x5786d9f296510374e8ed7caacdf744ec1762bffd0c965d328174b5766b282e89", + "70bf2974182b6ebf4eac64977170074315e7a07d7b58a963758060924ee9a192": "0x4f2ddabd1c080f648eea58ea2d366c5b3534ef04fa682138b5e4c381fafce554", + "4d9fee37cd3b1bf220b4f47e4662ae2406c852a9ed7fffd3b190628ef0c3c021": "0x6bd387f9d95de741951b14040d12de71ed2e1fed271c1bb9e74fd60c970f4dc1", + "eb3b5720301b36fa074260e6e27e2cfff3a7c6bbb47564eb218a9a7f2a8c0193": "0x0e5142ee8aa6ecbfdd1aff1cd2dd4ed2924e8f6bc47f9e10f43670a2e731078e", + "d6b3bc030a8bbb7dd9de46fb564c34bb7f860dead8985eb16a49cdc62f8ab3a5": "0xf9716b158a3a75539db8fccbecece70e65180bfb5c6683a08b85c2c7f02fc9d2", + "013317758a5b499650d72edcd7ba12bb5cc54ce9434196b607fa5e01e0f7797b": "0x282c6815b611f597a91c7c62e6c5525c0862093ed9a4b9593dd090b66ed66b66", + "60fd61b2d90eba47f281505a88869b66133d9dc58f203b019f5aa47f1b39343e": "0xa2eb0374ae620d124a4a775e9581f83cf24872ea484e8cb4434285e2a7e282d7", + "26f46723ebaf6eb891b2d5709172346d2221838f39a93d644251a9102c3224c1": "0xa98d791ab2667e8d7d4be4237fd07d34e42a1fba3da615a010bdc94dc2c86237", + "93450e6195add3579e50d7b97fe2ec7e4f0f167d335af4d3fad33b79212558bb": "0x9c733771ddc9bdb9ba8ab434ae246281d1072b8dede53a3920884de3422ccb01", + "3eb717044f8dd5f1c7197f941e613432e1773d5cd8b7da38ec952722db3db95d": "0x3407ac8bfc0505c91170a8782c558a31c3a29b0cf7d0faabf3554cd9150fe46c", + "6cdc09f443fe8ed53517b9760b0674d054e719de9b83cba1bbb02c2439448590": "0xf558b0dc5a32eff95c23f860ebe3d89cc2121707491af1943d010d32aa4bbf61", + "f26cf0b5c71699e81f59384824c71b8cdcc29ce409f3e6934c8c18abe652a04f": "0xdef745e8e47fb7f2c0b5077442bddd432e4af561206b873c37e90ea60cf1dafe", + "c2dec53d44e1fcc69b96f72c2d0a73080c328a0c6ac74bac9f575e7afbf6884b": "0x6cb16f3675cb95170510500e710b129f30488f64e257f734690d314977d9b832", + "47b6e6587b839fad98486dd87dbad5a0558377dec53b55f6864501b6187464dd": "0xd2e91fee3891b0753adf51c58678ba7a10c95dc6de7b04108adc7370ea767831", + "974124ccd9de65f614142b71ed717c2a6b079ae8f69e795e4d4a0d01b7218538": "0xb547518ab51ea2a729ece0fed40712dfaf0ed8fbdedcc92370833cbfec3c292d" +} diff --git a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json index 9d2f6d81dd..303b17869c 100644 --- a/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json +++ b/target_chains/sui/scripts/generated/price_id_to_object_id.testnet.mainnet_simulation.json @@ -1,243 +1,243 @@ { - "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009" : "0xb6f968f116973dfe1166f73955f59131282a308d47658bc074e400142a6df99b", - "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e" : "0x690fb7e5ed85f981b98b881db07458a8a467ac3d817761ee4d79cf9f801480ce", - "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c" : "0x0575742f5fde8beaa28022c9cb8376dde6adc5fbb09c0eb7e34f3c884081bd97", - "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9" : "0x3802cab0d68b659c81b66f849c1cfe240112f12183e378ed50c92d2c01a63443", - "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a" : "0x9b3111a3b27b0315f601f560fd1d340a040645f5e99455013b48275efd8040dd", - "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c" : "0x081f8f00aec130104ddbd71142733b262e1ba6b4d3ba87b97409080ac3b63412", - "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5" : "0xc3f535974580ee827aaffedcb46627cc99eca188f3098b9c8894b39a3742dbf8", - "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d" : "0xd0d5bd619b295970d5aeed38e2a41cba55bc4cc54b9e62978e51e054679c449f", - "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245" : "0xcaeab2a94f62d3c903d67526bf3bfa55d275f9025ab1f04a79425795ea78482d", - "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d" : "0x4733c0aed86e5e9a1a6e71dbebef26d1bb7ed5f6348a7cc8ba21536c2f11b0db", - "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507" : "0x9974f56dcf7fbc5c4ea83d8c0d78a48f95455271da020b38966ab70ea83032c1", - "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676" : "0xfc562c8e5534f9376bb23db344ad7f3c8a8309c0a0da8fa76096cd583858d318", - "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad" : "0xfb444178d7ad7da262bcb933d04f5539c6af1d48c44811cfc32fa3aa749069de", - "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6" : "0xf10573d71f68d054ad838d506ab3fee145d5729c3e2abd5a0d80d8b770498d24", - "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58" : "0xa4f7538fdc2d3ed5c95bb6eeb675828a05448ca9fac1508122f6859cd585aba4", - "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4" : "0x4f6bf454e6fbca35df7161479e0b97080babdbe6dcc20a7bb08c8ece5fb3b33f", - "27d108eb764c912f49d3453a21dd95516619b1c45d0b607ee58a137ac8a6f32d" : "0x94f04897ac3357c9b992db1b2c196009f9565e3bca313baf2c0bbf9056c40a32", - "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f" : "0xc8e50cbe1f871d49d3413cb6ab1b3acc465c9f8f49fdf24eff977eee1a4680dc", - "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1" : "0xfc33bf75fb16cd19f86e2b1664320b90f5d945b3b52e1a6e78081e9b99078f0f", - "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc" : "0x2b55f70415ea2b92ba89ed2ea788638af79baccaa79e2c6c7d058e4db56f61e2", - "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5" : "0x627fb77633bc7329368baf13bcc5d7a2e0a0e016d95b9685d9711b33eec14051", - "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae" : "0xbafd2c96e0e755436cedc9ddd0a02ff8d8130e4eb6e6522765a7156190feebb8", - "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e" : "0xabc5fab93560a47cc8af9e44b3ff4bd7e4b5daec88b627f3e12b4810e33841d6", - "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415" : "0xe28188b839c07bc527498e154f6004fa557cc1ce27ba0788f51f52feef69c975", - "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca" : "0x533e4686be17668b2757b0abdf63040904101979ef677dec0926dd60d548c03a", - "fa2d39b681f3cef5fa87432a8dbd05113917fffb1b6829a37395c88396522a4e" : "0xeb620c241aa984a843097175eff92dfd9666bc944fca381fbe3424e138bdb8d0", - "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794" : "0x22c4e1bde114bfedd06eea8246cf21dab1a5851d0e156925ddee3d54fdf20c63", - "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652" : "0x8a72cd8ca670ef27e6e8b0debd89be9f9e22280cc7b8057c0b767a12d92dfa33", - "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2" : "0x75fb48e3c98eabf4484e90c51fa9634dc81c9ef0fffc6d7901cf7bddf4a06f49", - "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e" : "0xa3a9133b8b0c01a36ae931e3cf940524c40981bce0ebf944e5139390820b0723", - "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44" : "0xe3e08586ed16a9937a2a3a98967f85ddbba7e331d783483b80fce323cd4dc1ee", - "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e" : "0x0d2140b047c1764e52ce2fb6c628ceb1c6cdb03c07be0b01d2fa4644ab84e680", - "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6" : "0xbc3f7cfc5114ea27c769cdf320641e489371478ab86452fa7b600871d924a274", - "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449" : "0x557b37d18b817b5b60924cb4b57d3e5ac125ce296a323fae9d1f6da2e4b86576", - "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80" : "0x043e349d0efc9abbc8d7a7a76ea2d548fae6359dff8db809016537cc9999384b", - "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74" : "0xc2909b2472fe0343542d712f0228373e6364569e53a406ee9e35d9a22bb0bf0a", - "432a52bde005a010dc32c47733e4595fea0ea04df3b5aaa1c45153a527d646f0" : "0xb4581880763d4fd9999ad774d61f06169a0094407575888529db59710b4a0abb", - "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a" : "0x60994253a3ef9fd4bbc21e22570ac0a659daf036fd4e135324da0b5fa05eb417", - "d64da7f265f00c456c2ebadf4593848129b9c86b45523e441d2f5ceb838a89cf" : "0xe53c1b5038407e9f0b523c6eea46a84723bb1463364fe83a5210265ae7453a00", - "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445" : "0x1b89490bfba1f7eeb2132197bceb6cc5b7465dc8bce09cda937a54af637a3a5f", - "ee42016c303126bd9263724e00f83a8114e84518c6e8ffc9738c001cc301daff" : "0x7e659a4f98f2915d50c2151bd989ad611e8233b3ba4569da2be20aacdfbe47e9", - "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b" : "0xb3544b1d945757138f7f7ebf5ba702ec0360ba13c42c9d25dd96382ea9592d74", - "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305" : "0x29510890c9ff859f6af73e16f0fa13e9692aa207fec1c5d58a16e6b71d7adf70", - "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a" : "0x25fe32d4ba399a020ecdb713c172083556e209e80bbbb3f77fc76e66c300a1e5", - "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9" : "0xf1cd59638bac3757b54d897c500da2886de56601236101bda28637706ed66d1c", - "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04" : "0xca91cd6b0f008ddabb7dc6faf563a11bdd99844c38230bba0896df0c44f0e202", - "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63" : "0xe224b22c03c6ca1cc638d345bc5e419a2301b81eff6c08fecd8545ff0dc8cae6", - "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b" : "0xd5d65a98b2cc2ef42709050a22c0a4041c8583cf8abdb58a9cc44bce8d566868", - "67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb" : "0x418abfd6a1251bd40c9b50bc5af51d80d37a4e18591b2a30854962dcac787285", - "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a" : "0x0d6c6d11a0d7f5dc0cadd1d3f9584dd929193298c74254154f9a2bba9410033c", - "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5" : "0xfd12d2324500be3676bca3c261d242bb5692c52cfe2afa4a6cce1fb3bc6a4816", - "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d" : "0xe787e33e05981bd03351a46f2cb18fc362c645920f9a036b216b209b76c5225b", - "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43" : "0x4428544fbba3d112587cf510b842eedeb5f91ff7bb7cf7cc36fb5b5a72319236", - "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419" : "0x068cea3219eda440819e401a0d88bbb225f888abb06cd60ab66fc9a5c465e9a1", - "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e" : "0x4e3b0af02ade7cce8f5611c8fb786a09eb28e84fc1a0e3f046d6a244bdc42997", - "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0" : "0x0b14d08c93635d0e747dd2372307d286895fc9bb4494e9c0bd378ad51f02d455", - "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4" : "0x56e08e9a8329decbe913f5b0b1eea35ac8ac827a8dbaf5a9379006ac613126db", - "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe" : "0xe46238df7aafb9ea11ed890099cc33e6445e9fbdc8537cf0d76400172bb000aa", - "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042" : "0xc340ce58ad605dabe36ffdf42c8c365f4a2be54c8da1ba6bfb439200b3734ba3", - "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535" : "0xffefaebe0f0f2508b3605f1140d725476bf549b6f54cb14d9c0179e1381bbe04", - "d45392f678a1287b8412ed2aaa326def204a5c234df7cb5552d756c332283d81" : "0x7f733d3fcba1c5003c5f163925d410c7212d3370bcf86b2a10ea98116243e9c9", - "765f416f2d676848b5016428bc9295fda3e71d5e97b16df75179a378cef040ec" : "0xaaa16e55d9dd89e41635b37165cc1d901f825b7dfbcd9c40ef0cf7e070ef41d0", - "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e" : "0x6b33970eedc16ac12e07e9e5488b72edd5010167c6d7ce4783bd54a17a546782", - "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179" : "0x2bb53e525573d21d1187d5c2ba9a7906b01f69b9ddb8c24748656ddccd68e487", - "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90" : "0x6a1f63bab3b8bb5b90c52333e5ebb2774737c1ba85fde5097e4c484579535d4b", - "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b" : "0xf67a2c84883114b27e9a804347a46234ae32d587fbd56d9b4b3e4dd5233cc8ce", - "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6" : "0x06e88e2276916acd3bf6bbdbaeedfde1fe80b2425c77c4e08ea20b1143094bd7", - "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623" : "0xcf68e33a3bc3841a17bf4928bd9ee9d3204d9ee179a06a690494c36db3fdc390", - "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a" : "0x2b9a5d4da91b3059edc6d6bd872e41610cbdd945b894c8d467054f0f5b2b6f9e", - "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f" : "0xaa0b4298e868346cddadac8ad5cdc722dc4b80c1a91057b36a2a7f8f0f8df87b", - "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c" : "0x6a8f9eac547430c7569af634c3f66d863e714317983d2198800bd602d6a35ae4", - "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7" : "0xa7d75b7e766e20b0dcf52318bb9262d1fbc0bf5845d93873d795788e44155dc0", - "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec" : "0xf72d07087221b7aeca3576250241be5e9301cd2c9e7098cafed12df90ec1e5bc", - "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627" : "0x414dd1065f58fd2265d1e4bba4e2628a22d16c05004834e7db0f4f96d56b331e", - "5a5d5f7fb72cc84b579d74d1c06d258d751962e9a010c0b1cce7e6023aacb71b" : "0xbb5529fe529f8bfe2e2d78bd69b13e3e20e8d674df3d4ba7d3c2e5396543cb33", - "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab" : "0xd0e566b054f8171e9ed3337902074c8114bf0b869417b903f530cc1c9d7a3a8e", - "433faaa801ecdb6618e3897177a118b273a8e18cc3ff545aadfc207d58d028f7" : "0x00163a8b12a3f1bf9de16664aabcdd63832e262b6f2025d130022d5d1ea2eba5", - "c415de8d2eba7db216527dff4b60e8f3a5311c740dadb233e13e12547e226750" : "0x56baceff0dca5a4e903203d7299db74691639ac4c6954e408056675029eb19f8", - "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0" : "0x281303954cd2731c4302e730998998c009d6a2594d47c25e530cd56c7a677ca3", - "ad2fda41998f4e7be99a2a7b27273bd16f183d9adfc014a4f5e5d3d6cd519bf4" : "0x5a1809bce6641551979a9b57c7c1ba2c33e2e8b51601432b576d5e1613e1f3d6", - "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812" : "0xeb732c4568619bbd79a5dda4c4dc4832905ffe0ff6978ce58efd64250d5bae61", - "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae" : "0xe5253c1e4f90ceadbcbb69d6324044f36da477c2361292ddc5ab1f6e73f22b40", - "67649450b4ca4bfff97cbaf96d2fd9e40f6db148cb65999140154415e4378e14" : "0x868853ce6cde9050158ada5690870fe0b33868400c8d937ef661ada095389fcd", - "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" : "0xd43d6d18ce07b481f0871337b0a3f1d74972852dac3866b8b59b6d367e2d87f8", - "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6" : "0x846ba321e90a18bdd36bb17e24a931bd67aa9ebab1c61f69dfe798932fb5a691", - "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688" : "0x6a57cd5f71e75a80dc4b2a629ba1062be7c017ca42fd4a938e54fe1906834069", - "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c" : "0xbedd56a5e0b550598a7491e214e06266ebeab015cd74a1d8df8ced0b18b60334", - "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88" : "0xf8583c05f389c74674aa7663026f38f14b844a53bfc3a403c4fbf776ebaadc07", - "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a" : "0x8a246a343c04b730525a476e77fba9464fc2db37b1a41adab1f1f1891717d6f7", - "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7" : "0x2da2c95e03f37d2d2e8c37244440f24d19c7d62dad134d5b4dd8c855e287790c", - "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0" : "0x49e76e78ed402461e7382ce401ca01cf58498f676521dd288af86644a12c3a8f", - "95609d32c98a467a72ac419f2e64bb2b8dbd5b00b74f3a0fd72f42343af1743d" : "0xb47aee5df8fc414469091ae1b4e4c0c8caaac8455fb979cf87c05eb53e1379a4", - "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933" : "0xd91961e22ab01e0b4e543985d0b9eb5407d75a9729fc64353a0ad8f58e4aa17e", - "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1" : "0x493ad7286ac642b6ec2acce4b90f9a501df53ed9b8508f5e5dbef0b4a4121362", - "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d" : "0x2ebd84d2f7e7a27f6adf6daecc7a8c0a613fc6e4b955bed3712bc6b14b6e4852", - "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864" : "0x45168d43a3af945d9f036eff15d264c79700bbfee4ff1def589d07259d8af7c6", - "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13" : "0x3a074bdc92b4897f66a14d802d64d1ef1f86fbc8f4cfa10a72b3e8365ef34003", - "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30" : "0x8c14a293c023cd7b95de90ab95aac7a4afe79d0fad06b67be24016c6462a2804", - "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb" : "0xd562076e43428ff5172e9e11cf925676514440bf6768e86cda740b7096decc1b", - "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66" : "0xe186cf9b253b558790d7022ef5d3cd5ddb88c6e87652e3562821acc06012b81b", - "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4" : "0xf01d528249d69a7ee2a8cf185a5c923201525903622d4655767695ed8599ba36", - "649fdd7ec08e8e2a20f425729854e90293dcbe2376abc47197a14da6ff339756" : "0x7347eb0d644a2da6e509a8b2f7696843472c0dd3226065e957f45ec6f2f15869", - "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225" : "0xbb3a28603301b0624541f05dda7389d4cf7224f5d12c20140a8cea9b5bd1026b", - "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0" : "0xf1d362ff6d39c7dad6ebc0c16a81904d1a7f3614959c6d02b3d6e08cca9ad769", - "159b09ed169a3cdbd13fd96ef4b3cda54972058906d38a58f5cd327e5df1478b" : "0x8226099dfc20f884f3339c01db0913752d7eae1a3e350c6bab77622711a1fb10", - "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b" : "0xd4870e09a36e2ee62e7dbe16e9d1c244410aeb60979614c4df76121a6862b3bb", - "b216f7ca372b318985903866e0b6dc44a14564828c49f36d0d363805aa76335c" : "0xd26f14421e93a4d5e7fba45abe59ed9a5a2b22c174e2215fccb0e021891b9638", - "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32" : "0xdc0c01c3b1eb880e2500fc04fa6769ad1bf832563af3c2fe501ea2e7c8a44786", - "4176cd17d4a1fb517b6535e70084ce85e1bcbe707c66b960c8bd5256accc1b2d" : "0xa211acda02cc19ae5fef8614085299188111f6f1d928a6861341c76a8fd7499d", - "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc" : "0x00223c8d55871de1144004d47843675d8cf3088b32bf605b2c155dc196f00677", - "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554" : "0xa09657d175deca19a6ca4eba787d8be37d5bc6762623598007dd25a92cbc764e", - "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879" : "0xd84087a1eacc338655aac7906b638a92e8ac9e77526c3c5d6ecdef36dc7bde59", - "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86" : "0xf173f9743d53f9a67428c86cdcc40c2735f55b6bf66b02532d78c7ab3ff4d603", - "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8" : "0x325d448fbee4659a8480be51c4d207b58831bf09087cfda460ed0106ea849349", - "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293" : "0x8815331366174347f07e36179e460867f5e460f7150a3295b8b5aeece3d2b483", - "3607bf4d7b78666bd3736c7aacaf2fd2bc56caa8667d3224971ebe3c0623292a" : "0x65d45de4eaaedf2b2d0988428913f6eea3b23581bf080f005d2d605989fd4bb3", - "81a21b01c15b8d01f6cdfed65e00987cc4c901858c821b2089344987de3102e9" : "0x88b600db1ec4674c10f91df06c3ebc7021545328b857995aa3945aa4289f8b44", - "ff4c53361e36a9b837433c87d290c229e1f01aec5ef98d9f3f70953a20a629ce" : "0x5cd26d092f4a1d3a5f6d78fc4ad529493b3fdabd1853bb886737a4d275b00073", - "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81" : "0x4b00b756ab54ca659a7fcc307b16b338dfd49c8b6a4cf7d07998d246f1f0f72b", - "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b" : "0xb1f0bf15509d865d1b611de52eb33ede3767f4601c28d62c2499ef4e5a18aec6", - "26852e2d0696e25e6adaad2d7ca3a1f2f15aab68d317ace14d41b4128a7e780f" : "0x99cdb56755105d1de3565c8789e3dee656a23e561d1277440c1f35ead22fc948", - "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2" : "0x6f3e9051d9d4cf95d2164ebad25203ba413c741bc133525b169747756f5cce8e", - "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549" : "0x6f78342af8e9575f6096fece95465e2af4599427a2e232b6fe1867954adc6f84", - "0781209c28fda797616212b7f94d77af3a01f3e94a5d421760aef020cf2bcb51" : "0x593a2113695d9d60605b2ef4f7b7a3a9e8832f264e58c249b97a79cf00a0a141", - "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8" : "0x7ebc795f79ba493870a54bf2eeb4b8e12fe3884d7c626bce8515296e84503652", - "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592" : "0x89dfcba3122a3470d794333141d93d53551aaaba5a1717a433e37f6deb6c7ff5", - "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace" : "0xeb9e2b6a86cafdd3410f254eabe64f1048d1382d9a324f3fbbe61fb9da9bb8e8", - "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7" : "0x8ef90489d78228351f2d898d621471b171efd14aa628bf99dc89e33e540202d9", - "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a" : "0xfa758eb1ddb64a74853f768a7fa7bd8b243c13f8e9b8202162711146334c265e", - "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd" : "0xa42470d105b61a27c019b5bd30416ebfa629ba0646163bb11eef774b46b1000f", - "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411" : "0x74026eb168b50173148a2cf5cf983285cc2701809c3ac25d580da3dafb342a1b", - "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6" : "0xcef5b2c20b6a38250ba8e2bb8542091ba2e82209d2c63c35b0a6f8ae7bfcfd79", - "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad" : "0x57e58ddc5c907208d5866c1fc184d1dcb0a5eb60b1862875e8458faa5635a0fd", - "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353" : "0xe90cac728a1989eff73c4712a6f119836a984e09cc955610e62efb9dcab1c389", - "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c" : "0xe170de9672b42ede20a23b739b18aa1404277cf42e403b3494c38d4a7b72b3a4", - "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5" : "0xd6055e4ad616fd08f983010505e449e67004be63e764d57c3736ddad5d140e90", - "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9" : "0xbf4c132fb75caf3244bcb82f56e1b04db21c82868c878d4c509d193be10677ca", - "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1" : "0x3a44393121d08b3dca64c3e030ec47f6211eae6ed7d7383622a0680ef310ac10", - "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f" : "0xfe8ccc5dd7e957c386a16594392ee9e4d53ccd3a1c9c66f3d333df1ebd6bb126", - "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1" : "0x1070dedaa1774089600233afee88908a3986201be330876d148f9adf131b1e62", - "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46" : "0x6c883438c24569de4bef718304080e65b1ebd6fa532191b9c69f3a36f148911f", - "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a" : "0xe097d4952448a08d78ee1c738db14b796c3f4a602c14db0ecc45af3acf660edc", - "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f" : "0x725f0b8a57dd6bcdf1f0b801a1ec0009a58f2f8cec6688bebb9757d365dd4011", - "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1" : "0xe8c556f8e3441f353f93b6c3697635abfcb69942ac1535db8f4c20c78e625394", - "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1" : "0xfab0331c077707ba2d63eff0af9df830dbe8875af971fd5417af06f9a3af29f3", - "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79" : "0xd18a2ee6d59cecab223cefd9f567b388fd2a1ad15086a42ee9086e5c8ecd2e5f", - "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d" : "0xd9a51d29b7097feb0b56e3573a5aef7426e4bafea2ae4d2ca2d21ae05a48bb0d", - "8ac0c70fff57e9aefdf5edf44b51d62c2d433653cbb2cf5cc06bb115af04d221" : "0x765146e6c6e30e4a7495f0f77c1817e50abcb4f3877edbc4bd3f199d7c22f6b4", - "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5" : "0xa293eac6352f51b426fe26c0ebd1a2691d4379f25f537688490a0e99f4fad32c", - "944f2f908c5166e0732ea5b610599116cd8e1c41f47452697c1e84138b7184d6" : "0xc9a6b6937a8d9b076cd6d8ccf43b94bc571d774fae8980e2b4f0ab45a71d6a3f", - "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf" : "0xbfb6957c8ec782ad47274c0274097cdfcb209683f79690897b95543c18a950fb", - "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2" : "0x020257bd7128134cd6a98db78855a1758811c6ccdfa08d1c6ea7b2b5e154d806", - "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc" : "0x9bfd9fc818f9e84b99e42040e5f4a3cb17c56df4c3814b89bf8f37a34d76ae31", - "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283" : "0x8fae08b5241bc5b3d76fc135b366db9053ff27e83b95c02b39d7df995bc1c928", - "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52" : "0x647a40613ecbeeed6b3044c25cb97566b5f1586493036c88f039e5a7cbf9398a", - "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578" : "0x149ba54f5d83a4242c1647387de54025e84775ae31b3e401e0505ba9d84814ce", - "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a" : "0xce1b26252c552fbc27c694b34b0279534d66c1b6ac8a8a15a7e0802756381539", - "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e" : "0x6c08bfd4b367ced7af611e88f0120114ef8ecf3f6c02dda69a3de40b30f078a0", - "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c" : "0xaeb0380e0d875da5d2acf558dc2c47c9308104a4b270aa8fd1d039ad9fe1cc47", - "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a" : "0x929166ca35d9ef586f4861eeb16812a6193d5a0a3d8d6aa25ad0308f16bf2e2b", - "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f" : "0x11e6e80d75b9e02f0e7a73c5fd6a037678abbda7c14b6ac53561c5c732b05bbe", - "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86" : "0xda7e0bd37e3478d59755e44a8b910794379f8983e5dee2fb7ffbf3ba5ad68f8c", - "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d" : "0x2ac120d486ffb07d41d48bf43ca092ec87ebfab30680faf4ef03314d1026e57d", - "70dddcb074263ce201ea9a1be5b3537e59ed5b9060d309e12d61762cfe59fb7e" : "0xb1286a78b20a268dee0faadeeac8a366cf50946fc244c1a1121f3cca54b71702", - "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c" : "0x79e1884e5f17f8af3be116a29eced5ed328a802afbad8260e89baf0fc99e7475", - "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0" : "0x107ff0e1f03c691ed9b0011bd1f2ae109b0fc405d3fd80136e7382c25caf3a2e", - "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481" : "0x9024f1b288cb1c7d734ba5978dd18c34d3e0f51f9b4f2a8334fe8d40bf6d01f9", - "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb" : "0x1f1cfc5943e1d662e50e67b99fb770bb05fb1fb30eb3b8360cc91053c980c664", - "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17" : "0x756f2ccf9047a226a763b687e044d4bccfb03e5f1b3d941de7bec90f7748266d", - "6d20210495d6518787b72e4ad06bc4df21e68d89a802cf6bced2fca6c29652a6" : "0x68cb9005e58ea827135342afc31ba1391832f17321366213a39c3d0087bc4906", - "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8" : "0x871596766a4a6876cbcfbdba61d5e098d95db6251659f25bcd25f74d79df24ac", - "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5" : "0xe670146c6741b725ab5e2fd550460d035b8aa9dcb66cb666545c4bbef27814d3", - "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3" : "0x18086cb9c40bc2a8a3233310def4387724fef0bb13857e136ea2ab48a2d65326", - "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7" : "0xa3c0b9d970667d87fffa56a0da7f28e6b3bc30a6cabfd3e8f6685ba17526e30c", - "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717" : "0x303928f43b984fca0546ae35b70d8479a353df9e0f6ffdd5158a51dfb75694c0", - "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32" : "0x140257ad88a951c3d37101fceb3768775714bb0c6426b38d6e7a30be29decfbf", - "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d" : "0xb3c92f18a4a0cece945d6d36d232e6abc1f19b3609a5ec75c0cffbac29f9d43f", - "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6" : "0xbf1a106608f6f71fb1ce8331219cbe6cd52093dc9c0d3ebeca90ca7c623b0bd9", - "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b" : "0x6ec30b18b3e7cd66322218e6e6904f8f27ca45627b20be58efc7479d28853a1c", - "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd" : "0x78930c93cf2927994325d75d161c77c84c4885b7bebd3f57da954eb719b8d0d6", - "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd" : "0xae174a636ecdeb169c4a42f8c20ce654279d9f54be976814a7eab9caa553ec89", - "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400" : "0x401a6b36ca1be03b62afb72fc3729bd58e773de5c889188d691f2552566217c0", - "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7" : "0x0d1302511ced1c04f538a410aec75c3fdd98a09356cbe6e1c4bcf0268aeed21b", - "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386" : "0xe2b124eb856f15621aad931bd3dfe59c7bcc74555ef6c114f32700b5a6157368", - "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710" : "0xf5bb207f08bc335db2fcfbe0c6b991124739ca6aef4490aecfb0021633d3c23a", - "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd" : "0x58eba59d0c838f172f2996b9700b6884ede500c805724849e5b444b665824ac2", - "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779" : "0x1d5139a3e56f312c5e5c10be74e6da317bbb84edbb37c6caf7ab347253f76ec1", - "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628" : "0x633ae4b37ce1550bb4a0e5c55cb7c70bb59cfa54aa56261295fdeecf1eac23f3", - "a1a6465f4c2ebf244c31d80bc95c27345a3424e428c2def33eced9e90d3f701b" : "0x4049a33c588398f5c94d3b6b2d451b148c43ab8eeaa2e7d83c3ef849282bd6ff", - "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31" : "0x5480f43cc0b086935e4220fc77c7572d59a6fe9e7c2cef57a6507430def5cae2", - "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240" : "0x95de11d62fb62cfc939af4f6b311bef4c96a13af7360e81658f3d4d54974b788", - "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483" : "0x3911534919fe7be175f74cf4db6d5d9c18554319feace46485c87421111abe10", - "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0" : "0xddb8b30fcbde7846b99904be0cdcbf2a6b77873f8e7246bed369d6707ce232c8", - "06d9fa501fd2bef47265361ca0eaf6e0a97c3b226cea5ab760240f70818581ad" : "0xa904b97f02938e3286db15c740d7b8cc7e7ea87c7fef24584463adc630c7482e", - "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc" : "0x9e91359f2f244341306653d3da420a54cba72e699205cfa83290fbfb47971b61", - "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c" : "0xedf5c28a19358b291815f5e623e49ed07596474c200e287cf4f23b5ccf6bd6cd", - "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983" : "0xa61677c7fda3c869db3aa6ffc3df6296cdff1134719422354dfaf5bb83e1545f", - "67aed5a24fdad045475e7195c98a98aea119c763f272d4523f5bac93a4f33c2b" : "0x508027546cc92b430f9601a01f301391e39d1bd687fe2b399567ec7faa390e41", - "5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52" : "0x9754210c1804a6b65a3ba2612b0a0c109b60354cc802a2d5eafe84ef76e0f5d0", - "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe" : "0x71ad87ab2bbba663f77aac0a4945a93a7bfb21f3664d91b29c15ed99040f8bbe", - "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1" : "0x0297d202195fd41c4152cd474610074f2563e6f44807ecf42f5c63c796a53d63", - "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b" : "0x385ae1ad494712516b4316a7f3c16030250020a9b15efeba9b4d001f2599c051", - "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b" : "0x5a30cddba6a21106320366eaa5053b48a45c9b0d9c38b36f10c55de20e74144a", - "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814" : "0xce72042c196a3bdc47658b525f95407251a9428a83a3377fd51637471cf0e86c", - "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485" : "0x62f2403f3470ebdef88c3dd22a402b02f14dd5801307409b639239bd22e27f39", - "6b701e292e0836d18a5904a08fe94534f9ab5c3d4ff37dc02c74dd0f4901944d" : "0x5116298c002c1e37c9801e6853eece63a962115213db0fa4a49303955ee00dc8", - "c2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4" : "0xbe4ea6a4d49736d4a3d6d96ae0a5055ed5372ab7e6d3d72abaa32d69058469cf", - "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819" : "0x30f3c5f93666236348fdc7207427741e27342602f236ffa761114d17108f955e", - "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca" : "0x82b57fac17738db916e60e25c7da72bc744b981565e08f78abb9616caa0b3b22", - "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf" : "0xddc9e159f69768ab723666dc15f1bd906b0bb2cfd2752b62bd92691459d5cf6d", - "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501" : "0x6d6c7f0b6508af7faa61044ff392fc8f7034b9ba237a1e64ea0fcbb83914c3c5", - "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad" : "0x41c91ba219d7af23a1eb4f89df0599a229a60719d8cc181dba3db774496e80a5", - "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271" : "0xb3ec595dfe31a7a5bbc34a9120230dd2243d84988d79d3944ebfc9051b913d89", - "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef" : "0xd2a6d3112f39345a30692c389f071b293e6175737706a691bcb3bf69f877f3aa", - "1021a42d623ab4fe0bf8c47fd21cc10636e39e07f91e9b2478551e137d512aaa" : "0xa1dad8dd9cea416bfd789732606668c3ee8b5118dc54f2f19627834d7a092819", - "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3" : "0xd7df130dcda9b2f2c3e437940d55d225cf594354a0b02de2b19a2b2b15d9b993", - "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff" : "0xa7fd5e025b891d334e4a3923aad7dc69454ada52bb9791669ec881bc8251a87f", - "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76" : "0x3b19ade0936c6b7fe8f8880e20975f10a980b960edb1b2e745c2001fc03ad6e8", - "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8" : "0xdc754ecf151ce912b20854fff885227a7aee5174c43dd8a82ae31f86b11152c1", - "1dcf38b0206d27849b0fcb8d2df21aff4f95873cce223f49d7c1ea3c5145ec63" : "0xaa4121fdc7231b8e69a1013bfbb77f33809e742057583cdf98ce052c214942ba", - "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1" : "0x010414e5bd8c0207a0f854274075408ce2923606da87accaab8486851b10a634", - "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7" : "0x0426ae24d6351a48242f0eba794a6b22f4c79839d50694a2b7a9b0de0cbf7bee", - "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe" : "0x1da3431d92ee78272aaff4f207171138b16844d91e7134ac392d2ebee4815e22", - "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785" : "0x22f3da8a4ebdeaf6a29ed5422960a62040daab2cd0d1e673d68a8d4d44da1835", - "07a8f31e8910c3b52f338d2aca6f4dc2404753ebafcdf53290ef4993911a71f8" : "0x41e2a7778d36d25ed0508f8cdfda395574ec853faf2d11e69e7ea451cdfaa3c4", - "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744" : "0x2b35fc431e0c7533fef132e3a6a569d09dd92285305e9c876cb4dadb1a039b68", - "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918" : "0x000ee451a8b800512bcb2f9d03e8f3649cfb8c803c632b56d3bc165074fc20f4", - "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25" : "0x0a18f3930026fb51e1e3964a65fea3425fe13ff2a09a71e3d4c9dd28ab4879d9", - "6e3f3fa8253588df9326580180233eb791e03b443a3ba7a1d892e73874e19a54" : "0xf3c0d2d98958ef9e677084cc0068bc48c6f07606708c64b06a09a0483a7b7531", - "ee70804471fe22d029ac2d2b00ea18bbf4fb062958d425e5830fd25bed430345" : "0xa7a6fb1ea440bb5c0ada4a0a9459e904c7ae2443d92e72cb53eb3b9d192f843f", - "c3d5d8d6d17081b3d0bbca6e2fa3a6704bb9a9561d9f9e1dc52db47629f862ad" : "0xcb826a89a5331cf23436ac1fd0ea2adb46698c880fc7152a20f9300d0e05776a", - "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc" : "0x77fc923adc5c78bb969bcaadcb840f32acc2ebbcd327987c056a7d7ca0d96d6c", - "4457960559b812558bb0f8cb7912f8bcb843eb801a3133ef45be998630ff8c05" : "0x108e02825bf4d1b4a371bd839915feabb34675d5442dae9f41080d7eccc2b450", - "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b" : "0x737bbb7c8fa169933b93ed6de89074a8933c7d05113726e3f4f31e5eea7059a2", - "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90" : "0xfd08b4637699978fee0a4a5d4257582e6841c253794ca5fd4dc0fb54d31fcc89", - "8cdc9b2118d2ce55a299f8f1d700d0127cf4036d1aa666a8cd51dcab4254284f" : "0x723470143332c8f375823c5c6a85bc8d0b26e974eb4a55ea05c8374d75f7c991", - "39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3" : "0x0af856c1799c48dc8ac882ed015afc093d32210d831b270e3b6a43b9f8077b6c", - "097d687437374051c75160d648800f021086bc8edf469f11284491fda8192315" : "0xbe069cc5122df358b63d8a4686fa079ec52c5a6d58c5ee6fc9c78976e05f353c", - "9f383d612ac09c7e6ffda24deca1502fce72e0ba58ff473fea411d9727401cc1" : "0x4a8944797dc1845f5a3617b7057c01d1714bee6d41e808cf038632f6ae811212", - "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5" : "0x8183a78bc77dda0a9df8441ca8a2bc2b18e9e883e04b36ac08996ed4691081c7", - "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9" : "0x66d181f1031dcc934fc7b787ff7181560c1fed490466247a4966aba26fcf31b8" -} \ No newline at end of file + "c572690504b42b57a3f7aed6bd4aae08cbeeebdadcf130646a692fe73ec1e009": "0xb6f968f116973dfe1166f73955f59131282a308d47658bc074e400142a6df99b", + "150ac9b959aee0051e4091f0ef5216d941f590e1c5e7f91cf7635b5c11628c0e": "0x690fb7e5ed85f981b98b881db07458a8a467ac3d817761ee4d79cf9f801480ce", + "dcef50dd0a4cd2dcc17e45df1676dcb336a11a61c69df7a0299b0150c672d25c": "0x0575742f5fde8beaa28022c9cb8376dde6adc5fbb09c0eb7e34f3c884081bd97", + "2356af9529a1064d41e32d617e2ce1dca5733afa901daba9e2b68dee5d53ecf9": "0x3802cab0d68b659c81b66f849c1cfe240112f12183e378ed50c92d2c01a63443", + "f0d57deca57b3da2fe63a493f4c25925fdfd8edf834b20f93e1f84dbd1504d4a": "0x9b3111a3b27b0315f601f560fd1d340a040645f5e99455013b48275efd8040dd", + "19d75fde7fee50fe67753fdc825e583594eb2f51ae84e114a5246c4ab23aff4c": "0x081f8f00aec130104ddbd71142733b262e1ba6b4d3ba87b97409080ac3b63412", + "2f7c4f738d498585065a4b87b637069ec99474597da7f0ca349ba8ac3ba9cac5": "0xc3f535974580ee827aaffedcb46627cc99eca188f3098b9c8894b39a3742dbf8", + "46b8cc9347f04391764a0361e0b17c3ba394b001e7c304f7650f6376e37c321d": "0xd0d5bd619b295970d5aeed38e2a41cba55bc4cc54b9e62978e51e054679c449f", + "fee33f2a978bf32dd6b662b65ba8083c6773b494f8401194ec1870c640860245": "0xcaeab2a94f62d3c903d67526bf3bfa55d275f9025ab1f04a79425795ea78482d", + "2a01deaec9e51a579277b34b122399984d0bbf57e2458a7e42fecd2829867a0d": "0x4733c0aed86e5e9a1a6e71dbebef26d1bb7ed5f6348a7cc8ba21536c2f11b0db", + "5c2416ad4b5fe25c38ea2078927d59dad6a1d4110480c0c96c9b4421744f7507": "0x9974f56dcf7fbc5c4ea83d8c0d78a48f95455271da020b38966ab70ea83032c1", + "8ccb376aa871517e807358d4e3cf0bc7fe4950474dbe6c9ffc21ef64e43fc676": "0xfc562c8e5534f9376bb23db344ad7f3c8a8309c0a0da8fa76096cd583858d318", + "26d53c97247ec18d576bbd23f88078acc22b42168dcb1d29a76501a956e26bad": "0xfb444178d7ad7da262bcb933d04f5539c6af1d48c44811cfc32fa3aa749069de", + "5867f5683c757393a0670ef0f701490950fe93fdb006d181c8265a831ac0c5c6": "0xf10573d71f68d054ad838d506ab3fee145d5729c3e2abd5a0d80d8b770498d24", + "6672325a220c0ee1166add709d5ba2e51c185888360c01edc76293257ef68b58": "0xa4f7538fdc2d3ed5c95bb6eeb675828a05448ca9fac1508122f6859cd585aba4", + "8bf649e08e5a86129c57990556c8eec30e296069b524f4639549282bc5c07bb4": "0x4f6bf454e6fbca35df7161479e0b97080babdbe6dcc20a7bb08c8ece5fb3b33f", + "27d108eb764c912f49d3453a21dd95516619b1c45d0b607ee58a137ac8a6f32d": "0x94f04897ac3357c9b992db1b2c196009f9565e3bca313baf2c0bbf9056c40a32", + "701223c92a39dbab065c4a7997fef9c41c8de26ca2bf1f808ce0a4ea1cfd421f": "0xc8e50cbe1f871d49d3413cb6ab1b3acc465c9f8f49fdf24eff977eee1a4680dc", + "735f591e4fed988cd38df74d8fcedecf2fe8d9111664e0fd500db9aa78b316b1": "0xfc33bf75fb16cd19f86e2b1664320b90f5d945b3b52e1a6e78081e9b99078f0f", + "327ae981719058e6fb44e132fb4adbf1bd5978b43db0661bfdaefd9bea0c82dc": "0x2b55f70415ea2b92ba89ed2ea788638af79baccaa79e2c6c7d058e4db56f61e2", + "3fa4252848f9f0a1480be62745a4629d9eb1322aebab8a791e344b3b9c1adcf5": "0x627fb77633bc7329368baf13bcc5d7a2e0a0e016d95b9685d9711b33eec14051", + "97d7d4c20e5a06fdb60f7a448a9e9a779f2b31c3f21121180010a4a470844aae": "0xbafd2c96e0e755436cedc9ddd0a02ff8d8130e4eb6e6522765a7156190feebb8", + "f3b50961ff387a3d68217e2715637d0add6013e7ecb83c36ae8062f97c46929e": "0xabc5fab93560a47cc8af9e44b3ff4bd7e4b5daec88b627f3e12b4810e33841d6", + "83a6de4ec10bce1c0515d1aac082fd193f268f0c3b62da0c8ed1286319272415": "0xe28188b839c07bc527498e154f6004fa557cc1ce27ba0788f51f52feef69c975", + "3112b03a41c910ed446852aacf67118cb1bec67b2cd0b9a214c58cc0eaa2ecca": "0x533e4686be17668b2757b0abdf63040904101979ef677dec0926dd60d548c03a", + "fa2d39b681f3cef5fa87432a8dbd05113917fffb1b6829a37395c88396522a4e": "0xeb620c241aa984a843097175eff92dfd9666bc944fca381fbe3424e138bdb8d0", + "10946973bfcc936b423d52ee2c5a538d96427626fe6d1a7dae14b1c401d1e794": "0x22c4e1bde114bfedd06eea8246cf21dab1a5851d0e156925ddee3d54fdf20c63", + "89a58e1cab821118133d6831f5018fba5b354afb78b2d18f575b3cbf69a4f652": "0x8a72cd8ca670ef27e6e8b0debd89be9f9e22280cc7b8057c0b767a12d92dfa33", + "765d2ba906dbc32ca17cc11f5310a89e9ee1f6420508c63861f2f8ba4ee34bb2": "0x75fb48e3c98eabf4484e90c51fa9634dc81c9ef0fffc6d7901cf7bddf4a06f49", + "2077043ee3b67b9a70949c8396c110f6cf43de8e6d9e6efdcbd557a152cf2c6e": "0xa3a9133b8b0c01a36ae931e3cf940524c40981bce0ebf944e5139390820b0723", + "c7b72e5d860034288c9335d4d325da4272fe50c92ab72249d58f6cbba30e4c44": "0xe3e08586ed16a9937a2a3a98967f85ddbba7e331d783483b80fce323cd4dc1ee", + "4e53c6ef1f2f9952facdcf64551edb6d2a550985484ccce6a0477cae4c1bca3e": "0x0d2140b047c1764e52ce2fb6c628ceb1c6cdb03c07be0b01d2fa4644ab84e680", + "ef94acc2fb09eb976c6eb3000bab898cab891d5b800702cd1dc88e61d7c3c5e6": "0xbc3f7cfc5114ea27c769cdf320641e489371478ab86452fa7b600871d924a274", + "af5b9ac426ae79591fde6816bc3f043b5e06d5e442f52112f76249320df22449": "0x557b37d18b817b5b60924cb4b57d3e5ac125ce296a323fae9d1f6da2e4b86576", + "67a6f93030420c1c9e3fe37c1ab6b77966af82f995944a9fefce357a22854a80": "0x043e349d0efc9abbc8d7a7a76ea2d548fae6359dff8db809016537cc9999384b", + "0b46c1c04e9c914037cc4e0561a7e6787f6db0b89b7b65281f0f6fea1ce45a74": "0xc2909b2472fe0343542d712f0228373e6364569e53a406ee9e35d9a22bb0bf0a", + "432a52bde005a010dc32c47733e4595fea0ea04df3b5aaa1c45153a527d646f0": "0xb4581880763d4fd9999ad774d61f06169a0094407575888529db59710b4a0abb", + "d3178156b7c0f6ce10d6da7d347952a672467b51708baaf1a57ffe1fb005824a": "0x60994253a3ef9fd4bbc21e22570ac0a659daf036fd4e135324da0b5fa05eb417", + "d64da7f265f00c456c2ebadf4593848129b9c86b45523e441d2f5ceb838a89cf": "0xe53c1b5038407e9f0b523c6eea46a84723bb1463364fe83a5210265ae7453a00", + "2b9ab1e972a281585084148ba1389800799bd4be63b957507db1349314e47445": "0x1b89490bfba1f7eeb2132197bceb6cc5b7465dc8bce09cda937a54af637a3a5f", + "ee42016c303126bd9263724e00f83a8114e84518c6e8ffc9738c001cc301daff": "0x7e659a4f98f2915d50c2151bd989ad611e8233b3ba4569da2be20aacdfbe47e9", + "2b89b9dc8fdf9f34709a5b106b472f0f39bb6ca9ce04b0fd7f2e971688e2e53b": "0xb3544b1d945757138f7f7ebf5ba702ec0360ba13c42c9d25dd96382ea9592d74", + "d1d95644ffc11ca502f21e067a7814144c56b37018515ced4335a886a827a305": "0x29510890c9ff859f6af73e16f0fa13e9692aa207fec1c5d58a16e6b71d7adf70", + "9fb0bd29fe51481b61df41e650346cc374b13c2bab2e3610364cd834a592025a": "0x25fe32d4ba399a020ecdb713c172083556e209e80bbbb3f77fc76e66c300a1e5", + "5967c196ca33171a0b2d140ddc6334b998dd71c2ddd85ba7920c35fd6ed20fe9": "0xf1cd59638bac3757b54d897c500da2886de56601236101bda28637706ed66d1c", + "3b7ef6c95ceedbffbb66bff3d6135a200c5d0a0466b0c90812510ceaedebaf04": "0xca91cd6b0f008ddabb7dc6faf563a11bdd99844c38230bba0896df0c44f0e202", + "12848738d5db3aef52f51d78d98fc8b8b8450ffb19fb3aeeb67d38f8c147ff63": "0xe224b22c03c6ca1cc638d345bc5e419a2301b81eff6c08fecd8545ff0dc8cae6", + "6489800bb8974169adfe35937bf6736507097d13c190d760c557108c7e93a81b": "0xd5d65a98b2cc2ef42709050a22c0a4041c8583cf8abdb58a9cc44bce8d566868", + "67be9f519b95cf24338801051f9a808eff0a578ccb388db73b7f6fe1de019ffb": "0x418abfd6a1251bd40c9b50bc5af51d80d37a4e18591b2a30854962dcac787285", + "91568baa8beb53db23eb3fb7f22c6e8bd303d103919e19733f2bb642d3e7987a": "0x0d6c6d11a0d7f5dc0cadd1d3f9584dd929193298c74254154f9a2bba9410033c", + "03ae4db29ed4ae33d323568895aa00337e658e348b37509f5372ae51f0af00d5": "0xfd12d2324500be3676bca3c261d242bb5692c52cfe2afa4a6cce1fb3bc6a4816", + "9695e2b96ea7b3859da9ed25b7a46a920a776e2fdae19a7bcfdf2b219230452d": "0xe787e33e05981bd03351a46f2cb18fc362c645920f9a036b216b209b76c5225b", + "e62df6c8b4a85fe1a67db44dc12de5db330f7ac66b72dc658afedf0f4a415b43": "0x4428544fbba3d112587cf510b842eedeb5f91ff7bb7cf7cc36fb5b5a72319236", + "72b021217ca3fe68922a19aaf990109cb9d84e9ad004b4d2025ad6f529314419": "0x068cea3219eda440819e401a0d88bbb225f888abb06cd60ab66fc9a5c465e9a1", + "7f4f157e57bfcccd934c566df536f34933e74338fe241a5425ce561acdab164e": "0x4e3b0af02ade7cce8f5611c8fb786a09eb28e84fc1a0e3f046d6a244bdc42997", + "b98e7ae8af2d298d2651eb21ab5b8b5738212e13efb43bd0dfbce7a74ba4b5d0": "0x0b14d08c93635d0e747dd2372307d286895fc9bb4494e9c0bd378ad51f02d455", + "d052e6f54fe29355d6a3c06592fdefe49fae7840df6d8655bf6d6bfb789b56e4": "0x56e08e9a8329decbe913f5b0b1eea35ac8ac827a8dbaf5a9379006ac613126db", + "23199c2bcb1303f667e733b9934db9eca5991e765b45f5ed18bc4b231415f2fe": "0xe46238df7aafb9ea11ed890099cc33e6445e9fbdc8537cf0d76400172bb000aa", + "43cddc3e1d0b17fec1cf2a230f46e9319887a037dcee56e053af44d8259fb042": "0xc340ce58ad605dabe36ffdf42c8c365f4a2be54c8da1ba6bfb439200b3734ba3", + "8e860fb74e60e5736b455d82f60b3728049c348e94961add5f961b02fdee2535": "0xffefaebe0f0f2508b3605f1140d725476bf549b6f54cb14d9c0179e1381bbe04", + "d45392f678a1287b8412ed2aaa326def204a5c234df7cb5552d756c332283d81": "0x7f733d3fcba1c5003c5f163925d410c7212d3370bcf86b2a10ea98116243e9c9", + "765f416f2d676848b5016428bc9295fda3e71d5e97b16df75179a378cef040ec": "0xaaa16e55d9dd89e41635b37165cc1d901f825b7dfbcd9c40ef0cf7e070ef41d0", + "f2fb02c32b055c805e7238d628e5e9dadef274376114eb1f012337cabe93871e": "0x6b33970eedc16ac12e07e9e5488b72edd5010167c6d7ce4783bd54a17a546782", + "236b30dd09a9c00dfeec156c7b1efd646c0f01825a1758e3e4a0679e3bdff179": "0x2bb53e525573d21d1187d5c2ba9a7906b01f69b9ddb8c24748656ddccd68e487", + "c719eb7bab9b2bc060167f1d1680eb34a29c490919072513b545b9785b73ee90": "0x6a1f63bab3b8bb5b90c52333e5ebb2774737c1ba85fde5097e4c484579535d4b", + "c7c60099c12805bea1ae4df2243d6fe72b63be3adeb2208195e844734219967b": "0xf67a2c84883114b27e9a804347a46234ae32d587fbd56d9b4b3e4dd5233cc8ce", + "9095653620547ece988ec51486dc7a6eb2efddbce8ea5bedbd53bf00cca84cf6": "0x06e88e2276916acd3bf6bbdbaeedfde1fe80b2425c77c4e08ea20b1143094bd7", + "88e2d5cbd2474766abffb2a67a58755a2cc19beb3b309e1ded1e357253aa3623": "0xcf68e33a3bc3841a17bf4928bd9ee9d3204d9ee179a06a690494c36db3fdc390", + "b5d0e0fa58a1f8b81498ae670ce93c872d14434b72c364885d4fa1b257cbb07a": "0x2b9a5d4da91b3059edc6d6bd872e41610cbdd945b894c8d467054f0f5b2b6f9e", + "a639c04942ebfdeabf25bf1b88d6608ef387219748d77ea130bc2fa486b9614f": "0xaa0b4298e868346cddadac8ad5cdc722dc4b80c1a91057b36a2a7f8f0f8df87b", + "37505261e557e251290b8c8899453064e8d760ed5c65a779726f2490980da74c": "0x6a8f9eac547430c7569af634c3f66d863e714317983d2198800bd602d6a35ae4", + "70ab610e3ed6642875f4a259dc29175452733316fee440f23fed99154d1d84f7": "0xa7d75b7e766e20b0dcf52318bb9262d1fbc0bf5845d93873d795788e44155dc0", + "fd0690232b0fae5efdc402c1b9aac74176383ff7daf87d021554bda24a38e0ec": "0xf72d07087221b7aeca3576250241be5e9301cd2c9e7098cafed12df90ec1e5bc", + "bd4dbcbfd90e6bc6c583e07ffcb5cb6d09a0c7b1221805211ace08c837859627": "0x414dd1065f58fd2265d1e4bba4e2628a22d16c05004834e7db0f4f96d56b331e", + "5a5d5f7fb72cc84b579d74d1c06d258d751962e9a010c0b1cce7e6023aacb71b": "0xbb5529fe529f8bfe2e2d78bd69b13e3e20e8d674df3d4ba7d3c2e5396543cb33", + "8f218655050a1476b780185e89f19d2b1e1f49e9bd629efad6ac547a946bf6ab": "0xd0e566b054f8171e9ed3337902074c8114bf0b869417b903f530cc1c9d7a3a8e", + "433faaa801ecdb6618e3897177a118b273a8e18cc3ff545aadfc207d58d028f7": "0x00163a8b12a3f1bf9de16664aabcdd63832e262b6f2025d130022d5d1ea2eba5", + "c415de8d2eba7db216527dff4b60e8f3a5311c740dadb233e13e12547e226750": "0x56baceff0dca5a4e903203d7299db74691639ac4c6954e408056675029eb19f8", + "fa17ceaf30d19ba51112fdcc750cc83454776f47fb0112e4af07f15f4bb1ebc0": "0x281303954cd2731c4302e730998998c009d6a2594d47c25e530cd56c7a677ca3", + "ad2fda41998f4e7be99a2a7b27273bd16f183d9adfc014a4f5e5d3d6cd519bf4": "0x5a1809bce6641551979a9b57c7c1ba2c33e2e8b51601432b576d5e1613e1f3d6", + "58f4ee3a0fc4de834a2e96274a696d0f3d8ec45fc76131a6a49fcd18d3ca9812": "0xeb732c4568619bbd79a5dda4c4dc4832905ffe0ff6978ce58efd64250d5bae61", + "8419416ba640c8bbbcf2d464561ed7dd860db1e38e51cec9baf1e34c4be839ae": "0xe5253c1e4f90ceadbcbb69d6324044f36da477c2361292ddc5ab1f6e73f22b40", + "67649450b4ca4bfff97cbaf96d2fd9e40f6db148cb65999140154415e4378e14": "0x868853ce6cde9050158ada5690870fe0b33868400c8d937ef661ada095389fcd", + "63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3": "0xd43d6d18ce07b481f0871337b0a3f1d74972852dac3866b8b59b6d367e2d87f8", + "6f9cd89ef1b7fd39f667101a91ad578b6c6ace4579d5f7f285a4b06aa4504be6": "0x846ba321e90a18bdd36bb17e24a931bd67aa9ebab1c61f69dfe798932fb5a691", + "49f6b65cb1de6b10eaf75e7c03ca029c306d0357e91b5311b175084a5ad55688": "0x6a57cd5f71e75a80dc4b2a629ba1062be7c017ca42fd4a938e54fe1906834069", + "6d0af467543fc7daedf7abed96423877560c8d03725f3e5c87516774982a679c": "0xbedd56a5e0b550598a7491e214e06266ebeab015cd74a1d8df8ced0b18b60334", + "6c75e52531ec5fd3ef253f6062956a8508a2f03fa0a209fb7fbc51efd9d35f88": "0xf8583c05f389c74674aa7663026f38f14b844a53bfc3a403c4fbf776ebaadc07", + "3d253019d38099c0fe918291bd08c9b887f4306a44d7d472c8031529141f275a": "0x8a246a343c04b730525a476e77fba9464fc2db37b1a41adab1f1f1891717d6f7", + "93da3352f9f1d105fdfe4971cfa80e9dd777bfc5d0f683ebb6e1294b92137bb7": "0x2da2c95e03f37d2d2e8c37244440f24d19c7d62dad134d5b4dd8c855e287790c", + "7f981f906d7cfe93f618804f1de89e0199ead306edc022d3230b3e8305f391b0": "0x49e76e78ed402461e7382ce401ca01cf58498f676521dd288af86644a12c3a8f", + "95609d32c98a467a72ac419f2e64bb2b8dbd5b00b74f3a0fd72f42343af1743d": "0xb47aee5df8fc414469091ae1b4e4c0c8caaac8455fb979cf87c05eb53e1379a4", + "8879170230c9603342f3837cf9a8e76c61791198fb1271bb2552c9af7b33c933": "0xd91961e22ab01e0b4e543985d0b9eb5407d75a9729fc64353a0ad8f58e4aa17e", + "6d881ecf489bb24aa10468ca332e3ea262a9bf3a8fb9db1eadac9cce544b16b1": "0x493ad7286ac642b6ec2acce4b90f9a501df53ed9b8508f5e5dbef0b4a4121362", + "2394ce86c7d68050ce52797923860f6c1656a73fb11bd10dacb3f9c719acdd1d": "0x2ebd84d2f7e7a27f6adf6daecc7a8c0a613fc6e4b955bed3712bc6b14b6e4852", + "15add95022ae13563a11992e727c91bdb6b55bc183d9d747436c80a483d8c864": "0x45168d43a3af945d9f036eff15d264c79700bbfee4ff1def589d07259d8af7c6", + "a0255134973f4fdf2f8f7808354274a3b1ebc6ee438be898d045e8b56ba1fe13": "0x3a074bdc92b4897f66a14d802d64d1ef1f86fbc8f4cfa10a72b3e8365ef34003", + "2fb245b9a84554a0f15aa123cbb5f64cd263b59e9a87d80148cbffab50c69f30": "0x8c14a293c023cd7b95de90ab95aac7a4afe79d0fad06b67be24016c6462a2804", + "301377b122716cee1a498e7930a1836c0b1db84667cc78bbbcbad6c330ea6afb": "0xd562076e43428ff5172e9e11cf925676514440bf6768e86cda740b7096decc1b", + "eef52e09c878ad41f6a81803e3640fe04dceea727de894edd4ea117e2e332e66": "0xe186cf9b253b558790d7022ef5d3cd5ddb88c6e87652e3562821acc06012b81b", + "d69731a2e74ac1ce884fc3890f7ee324b6deb66147055249568869ed700882e4": "0xf01d528249d69a7ee2a8cf185a5c923201525903622d4655767695ed8599ba36", + "649fdd7ec08e8e2a20f425729854e90293dcbe2376abc47197a14da6ff339756": "0x7347eb0d644a2da6e509a8b2f7696843472c0dd3226065e957f45ec6f2f15869", + "ed5c2a2711e2a638573add9a8aded37028aea4ac69f1431a1ced9d9db61b2225": "0xbb3a28603301b0624541f05dda7389d4cf7224f5d12c20140a8cea9b5bd1026b", + "703e36203020ae6761e6298975764e266fb869210db9b35dd4e4225fa68217d0": "0xf1d362ff6d39c7dad6ebc0c16a81904d1a7f3614959c6d02b3d6e08cca9ad769", + "159b09ed169a3cdbd13fd96ef4b3cda54972058906d38a58f5cd327e5df1478b": "0x8226099dfc20f884f3339c01db0913752d7eae1a3e350c6bab77622711a1fb10", + "a995d00bb36a63cef7fd2c287dc105fc8f3d93779f062f09551b0af3e81ec30b": "0xd4870e09a36e2ee62e7dbe16e9d1c244410aeb60979614c4df76121a6862b3bb", + "b216f7ca372b318985903866e0b6dc44a14564828c49f36d0d363805aa76335c": "0xd26f14421e93a4d5e7fba45abe59ed9a5a2b22c174e2215fccb0e021891b9638", + "4b1ddc065d08214eb06878d6130a66665febc3fd201733e9bb481094b5de8a32": "0xdc0c01c3b1eb880e2500fc04fa6769ad1bf832563af3c2fe501ea2e7c8a44786", + "4176cd17d4a1fb517b6535e70084ce85e1bcbe707c66b960c8bd5256accc1b2d": "0xa211acda02cc19ae5fef8614085299188111f6f1d928a6861341c76a8fd7499d", + "1ce9069708fb49e2f1b062fa4f1be0bb151475ca506939d6d8c14386d49f43dc": "0x00223c8d55871de1144004d47843675d8cf3088b32bf605b2c155dc196f00677", + "9c68c0c6999765cf6e27adf75ed551b34403126d3b0d5b686a2addb147ed4554": "0xa09657d175deca19a6ca4eba787d8be37d5bc6762623598007dd25a92cbc764e", + "eff690a187797aa225723345d4612abec0bf0cec1ae62347c0e7b1905d730879": "0xd84087a1eacc338655aac7906b638a92e8ac9e77526c3c5d6ecdef36dc7bde59", + "e1d3115c6e7ac649faca875b3102f1000ab5e06b03f6903e0d699f0f5315ba86": "0xf173f9743d53f9a67428c86cdcc40c2735f55b6bf66b02532d78c7ab3ff4d603", + "0b1e3297e69f162877b577b0d6a47a0d63b2392bc8499e6540da4187a63e28f8": "0x325d448fbee4659a8480be51c4d207b58831bf09087cfda460ed0106ea849349", + "6b1381ce7e874dc5410b197ac8348162c0dd6c0d4c9cd6322672d6c2b1d58293": "0x8815331366174347f07e36179e460867f5e460f7150a3295b8b5aeece3d2b483", + "3607bf4d7b78666bd3736c7aacaf2fd2bc56caa8667d3224971ebe3c0623292a": "0x65d45de4eaaedf2b2d0988428913f6eea3b23581bf080f005d2d605989fd4bb3", + "81a21b01c15b8d01f6cdfed65e00987cc4c901858c821b2089344987de3102e9": "0x88b600db1ec4674c10f91df06c3ebc7021545328b857995aa3945aa4289f8b44", + "ff4c53361e36a9b837433c87d290c229e1f01aec5ef98d9f3f70953a20a629ce": "0x5cd26d092f4a1d3a5f6d78fc4ad529493b3fdabd1853bb886737a4d275b00073", + "fd05a384ba19863cbdfc6575bed584f041ef50554bab3ab482eabe4ea58d9f81": "0x4b00b756ab54ca659a7fcc307b16b338dfd49c8b6a4cf7d07998d246f1f0f72b", + "a5eb88d3ea93f6240d7e54b4466bc1857f7bfc1658d49a07f68096ebc0fdde3b": "0xb1f0bf15509d865d1b611de52eb33ede3767f4601c28d62c2499ef4e5a18aec6", + "26852e2d0696e25e6adaad2d7ca3a1f2f15aab68d317ace14d41b4128a7e780f": "0x99cdb56755105d1de3565c8789e3dee656a23e561d1277440c1f35ead22fc948", + "8376cfd7ca8bcdf372ced05307b24dced1f15b1afafdeff715664598f15a3dd2": "0x6f3e9051d9d4cf95d2164ebad25203ba413c741bc133525b169747756f5cce8e", + "972776d57490d31c32279c16054e5c01160bd9a2e6af8b58780c82052b053549": "0x6f78342af8e9575f6096fece95465e2af4599427a2e232b6fe1867954adc6f84", + "0781209c28fda797616212b7f94d77af3a01f3e94a5d421760aef020cf2bcb51": "0x593a2113695d9d60605b2ef4f7b7a3a9e8832f264e58c249b97a79cf00a0a141", + "ec5d399846a9209f3fe5881d70aae9268c94339ff9817e8d18ff19fa05eea1c8": "0x7ebc795f79ba493870a54bf2eeb4b8e12fe3884d7c626bce8515296e84503652", + "7a5bc1d2b56ad029048cd63964b3ad2776eadf812edc1a43a31406cb54bff592": "0x89dfcba3122a3470d794333141d93d53551aaaba5a1717a433e37f6deb6c7ff5", + "ff61491a931112ddf1bd8147cd1b641375f79f5825126d665480874634fd0ace": "0xeb9e2b6a86cafdd3410f254eabe64f1048d1382d9a324f3fbbe61fb9da9bb8e8", + "bd640cddb72063e2ede34c6a0baf6699759b9837fcb06aa0e2fbcecb9b65fde7": "0x8ef90489d78228351f2d898d621471b171efd14aa628bf99dc89e33e540202d9", + "49601625e1a342c1f90c3fe6a03ae0251991a1d76e480d2741524c29037be28a": "0xfa758eb1ddb64a74853f768a7fa7bd8b243c13f8e9b8202162711146334c265e", + "b0948a5e5313200c632b51bb5ca32f6de0d36e9950a942d19751e833f70dabfd": "0xa42470d105b61a27c019b5bd30416ebfa629ba0646163bb11eef774b46b1000f", + "7d669ddcdd23d9ef1fa9a9cc022ba055ec900e91c4cb960f3c20429d4447a411": "0x74026eb168b50173148a2cf5cf983285cc2701809c3ac25d580da3dafb342a1b", + "2f2d17abbc1e781bd87b4a5d52c8b2856886f5c482fa3593cebf6795040ab0b6": "0xcef5b2c20b6a38250ba8e2bb8542091ba2e82209d2c63c35b0a6f8ae7bfcfd79", + "6034b1f68b9363dff2cf9d53b1a88fb4d0929c65f34d532db53738853efc00ad": "0x57e58ddc5c907208d5866c1fc184d1dcb0a5eb60b1862875e8458faa5635a0fd", + "e0f87bbde799f33615b83a601b66415e850788000cd7286a3e7295f23c1bb353": "0xe90cac728a1989eff73c4712a6f119836a984e09cc955610e62efb9dcab1c389", + "5c6c0d2386e3352356c3ab84434fafb5ea067ac2678a38a338c4a69ddc4bdb0c": "0xe170de9672b42ede20a23b739b18aa1404277cf42e403b3494c38d4a7b72b3a4", + "f464e36fd4ef2f1c3dc30801a9ab470dcdaaa0af14dd3cf6ae17a7fca9e051c5": "0xd6055e4ad616fd08f983010505e449e67004be63e764d57c3736ddad5d140e90", + "831624f51c7bd4499fe5e0f16dfa2fd22584ae4bdc496bbbbe9ba831b2d9bce9": "0xbf4c132fb75caf3244bcb82f56e1b04db21c82868c878d4c509d193be10677ca", + "05934526b94a9fbe4c4ce0c3792213032f086ee4bf58f2168a7085361af9bdc1": "0x3a44393121d08b3dca64c3e030ec47f6211eae6ed7d7383622a0680ef310ac10", + "9d23a47f843f5c9284832ae6e76e4aa067dc6072a58f151d39a65a4cc792ef9f": "0xfe8ccc5dd7e957c386a16594392ee9e4d53ccd3a1c9c66f3d333df1ebd6bb126", + "16dad506d7db8da01c87581c87ca897a012a153557d4d578c3b9c9e1bc0632f1": "0x1070dedaa1774089600233afee88908a3986201be330876d148f9adf131b1e62", + "c81114e16ec3cbcdf20197ac974aed5a254b941773971260ce09e7caebd6af46": "0x6c883438c24569de4bef718304080e65b1ebd6fa532191b9c69f3a36f148911f", + "0afa3199e0899270a74ddcf5cc960d3c6c4414b4ca71024af1a62786dd24f52a": "0xe097d4952448a08d78ee1c738db14b796c3f4a602c14db0ecc45af3acf660edc", + "2f95862b045670cd22bee3114c39763a4a08beeb663b145d283c31d7d1101c4f": "0x725f0b8a57dd6bcdf1f0b801a1ec0009a58f2f8cec6688bebb9757d365dd4011", + "d0ca23c1cc005e004ccf1db5bf76aeb6a49218f43dac3d4b275e92de12ded4d1": "0xe8c556f8e3441f353f93b6c3697635abfcb69942ac1535db8f4c20c78e625394", + "5b1703d7eb9dc8662a61556a2ca2f9861747c3fc803e01ba5a8ce35cb50a13a1": "0xfab0331c077707ba2d63eff0af9df830dbe8875af971fd5417af06f9a3af29f3", + "4456d442a152fd1f972b18459263ef467d3c29fb9d667e30c463b086691fbc79": "0xd18a2ee6d59cecab223cefd9f567b388fd2a1ad15086a42ee9086e5c8ecd2e5f", + "45b05d03edb6081e7ae536b94b450a42f43e6342791c560a481030b41f9b945d": "0xd9a51d29b7097feb0b56e3573a5aef7426e4bafea2ae4d2ca2d21ae05a48bb0d", + "8ac0c70fff57e9aefdf5edf44b51d62c2d433653cbb2cf5cc06bb115af04d221": "0x765146e6c6e30e4a7495f0f77c1817e50abcb4f3877edbc4bd3f199d7c22f6b4", + "b3a83dbe70b62241b0f916212e097465a1b31085fa30da3342dd35468ca17ca5": "0xa293eac6352f51b426fe26c0ebd1a2691d4379f25f537688490a0e99f4fad32c", + "944f2f908c5166e0732ea5b610599116cd8e1c41f47452697c1e84138b7184d6": "0xc9a6b6937a8d9b076cd6d8ccf43b94bc571d774fae8980e2b4f0ab45a71d6a3f", + "385f64d993f7b77d8182ed5003d97c60aa3361f3cecfe711544d2d59165e9bdf": "0xbfb6957c8ec782ad47274c0274097cdfcb209683f79690897b95543c18a950fb", + "e65ff435be42630439c96396653a342829e877e2aafaeaf1a10d0ee5fd2cf3f2": "0x020257bd7128134cd6a98db78855a1758811c6ccdfa08d1c6ea7b2b5e154d806", + "b881c6dad5dd3dc9a83222f8032fb439859288119afc742d43adc305cef151cc": "0x9bfd9fc818f9e84b99e42040e5f4a3cb17c56df4c3814b89bf8f37a34d76ae31", + "20d096e088a9b85f8cf09278965b77aeb05c00769e2ddeda5ea2d07ea554b283": "0x8fae08b5241bc5b3d76fc135b366db9053ff27e83b95c02b39d7df995bc1c928", + "ef2c98c804ba503c6a707e38be4dfbb16683775f195b091252bf24693042fd52": "0x647a40613ecbeeed6b3044c25cb97566b5f1586493036c88f039e5a7cbf9398a", + "ccca1d2b0d9a9ca72aa2c849329520a378aea0ec7ef14497e67da4050d6cf578": "0x149ba54f5d83a4242c1647387de54025e84775ae31b3e401e0505ba9d84814ce", + "eaa020c61cc479712813461ce153894a96a6c00b21ed0cfc2798d1f9a9e9c94a": "0xce1b26252c552fbc27c694b34b0279534d66c1b6ac8a8a15a7e0802756381539", + "2dd14c7c38aa7066c7a508aac299ebcde5165b07d5d9f2d94dfbfe41f0bc5f2e": "0x6c08bfd4b367ced7af611e88f0120114ef8ecf3f6c02dda69a3de40b30f078a0", + "7507a4629ad0143550666bce2e7cae0b961a0f624f821feaab642fe1be632f5c": "0xaeb0380e0d875da5d2acf558dc2c47c9308104a4b270aa8fd1d039ad9fe1cc47", + "107918baaaafb79cd9df1c8369e44ac21136d95f3ca33f2373b78f24ba1e3e6a": "0x929166ca35d9ef586f4861eeb16812a6193d5a0a3d8d6aa25ad0308f16bf2e2b", + "c8acad81438490d4ebcac23b3e93f31cdbcb893fcba746ea1c66b89684faae2f": "0x11e6e80d75b9e02f0e7a73c5fd6a037678abbda7c14b6ac53561c5c732b05bbe", + "6e89dbed2351e3c85a9ce1c782ca1e34b6ef2c4775f1cb691739bbe6d0697e86": "0xda7e0bd37e3478d59755e44a8b910794379f8983e5dee2fb7ffbf3ba5ad68f8c", + "ef0d8b6fda2ceba41da15d4095d1da392a0d2f8ed0c6c7bc0f4cfac8c280b56d": "0x2ac120d486ffb07d41d48bf43ca092ec87ebfab30680faf4ef03314d1026e57d", + "70dddcb074263ce201ea9a1be5b3537e59ed5b9060d309e12d61762cfe59fb7e": "0xb1286a78b20a268dee0faadeeac8a366cf50946fc244c1a1121f3cca54b71702", + "ad04597ba688c350a97265fcb60585d6a80ebd37e147b817c94f101a32e58b4c": "0x79e1884e5f17f8af3be116a29eced5ed328a802afbad8260e89baf0fc99e7475", + "8086320540b3d7b9b4b564e6756a29a9cb91a7cd97d5fafff63841959d3a09a0": "0x107ff0e1f03c691ed9b0011bd1f2ae109b0fc405d3fd80136e7382c25caf3a2e", + "3f4b77dd904e849f70e1e812b7811de57202b49bc47c56391275c0f45f2ec481": "0x9024f1b288cb1c7d734ba5978dd18c34d3e0f51f9b4f2a8334fe8d40bf6d01f9", + "a4702f0f5818258783a1e47f453cb20b0fbec32ca67260e1d19dfcdd6a4d0ebb": "0x1f1cfc5943e1d662e50e67b99fb770bb05fb1fb30eb3b8360cc91053c980c664", + "c19405e4c8bdcbf2a66c37ae05a27d385c8309e9d648ed20dc6ee717e7d30e17": "0x756f2ccf9047a226a763b687e044d4bccfb03e5f1b3d941de7bec90f7748266d", + "6d20210495d6518787b72e4ad06bc4df21e68d89a802cf6bced2fca6c29652a6": "0x68cb9005e58ea827135342afc31ba1391832f17321366213a39c3d0087bc4906", + "feff234600320f4d6bb5a01d02570a9725c1e424977f2b823f7231e6857bdae8": "0x871596766a4a6876cbcfbdba61d5e098d95db6251659f25bcd25f74d79df24ac", + "19e09bb805456ada3979a7d1cbb4b6d63babc3a0f8e8a9509f68afa5c4c11cd5": "0xe670146c6741b725ab5e2fd550460d035b8aa9dcb66cb666545c4bbef27814d3", + "235ddea9f40e9af5814dbcc83a418b98e3ee8df1e34e1ae4d45cf5de596023a3": "0x18086cb9c40bc2a8a3233310def4387724fef0bb13857e136ea2ab48a2d65326", + "92eea8ba1b00078cdc2ef6f64f091f262e8c7d0576ee4677572f314ebfafa4c7": "0xa3c0b9d970667d87fffa56a0da7f28e6b3bc30a6cabfd3e8f6685ba17526e30c", + "15ecddd26d49e1a8f1de9376ebebc03916ede873447c1255d2d5891b92ce5717": "0x303928f43b984fca0546ae35b70d8479a353df9e0f6ffdd5158a51dfb75694c0", + "35f1e0d9248599d276111821c0fd636b43eef18737c3bb61c7c5c47059787a32": "0x140257ad88a951c3d37101fceb3768775714bb0c6426b38d6e7a30be29decfbf", + "9aa471dccea36b90703325225ac76189baf7e0cc286b8843de1de4f31f9caa7d": "0xb3c92f18a4a0cece945d6d36d232e6abc1f19b3609a5ec75c0cffbac29f9d43f", + "d57d90cd8554ea0cf8268de30d5ad67fed9a8f11cce5132a49eb687aed832ea6": "0xbf1a106608f6f71fb1ce8331219cbe6cd52093dc9c0d3ebeca90ca7c623b0bd9", + "ca3eed9b267293f6595901c734c7525ce8ef49adafe8284606ceb307afa2ca5b": "0x6ec30b18b3e7cd66322218e6e6904f8f27ca45627b20be58efc7479d28853a1c", + "d00bd77d97dc5769de77f96d0e1a79cbf1364e14d0dbf046e221bce2e89710dd": "0x78930c93cf2927994325d75d161c77c84c4885b7bebd3f57da954eb719b8d0d6", + "05380f8817eb1316c0b35ac19c3caa92c9aa9ea6be1555986c46dce97fed6afd": "0xae174a636ecdeb169c4a42f8c20ce654279d9f54be976814a7eab9caa553ec89", + "c80657b7f6f3eac27218d09d5a4e54e47b25768d9f5e10ac15fe2cf900881400": "0x401a6b36ca1be03b62afb72fc3729bd58e773de5c889188d691f2552566217c0", + "d37e4513ebe235fff81e453d400debaf9a49a5df2b7faa11b3831d35d7e72cb7": "0x0d1302511ced1c04f538a410aec75c3fdd98a09356cbe6e1c4bcf0268aeed21b", + "681e0eb7acf9a2a3384927684d932560fb6f67c6beb21baa0f110e993b265386": "0xe2b124eb856f15621aad931bd3dfe59c7bcc74555ef6c114f32700b5a6157368", + "9ff7b9a93df40f6d7edc8184173c50f4ae72152c6142f001e8202a26f951d710": "0xf5bb207f08bc335db2fcfbe0c6b991124739ca6aef4490aecfb0021633d3c23a", + "f8d030e4ef460b91ad23eabbbb27aec463e3c30ecc8d5c4b71e92f54a36ccdbd": "0x58eba59d0c838f172f2996b9700b6884ede500c805724849e5b444b665824ac2", + "abe4f2b264560a397f38eec024369356e5c1ea4f7aab94729369f144b3d97779": "0x1d5139a3e56f312c5e5c10be74e6da317bbb84edbb37c6caf7ab347253f76ec1", + "07ad7b4a7662d19a6bc675f6b467172d2f3947fa653ca97555a9b20236406628": "0x633ae4b37ce1550bb4a0e5c55cb7c70bb59cfa54aa56261295fdeecf1eac23f3", + "a1a6465f4c2ebf244c31d80bc95c27345a3424e428c2def33eced9e90d3f701b": "0x4049a33c588398f5c94d3b6b2d451b148c43ab8eeaa2e7d83c3ef849282bd6ff", + "e6ccd3f878cf338e6732bf59f60943e8ca2c28402fc4d9c258503b2edbe74a31": "0x5480f43cc0b086935e4220fc77c7572d59a6fe9e7c2cef57a6507430def5cae2", + "3b4656b0d92f0e995024c3dacfc28c47d11af83b374a56c26e514e9a7e46a240": "0x95de11d62fb62cfc939af4f6b311bef4c96a13af7360e81658f3d4d54974b788", + "be4cb6bf8f18e84b1c4fd6fafa7f048a972be26505bd58338eb66c80faa99483": "0x3911534919fe7be175f74cf4db6d5d9c18554319feace46485c87421111abe10", + "b7e3904c08ddd9c0c10c6d207d390fd19e87eb6aab96304f571ed94caebdefa0": "0xddb8b30fcbde7846b99904be0cdcbf2a6b77873f8e7246bed369d6707ce232c8", + "06d9fa501fd2bef47265361ca0eaf6e0a97c3b226cea5ab760240f70818581ad": "0xa904b97f02938e3286db15c740d7b8cc7e7ea87c7fef24584463adc630c7482e", + "9c479b12a2b2c1051715d4d462dd7a6abbb6dccabf3af31a53f6130a1cd88efc": "0x9e91359f2f244341306653d3da420a54cba72e699205cfa83290fbfb47971b61", + "e799f456b358a2534aa1b45141d454ac04b444ed23b1440b778549bb758f2b5c": "0xedf5c28a19358b291815f5e623e49ed07596474c200e287cf4f23b5ccf6bd6cd", + "5b70af49d639eefe11f20df47a0c0760123291bb5bc55053faf797d1ff905983": "0xa61677c7fda3c869db3aa6ffc3df6296cdff1134719422354dfaf5bb83e1545f", + "67aed5a24fdad045475e7195c98a98aea119c763f272d4523f5bac93a4f33c2b": "0x508027546cc92b430f9601a01f301391e39d1bd687fe2b399567ec7faa390e41", + "5de33a9112c2b700b8d30b8a3402c103578ccfa2765696471cc672bd5cf6ac52": "0x9754210c1804a6b65a3ba2612b0a0c109b60354cc802a2d5eafe84ef76e0f5d0", + "78a3e3b8e676a8f73c439f5d749737034b139bbbe899ba5775216fba596607fe": "0x71ad87ab2bbba663f77aac0a4945a93a7bfb21f3664d91b29c15ed99040f8bbe", + "84c2dde9633d93d1bcad84e7dc41c9d56578b7ec52fabedc1f335d673df0a7c1": "0x0297d202195fd41c4152cd474610074f2563e6f44807ecf42f5c63c796a53d63", + "c9e9d228f565c226dfb8ed5f5c9c4f57ab32b7ade7226c3239ff20911a9c3a7b": "0x385ae1ad494712516b4316a7f3c16030250020a9b15efeba9b4d001f2599c051", + "70cd05521e3bdeaee2cadc1360f0d95397f03275f273199be35a029114f53a3b": "0x5a30cddba6a21106320366eaa5053b48a45c9b0d9c38b36f10c55de20e74144a", + "5bc91f13e412c07599167bae86f07543f076a638962b8d6017ec19dab4a82814": "0xce72042c196a3bdc47658b525f95407251a9428a83a3377fd51637471cf0e86c", + "baa284eaf23edf975b371ba2818772f93dbae72836bbdea28b07d40f3cf8b485": "0x62f2403f3470ebdef88c3dd22a402b02f14dd5801307409b639239bd22e27f39", + "6b701e292e0836d18a5904a08fe94534f9ab5c3d4ff37dc02c74dd0f4901944d": "0x5116298c002c1e37c9801e6853eece63a962115213db0fa4a49303955ee00dc8", + "c2289a6a43d2ce91c6f55caec370f4acc38a2ed477f58813334c6d03749ff2a4": "0xbe4ea6a4d49736d4a3d6d96ae0a5055ed5372ab7e6d3d72abaa32d69058469cf", + "b00b60f88b03a6a625a8d1c048c3f66653edf217439983d037e7222c4e612819": "0x30f3c5f93666236348fdc7207427741e27342602f236ffa761114d17108f955e", + "e13b1c1ffb32f34e1be9545583f01ef385fde7f42ee66049d30570dc866b77ca": "0x82b57fac17738db916e60e25c7da72bc744b981565e08f78abb9616caa0b3b22", + "b962539d0fcb272a494d65ea56f94851c2bcf8823935da05bd628916e2e9edbf": "0xddc9e159f69768ab723666dc15f1bd906b0bb2cfd2752b62bd92691459d5cf6d", + "78d185a741d07edb3412b09008b7c5cfb9bbbd7d568bf00ba737b456ba171501": "0x6d6c7f0b6508af7faa61044ff392fc8f7034b9ba237a1e64ea0fcbb83914c3c5", + "c63e2a7f37a04e5e614c07238bedb25dcc38927fba8fe890597a593c0b2fa4ad": "0x41c91ba219d7af23a1eb4f89df0599a229a60719d8cc181dba3db774496e80a5", + "8ff1200345393bb25be4f4eeb2d97234e91f7e6213f3745a694b1436e700f271": "0xb3ec595dfe31a7a5bbc34a9120230dd2243d84988d79d3944ebfc9051b913d89", + "cfd44471407f4da89d469242546bb56f5c626d5bef9bd8b9327783065b43c3ef": "0xd2a6d3112f39345a30692c389f071b293e6175737706a691bcb3bf69f877f3aa", + "1021a42d623ab4fe0bf8c47fd21cc10636e39e07f91e9b2478551e137d512aaa": "0xa1dad8dd9cea416bfd789732606668c3ee8b5118dc54f2f19627834d7a092819", + "3dd2b63686a450ec7290df3a1e0b583c0481f651351edfa7636f39aed55cf8a3": "0xd7df130dcda9b2f2c3e437940d55d225cf594354a0b02de2b19a2b2b15d9b993", + "c1751e085ee292b8b3b9dd122a135614485a201c35dfc653553f0e28c1baf3ff": "0xa7fd5e025b891d334e4a3923aad7dc69454ada52bb9791669ec881bc8251a87f", + "6aac625e125ada0d2a6b98316493256ca733a5808cd34ccef79b0e28c64d1e76": "0x3b19ade0936c6b7fe8f8880e20975f10a980b960edb1b2e745c2001fc03ad6e8", + "a19d04ac696c7a6616d291c7e5d1377cc8be437c327b75adb5dc1bad745fcae8": "0xdc754ecf151ce912b20854fff885227a7aee5174c43dd8a82ae31f86b11152c1", + "1dcf38b0206d27849b0fcb8d2df21aff4f95873cce223f49d7c1ea3c5145ec63": "0xaa4121fdc7231b8e69a1013bfbb77f33809e742057583cdf98ce052c214942ba", + "389d889017db82bf42141f23b61b8de938a4e2d156e36312175bebf797f493f1": "0x010414e5bd8c0207a0f854274075408ce2923606da87accaab8486851b10a634", + "6ed3c7c4427ae2f91707495fc5a891b30795d93dbb3931782ddd77a5d8cb6db7": "0x0426ae24d6351a48242f0eba794a6b22f4c79839d50694a2b7a9b0de0cbf7bee", + "48ce0cf436bac22dad33551dfe2eb7bf9991e419a05f25aed4e90c29c3a1cdbe": "0x1da3431d92ee78272aaff4f207171138b16844d91e7134ac392d2ebee4815e22", + "1888f463c27997174f97d2a36af29bf4648b61a5f69e67c45505a80f826bb785": "0x22f3da8a4ebdeaf6a29ed5422960a62040daab2cd0d1e673d68a8d4d44da1835", + "07a8f31e8910c3b52f338d2aca6f4dc2404753ebafcdf53290ef4993911a71f8": "0x41e2a7778d36d25ed0508f8cdfda395574ec853faf2d11e69e7ea451cdfaa3c4", + "23d7315113f5b1d3ba7a83604c44b94d79f4fd69af77f804fc7f920a6dc65744": "0x2b35fc431e0c7533fef132e3a6a569d09dd92285305e9c876cb4dadb1a039b68", + "396a969a9c1480fa15ed50bc59149e2c0075a72fe8f458ed941ddec48bdb4918": "0x000ee451a8b800512bcb2f9d03e8f3649cfb8c803c632b56d3bc165074fc20f4", + "b82449fd728133488d2d41131cffe763f9c1693b73c544d9ef6aaa371060dd25": "0x0a18f3930026fb51e1e3964a65fea3425fe13ff2a09a71e3d4c9dd28ab4879d9", + "6e3f3fa8253588df9326580180233eb791e03b443a3ba7a1d892e73874e19a54": "0xf3c0d2d98958ef9e677084cc0068bc48c6f07606708c64b06a09a0483a7b7531", + "ee70804471fe22d029ac2d2b00ea18bbf4fb062958d425e5830fd25bed430345": "0xa7a6fb1ea440bb5c0ada4a0a9459e904c7ae2443d92e72cb53eb3b9d192f843f", + "c3d5d8d6d17081b3d0bbca6e2fa3a6704bb9a9561d9f9e1dc52db47629f862ad": "0xcb826a89a5331cf23436ac1fd0ea2adb46698c880fc7152a20f9300d0e05776a", + "23245bb74254e65a98cc3ff4a37443d79f527e44e449750ad304538b006f21bc": "0x77fc923adc5c78bb969bcaadcb840f32acc2ebbcd327987c056a7d7ca0d96d6c", + "4457960559b812558bb0f8cb7912f8bcb843eb801a3133ef45be998630ff8c05": "0x108e02825bf4d1b4a371bd839915feabb34675d5442dae9f41080d7eccc2b450", + "59671f59d12dc81bae078754b7469c7434528a66d3fa91193cf204460c198f9b": "0x737bbb7c8fa169933b93ed6de89074a8933c7d05113726e3f4f31e5eea7059a2", + "956740a4e169e90bb141abfe93652ae3434693bc7ca43cbcea6471408f19ab90": "0xfd08b4637699978fee0a4a5d4257582e6841c253794ca5fd4dc0fb54d31fcc89", + "8cdc9b2118d2ce55a299f8f1d700d0127cf4036d1aa666a8cd51dcab4254284f": "0x723470143332c8f375823c5c6a85bc8d0b26e974eb4a55ea05c8374d75f7c991", + "39d020f60982ed892abbcd4a06a276a9f9b7bfbce003204c110b6e488f502da3": "0x0af856c1799c48dc8ac882ed015afc093d32210d831b270e3b6a43b9f8077b6c", + "097d687437374051c75160d648800f021086bc8edf469f11284491fda8192315": "0xbe069cc5122df358b63d8a4686fa079ec52c5a6d58c5ee6fc9c78976e05f353c", + "9f383d612ac09c7e6ffda24deca1502fce72e0ba58ff473fea411d9727401cc1": "0x4a8944797dc1845f5a3617b7057c01d1714bee6d41e808cf038632f6ae811212", + "846ae1bdb6300b817cee5fdee2a6da192775030db5615b94a465f53bd40850b5": "0x8183a78bc77dda0a9df8441ca8a2bc2b18e9e883e04b36ac08996ed4691081c7", + "856aac602516addee497edf6f50d39e8c95ae5fb0da1ed434a8c2ab9c3e877e9": "0x66d181f1031dcc934fc7b787ff7181560c1fed490466247a4966aba26fcf31b8" +} diff --git a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts index 3fb3af6b54..2a8077ebfa 100644 --- a/target_chains/sui/scripts/pyth/create_all_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/create_all_price_feeds.ts @@ -55,7 +55,7 @@ async function main() { //@ts-ignore const priceFeedVAAs = await connection.getLatestVaas(chunk); console.log("price feed VAAs len: ", priceFeedVAAs.length); - console.log("sample vaa: ", priceFeedVAAs[0]) + console.log("sample vaa: ", priceFeedVAAs[0]); await create_price_feeds(wallet, registry, priceFeedVAAs); } } diff --git a/target_chains/sui/scripts/pyth/get_vaas.ts b/target_chains/sui/scripts/pyth/get_vaas.ts index 222a320b38..b9c1b937bb 100644 --- a/target_chains/sui/scripts/pyth/get_vaas.ts +++ b/target_chains/sui/scripts/pyth/get_vaas.ts @@ -18,7 +18,7 @@ async function main() { //console.log("number of all price feed ids: ", data.length) let data = [ - "0x63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" + "0x63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3", //"0x8b62866fcd3a25ff9118506444e9fe5171e67c61a049f4b4fdacdbc31ae862bb", // testnet //"0x0e60a64dcbd660e87a08eb2cc95e8d84d1126fd7354d377b3fc5730352f4b8b2", // testnet //"0x651071f8c7ab2321b6bdd3bc79b94a50841a92a6e065f9e3b8b9926a8fb5a5d1", // testnet diff --git a/target_chains/sui/scripts/pyth/update_price_feeds.ts b/target_chains/sui/scripts/pyth/update_price_feeds.ts index c090fb022e..1b340ad8c2 100644 --- a/target_chains/sui/scripts/pyth/update_price_feeds.ts +++ b/target_chains/sui/scripts/pyth/update_price_feeds.ts @@ -20,7 +20,8 @@ import { REGISTRY, NETWORK } from "../registry"; let network = NETWORK.MAINNET; const walletPrivateKey = process.env.SUI_MAINNET; const price_connection_url = "https://xc-mainnet.pyth.network"; -const PATH_TO_PRICE_ID_TO_OBJECT_MAP = "./generated/price_id_to_object_id.mainnet.json" +const PATH_TO_PRICE_ID_TO_OBJECT_MAP = + "./generated/price_id_to_object_id.mainnet.json"; // ================================================================ const registry = REGISTRY[network]; @@ -48,22 +49,26 @@ async function main() { // For a full list of testnet price feed ids, see: // https://pyth.network/developers/price-feed-ids#pyth-evm-testnet const price_feed_ids = [ - "0x63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3" + "0x63f341689d98a12ef60a5cff1d7f85c70a9e17bf1575f0e7c0b2512d48b1c8b3", // INSERT YOUR PRICE FEED ID HERE! ]; // Batch attestation VAA for price feed IDs above. const vaas = await connection.getLatestVaas(price_feed_ids); - const price_feed_id_to_price_info_map = JSON.parse(fs.readFileSync(PATH_TO_PRICE_ID_TO_OBJECT_MAP, 'utf8')); + const price_feed_id_to_price_info_map = JSON.parse( + fs.readFileSync(PATH_TO_PRICE_ID_TO_OBJECT_MAP, "utf8") + ); // Price info objects corresponding to the price feeds we want to update. - let price_info_object_ids = [] - for (let id of price_feed_ids){ - let sliced_id = id.slice(2) // removed 0x prefix - price_info_object_ids = price_info_object_ids.concat(price_feed_id_to_price_info_map[sliced_id]) + let price_info_object_ids = []; + for (let id of price_feed_ids) { + let sliced_id = id.slice(2); // removed 0x prefix + price_info_object_ids = price_info_object_ids.concat( + price_feed_id_to_price_info_map[sliced_id] + ); } - console.log("price info objects to be updated: ", price_info_object_ids) + console.log("price info objects to be updated: ", price_info_object_ids); update_price_feeds(wallet, registry, vaas, price_info_object_ids); } diff --git a/target_chains/sui/scripts/utils/process_guardian_sets.ts b/target_chains/sui/scripts/utils/process_guardian_sets.ts index af7ca02111..81eface104 100644 --- a/target_chains/sui/scripts/utils/process_guardian_sets.ts +++ b/target_chains/sui/scripts/utils/process_guardian_sets.ts @@ -1,6 +1,4 @@ - -let initial_guardians = -[ +let initial_guardians = [ "D2CC37A4dc036a8D232b48f62cDD4731412f4890", "54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", "107A0086b32d7A0977926A205131d8731D39cbEB", @@ -19,41 +17,42 @@ let initial_guardians = "000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", "178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", "5E1487F35515d02A92753504a8D75471b9f49EdB", - "15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20" -] + "15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", +]; -let ordered_guardians = [ // 5 is missing - "58CC3AE5C097b213cE3c81979e1B9f9570746AA5", - "fF6CB952589BDE862c25Ef4392132fb9D4A42157", - "114De8460193bdf3A2fCf81f86a09765F4762fD1", - "107A0086b32d7A0977926A205131d8731D39cbEB", - "8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", - "11b39756c042441be6d8650b69b54ebe715e2343", - "54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", - "15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", - "74a3bf913953D695260D88BC1aA25A4eeE363ef0", - "000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", - "AF45Ced136b9D9e24903464AE889F5C8a723FC14", - "f93124b7c738843CBB89E864c862c38cddCccF95", - "D2CC37A4dc036a8D232b48f62cDD4731412f4890", - "DA798F6896A3331F64b48c12D1D57Fd9cbe70811", - "71AA1BE1D36CaFE3867910F99C09e347899C19C3", - "8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", - "178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", - "5E1487F35515d02A92753504a8D75471b9f49EdB", - "6FbEBc898F403E4773E95feB15E80C9A99c8348d" -] +let ordered_guardians = [ + // 5 is missing + "58CC3AE5C097b213cE3c81979e1B9f9570746AA5", + "fF6CB952589BDE862c25Ef4392132fb9D4A42157", + "114De8460193bdf3A2fCf81f86a09765F4762fD1", + "107A0086b32d7A0977926A205131d8731D39cbEB", + "8C82B2fd82FaeD2711d59AF0F2499D16e726f6b2", + "11b39756c042441be6d8650b69b54ebe715e2343", + "54Ce5B4D348fb74B958e8966e2ec3dBd4958a7cd", + "15e7cAF07C4e3DC8e7C469f92C8Cd88FB8005a20", + "74a3bf913953D695260D88BC1aA25A4eeE363ef0", + "000aC0076727b35FBea2dAc28fEE5cCB0fEA768e", + "AF45Ced136b9D9e24903464AE889F5C8a723FC14", + "f93124b7c738843CBB89E864c862c38cddCccF95", + "D2CC37A4dc036a8D232b48f62cDD4731412f4890", + "DA798F6896A3331F64b48c12D1D57Fd9cbe70811", + "71AA1BE1D36CaFE3867910F99C09e347899C19C3", + "8192b6E7387CCd768277c17DAb1b7a5027c0b3Cf", + "178e21ad2E77AE06711549CFBB1f9c7a9d8096e8", + "5E1487F35515d02A92753504a8D75471b9f49EdB", + "6FbEBc898F403E4773E95feB15E80C9A99c8348d", +]; -function main(){ - initial_guardians = initial_guardians.map(x=>x.toLowerCase()) - ordered_guardians = ordered_guardians.map(x=>x.toLowerCase()) +function main() { + initial_guardians = initial_guardians.map((x) => x.toLowerCase()); + ordered_guardians = ordered_guardians.map((x) => x.toLowerCase()); - for (let g of initial_guardians){ - console.log("ordered_guardians.indexOf(g): ", ordered_guardians.indexOf(g)) - if (ordered_guardians.indexOf(g)<0){ - console.log("guardian is not in ordered_guardians: ", g) - } + for (let g of initial_guardians) { + console.log("ordered_guardians.indexOf(g): ", ordered_guardians.indexOf(g)); + if (ordered_guardians.indexOf(g) < 0) { + console.log("guardian is not in ordered_guardians: ", g); } + } } -main() +main(); diff --git a/target_chains/sui/scripts/utils/transfer_tokens.ts b/target_chains/sui/scripts/utils/transfer_tokens.ts index 66166695ef..c17b5fbd22 100644 --- a/target_chains/sui/scripts/utils/transfer_tokens.ts +++ b/target_chains/sui/scripts/utils/transfer_tokens.ts @@ -27,28 +27,24 @@ async function main() { throw new Error("SUI_TESTNET unset in environment"); } const wallet = new RawSigner( - Ed25519Keypair.fromSecretKey( - Buffer.from(walletPrivateKey, "hex") - ), + Ed25519Keypair.fromSecretKey(Buffer.from(walletPrivateKey, "hex")), provider ); - let sender = await wallet.getAddress() - let recipient = "0x4ed01b6abcc271a5c7a1e05ee9344d6eb72d0c1f2483a1c600b46d73a22ba764" + let sender = await wallet.getAddress(); + let recipient = + "0x4ed01b6abcc271a5c7a1e05ee9344d6eb72d0c1f2483a1c600b46d73a22ba764"; console.log("Sender: ", sender); transfer_tokens(wallet, recipient); } main(); -async function transfer_tokens( - signer: RawSigner, - recipient: string -) { +async function transfer_tokens(signer: RawSigner, recipient: string) { const tx = new TransactionBlock(); let coin = tx.splitCoins(tx.gas, [tx.pure(100000000000)]); - tx.transferObjects([coin], tx.pure(recipient)) + tx.transferObjects([coin], tx.pure(recipient)); tx.setGasBudget(1000000000);